From 46a67a34e6faf8ff754bea89225116b6eff3bbdb Mon Sep 17 00:00:00 2001 From: Rui Manuel da Silva Martins Date: Tue, 12 May 2015 14:11:41 +0100 Subject: [PATCH] First commit --- MANIFEST.in | 1 + README.rst | 28 +++++ dist/wagtail-modeltranslation-0.0.1.tar.gz | Bin 0 -> 3055 bytes setup.py | 36 ++++++ wagtail_modeltranslation.egg-info/PKG-INFO | 48 +++++++ wagtail_modeltranslation.egg-info/SOURCES.txt | 14 +++ .../dependency_links.txt | 1 + .../requires.txt | 2 + .../top_level.txt | 1 + wagtail_modeltranslation/__init__.py | 0 wagtail_modeltranslation/__init__.pyc | Bin 0 -> 181 bytes wagtail_modeltranslation/admin.py | 3 + wagtail_modeltranslation/admin.pyc | Bin 0 -> 238 bytes .../migrations/__init__.py | 0 .../migrations/__init__.pyc | Bin 0 -> 192 bytes wagtail_modeltranslation/models.py | 119 ++++++++++++++++++ wagtail_modeltranslation/models.pyc | Bin 0 -> 3589 bytes wagtail_modeltranslation/tests.py | 3 + wagtail_modeltranslation/translation.py | 12 ++ wagtail_modeltranslation/translation.pyc | Bin 0 -> 696 bytes wagtail_modeltranslation/views.py | 3 + 21 files changed, 271 insertions(+) create mode 100644 MANIFEST.in create mode 100644 README.rst create mode 100644 dist/wagtail-modeltranslation-0.0.1.tar.gz create mode 100644 setup.py create mode 100644 wagtail_modeltranslation.egg-info/PKG-INFO create mode 100644 wagtail_modeltranslation.egg-info/SOURCES.txt create mode 100644 wagtail_modeltranslation.egg-info/dependency_links.txt create mode 100644 wagtail_modeltranslation.egg-info/requires.txt create mode 100644 wagtail_modeltranslation.egg-info/top_level.txt create mode 100644 wagtail_modeltranslation/__init__.py create mode 100644 wagtail_modeltranslation/__init__.pyc create mode 100644 wagtail_modeltranslation/admin.py create mode 100644 wagtail_modeltranslation/admin.pyc create mode 100644 wagtail_modeltranslation/migrations/__init__.py create mode 100644 wagtail_modeltranslation/migrations/__init__.pyc create mode 100644 wagtail_modeltranslation/models.py create mode 100644 wagtail_modeltranslation/models.pyc create mode 100644 wagtail_modeltranslation/tests.py create mode 100644 wagtail_modeltranslation/translation.py create mode 100644 wagtail_modeltranslation/translation.pyc create mode 100644 wagtail_modeltranslation/views.py diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 0000000..c4bf456 --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1 @@ +include README.rst \ No newline at end of file diff --git a/README.rst b/README.rst new file mode 100644 index 0000000..ec81872 --- /dev/null +++ b/README.rst @@ -0,0 +1,28 @@ +===== +WAGTAIL MODELTRANSLATION ADAPTATION +===== + +Simple app containing a mixin model that integrates modeltranslation +(https://github.com/deschler/django-modeltranslation) into wagtail panels system. + +Quick start +----------- + +1. Add "wagtail_modeltranslation" to your INSTALLED_APPS setting like this:: + + INSTALLED_APPS = ( + ... + 'wagtail_modeltranslation', + **YOUR APPS** + ) + +2. Use TranslationMixin to integrate django-modeltranslation with Wagtail admin: + + from wagtail_modeltranslation.models import TranslationMixin + + class FooModel(Page, TranslationMixin): + foo = models.CharField() + + FooModel.panels = [...] + +2. Visit django-modeltranslation for documentation - http://django-modeltranslation.readthedocs.org/en/latest/ \ No newline at end of file diff --git a/dist/wagtail-modeltranslation-0.0.1.tar.gz b/dist/wagtail-modeltranslation-0.0.1.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..a031a74486035a8e82274a52bbde4292afad3148 GIT binary patch literal 3055 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 literal 0 HcmV?d00001 diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..4b05554 --- /dev/null +++ b/setup.py @@ -0,0 +1,36 @@ +import os +from setuptools import setup + +with open(os.path.join(os.path.dirname(__file__), 'README.rst')) as readme: + README = readme.read() + +# allow setup.py to be run from any path +os.chdir(os.path.normpath(os.path.join(os.path.abspath(__file__), os.pardir))) + +setup( + name='wagtail-modeltranslation', + version='0.0.1', + packages=['wagtail_modeltranslation'], + include_package_data=True, + license='BSD License', + description='Integration of django-modeltranslation with Wagtail CMS', + long_description=README, + url='', + author='Rui Martins', + author_email='rmartins16@gmail.com', + classifiers=[ + 'Environment :: Web Environment', + 'Framework :: Django', + 'Intended Audience :: Developers', + 'License :: OSI Approved :: BSD License', + 'Operating System :: OS Independent', + 'Programming Language :: Python', + # Replace these appropriately if you are stuck on Python 2. + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3.2', + 'Programming Language :: Python :: 3.3', + 'Topic :: Internet :: WWW/HTTP', + 'Topic :: Internet :: WWW/HTTP :: Dynamic Content', + ], + install_requires=['django-modeltranslation==0.9', 'wagtail'] +) \ No newline at end of file diff --git a/wagtail_modeltranslation.egg-info/PKG-INFO b/wagtail_modeltranslation.egg-info/PKG-INFO new file mode 100644 index 0000000..0d8d2ed --- /dev/null +++ b/wagtail_modeltranslation.egg-info/PKG-INFO @@ -0,0 +1,48 @@ +Metadata-Version: 1.1 +Name: wagtail-modeltranslation +Version: 0.0.1 +Summary: Integration of django-modeltranslation with Wagtail CMS +Home-page: UNKNOWN +Author: Rui Martins +Author-email: rmartins16@gmail.com +License: BSD License +Description: ===== + WAGTAIL MODELTRANSLATION ADAPTATION + ===== + + Simple app containing a mixin model that integrates modeltranslation + (https://github.com/deschler/django-modeltranslation) into wagtail panels system. + + Quick start + ----------- + + 1. Add "wagtail_modeltranslation" to your INSTALLED_APPS setting like this:: + + INSTALLED_APPS = ( + ... + 'wagtail_modeltranslation', + **YOUR APPS** + ) + + 2. Use TranslationMixin to integrate django-modeltranslation with Wagtail admin: + + from wagtail_modeltranslation.models import TranslationMixin + + class FooModel(Page, TranslationMixin): + foo = models.CharField() + + FooModel.panels = [...] + + 2. Visit django-modeltranslation for documentation - http://django-modeltranslation.readthedocs.org/en/latest/ +Platform: UNKNOWN +Classifier: Environment :: Web Environment +Classifier: Framework :: Django +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: BSD License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.2 +Classifier: Programming Language :: Python :: 3.3 +Classifier: Topic :: Internet :: WWW/HTTP +Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content diff --git a/wagtail_modeltranslation.egg-info/SOURCES.txt b/wagtail_modeltranslation.egg-info/SOURCES.txt new file mode 100644 index 0000000..46021b1 --- /dev/null +++ b/wagtail_modeltranslation.egg-info/SOURCES.txt @@ -0,0 +1,14 @@ +MANIFEST.in +README.rst +setup.py +wagtail_modeltranslation/__init__.py +wagtail_modeltranslation/admin.py +wagtail_modeltranslation/models.py +wagtail_modeltranslation/tests.py +wagtail_modeltranslation/translation.py +wagtail_modeltranslation/views.py +wagtail_modeltranslation.egg-info/PKG-INFO +wagtail_modeltranslation.egg-info/SOURCES.txt +wagtail_modeltranslation.egg-info/dependency_links.txt +wagtail_modeltranslation.egg-info/requires.txt +wagtail_modeltranslation.egg-info/top_level.txt \ No newline at end of file diff --git a/wagtail_modeltranslation.egg-info/dependency_links.txt b/wagtail_modeltranslation.egg-info/dependency_links.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/wagtail_modeltranslation.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/wagtail_modeltranslation.egg-info/requires.txt b/wagtail_modeltranslation.egg-info/requires.txt new file mode 100644 index 0000000..177a3ef --- /dev/null +++ b/wagtail_modeltranslation.egg-info/requires.txt @@ -0,0 +1,2 @@ +django-modeltranslation==0.9 +wagtail \ No newline at end of file diff --git a/wagtail_modeltranslation.egg-info/top_level.txt b/wagtail_modeltranslation.egg-info/top_level.txt new file mode 100644 index 0000000..1cb232b --- /dev/null +++ b/wagtail_modeltranslation.egg-info/top_level.txt @@ -0,0 +1 @@ +wagtail_modeltranslation diff --git a/wagtail_modeltranslation/__init__.py b/wagtail_modeltranslation/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/wagtail_modeltranslation/__init__.pyc b/wagtail_modeltranslation/__init__.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bf75c607e94f949d11181cb98f30591665584eaa GIT binary patch literal 181 zcmZ9GK?(vf3`Hxt5W#!Q%3MH1Jb)X=ttECst#+EyW*j`X7cc{^Ch%X#C!b{b-EP|U zbam!m3++c$T`4+aF3see8-xsQ?43Q4gBUNR7>^3h8 literal 0 HcmV?d00001 diff --git a/wagtail_modeltranslation/admin.py b/wagtail_modeltranslation/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/wagtail_modeltranslation/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/wagtail_modeltranslation/admin.pyc b/wagtail_modeltranslation/admin.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d8a0d8c3b3fc8b790995972229a4cda43184829b GIT binary patch literal 238 zcmZ8bOA5j;5KUSH5p?Atx@s;UA|Akn){QP?+Ju^#AIa3>xjleR#f?5@-u#%Emp|vT zs@fhK_C-ctRv+@X!&Pzl|foh22gt^ VK1#~)z$x8d(YQBiJ?c#3|2K7jJ#7F0 literal 0 HcmV?d00001 diff --git a/wagtail_modeltranslation/migrations/__init__.py b/wagtail_modeltranslation/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/wagtail_modeltranslation/migrations/__init__.pyc b/wagtail_modeltranslation/migrations/__init__.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6ced0b2e472d0155654522fc9b270a4f345ba3f4 GIT binary patch literal 192 zcmZ8bO9}!p46W!w1n)5`a{&?Y0B&Ynm)I#a+8=Gk!E<{7Q*bqb_mVtbKI`v(Hw>4X zQU6#;J`3tbXjH22nsV)g)PgFB29FdhywMem470uGlAhKuU`dlfXH&-VT6Q^Cn9(tk n*CCD8vy4}dOesPjS=OowT2my}`j9`om1{>aPu`x|PgS6PN{cgs literal 0 HcmV?d00001 diff --git a/wagtail_modeltranslation/models.py b/wagtail_modeltranslation/models.py new file mode 100644 index 0000000..08e93f1 --- /dev/null +++ b/wagtail_modeltranslation/models.py @@ -0,0 +1,119 @@ +# coding: utf-8 + +from django.conf import settings +from wagtail.wagtailadmin.edit_handlers import FieldPanel, MultiFieldPanel +from modeltranslation.translator import translator, NotRegistered + + +#################################### +# TRANSLATION MIXIN +#################################### +class TranslationMixin(object): + + def __init__(self, *args, **kwargs): + super(TranslationMixin, self).__init__(*args, **kwargs) + + self.translation_options = translator.get_options_for_model( + self.__class__) + + self.patch_translation_panels() + + def patch_translation_panels(self): + if hasattr(self, 'panels'): + # TODO !!!! + tabs = () + else: + tabs = () + + if hasattr(self, 'content_panels'): + tabs += (('content_panels', list(self.content_panels)),) + if hasattr(self, 'promote_panels'): + tabs += (('promote_panels', list(self.promote_panels)),) + + for tab_name, tab in tabs: + translated_tab = [] + for panel in tab: + #################################### + # FIELDPANEL + #################################### + if panel.__class__.__name__ == 'FieldPanel': + for item in self.patch_translation_field(panel): + translated_tab.append(item) + #################################### + # MULTIFIELDPANEL + #################################### + elif panel.__class__.__name__ == 'MultiFieldPanel': + translated_children = [] + for child_panel in panel.children: + for item in self.patch_translation_field(child_panel): + translated_children.append(item) + translated_tab.append( + MultiFieldPanel( + translated_children, + classname=panel.classname, + heading=panel.heading)) + #################################### + # INLINEPANEL + #################################### + elif panel.__class__.__name__ == 'InlinePanel': + self.patch_translation_inlinepanels(panel) + translated_tab.append(panel) + #################################### + # OTHERS + #################################### + else: + translated_tab.append(panel) + + setattr(self.__class__, tab_name, translated_tab) + + def patch_translation_field(self, fieldpanel, translation_fields=None): + translated_fields = [] + tr_fields = translation_fields if translation_fields else self.translation_options.fields + + translated_fields.append(fieldpanel) # default language or untranslated field + if fieldpanel.field_name in tr_fields: + for lang in settings.LANGUAGES: + if lang[0] != settings.LANGUAGE_CODE: # other languages + translated_field_name = "%s_%s" % ( + fieldpanel.field_name, lang[0]) + translated_fields.append( + FieldPanel( + translated_field_name, + classname=fieldpanel.classname)) + + return translated_fields + + def patch_translation_inlinepanels(self, panel): + inline_panels = getattr( + self.__class__, panel.relation_name).related.model.panels + + try: + inline_model_tr_fields = translator.get_options_for_model( + getattr( + self.__class__, panel.relation_name).related.model).fields + except NotRegistered: + return None + + translated_inline = [] + for inlinepanel in inline_panels: + if inlinepanel.__class__.__name__ == 'FieldPanel': + for item in self.patch_translation_field( + inlinepanel, + translation_fields=inline_model_tr_fields): + translated_inline.append(item) + elif inlinepanel.__class__.__name__ == 'MultiFieldPanel': + translated_children = [] + for child_panel in inlinepanel.children: + for item in self.patch_translation_field( + child_panel, + translation_fields=inline_model_tr_fields): + translated_children.append(item) + translated_inline.append( + MultiFieldPanel( + translated_children, + classname=inlinepanel.classname, + heading=inlinepanel.heading)) + else: + translated_inline.append(inlinepanel) + + getattr(self.__class__, panel.relation_name).related.model.panels = translated_inline diff --git a/wagtail_modeltranslation/models.pyc b/wagtail_modeltranslation/models.pyc new file mode 100644 index 0000000000000000000000000000000000000000..31cb002ea633ce821d1c20ccfe405754eb7abfd4 GIT binary patch literal 3589 zcmcguO>Z1U5UrlsFFSGKuQ&;jK!ikEg0MkBB0^C_h(m;wY+y`SuwsqIJLC1(yR++= z4%s04fD&=!P7eGCICA4ZzzK1HUw}Aq0p6?G+1)sBOe{}te^hsMSG{^w?w>Q$zyJ2p zot6y$T>QR^FZ%>dh<_s;k*<+-BZgx~I*xQ*S$CydlJ!zP>q@6A-HNPNq+6BsDrQR( z)nv;^Se8d34@Ev(pOUa5YxOFQj{m`5-JoY{R2NwrC+)26aAq3K`*G9>KMaznV~=Ba z>t4skOFkf3Ytjx zLOc+6U3d6wc3i-!!R+7oEnk@b6h zi??O|RxkCty$}YQ!iw*=Izg8CzFna3*a(HZJ%#yxU|ZY%f?K^=v%Vo{sWJIp>s1DM$BoaVvaj%eZG|6HGJ83@CU393&VY|etJs6 zDLF8bY)UxI&T!Sy)tmGUoSSAmBA%lszJx=a!`}Ox#Gkcw-+Z?Cr?~7&Aq>+nX3U{_N$Cd-fmh# zC`RW9Han_*QguyLe`Sc{qm-k>@V5DYH_dN98aEM}+yM9^B1-bm#iPEIregjGeAiH9 z<=C^wFwyEIHcG5NF$F|*do~(Qc?>>J>4E@IuqQz`vINU^6ojA?%cDO?I&l&ylZ-K2 zr;c1S$O3Cqg?Iz^6PlwDFsY)LZ^!rf~>Ymni+zHbt(JOlM zJWm7h#s54a)=Lf_%NKwUd96C{;2lMy7qr1uWVmgH5$r5ynyIV_gYEPt>ik zjk-@z0i=pMs-1L@8+UA{XCK>i5t%Hzghmk8Q%=P>ZeB9@oCQ-cGo^X6WERm@%q)5* z@ay86GP9VQF|*}4r$sZ+Y~&~9f^X4bbht!ZI?px%%7H=r8-^ufGN)$+u#p{zA|@-6 zK9<1-?Tsj1-MBrBT2RVq&Q)aBm2{QFfpF(0#4^^v97~K_Jr&48=ptWGgh6ODj#g!F zRhnQHNUhaLs*M!wryfW`J$DGu$df&rHlW>;*Iel$>&AfTUTo0L&~7k#o{%kvI4bCKSa>dz3qX4th;<1l*gmHTe9& zYjg)lIZq-_i^0Y4H4xWK=A{I;>`qI%A;xHG|CDG%G635l~8 zk#hJ7Bi8j^=2q&?8M??vOXC?;ixR2`h(ke>?^A}IAbIaBwZ6jU9Gd4DB4?nF#eMb; z8bMf`aY(1GISVo^qqLea^B`CLE}}=$%|{c&>&!WgoK0v-G6@3B}Kr0{@AeaZB0%$|XLuez&BiaoCBbW=Q zBKQQ@06gadzz`NgKmj;_O+cpx@E8wCwE3nH3yNGsFqJjN0kaW@`_K=v4OJ#N6zIE6l=Rjb-(w7Y%FPW-+ zma@g7@V1Jg)zwNd<^1yoRb^v}U=LOjO<#43>AS4SxJ%dg(iy$L(xuYqRY|sWC(YX- z>pGjRW$k36I1#FC8>r&+Pn>ig85=yIX}Rj5xQ~x$b(aLaLej6LHkf!do6%ozR|JRZ s$yQyPjGrW9RiDFg6Aadkb!hfg`sja3^$xCo8-K%PTkidNFpkFI51~%3xc~qF literal 0 HcmV?d00001 diff --git a/wagtail_modeltranslation/views.py b/wagtail_modeltranslation/views.py new file mode 100644 index 0000000..91ea44a --- /dev/null +++ b/wagtail_modeltranslation/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here.