diff --git a/product/ERP5/Document/Document.py b/product/ERP5/Document/Document.py index f629fed9e208700f1f4a7420bc2391ae801f4082..4b749c49f649f2b73dda1a2d300f8a1f837cc11f 100755 --- a/product/ERP5/Document/Document.py +++ b/product/ERP5/Document/Document.py @@ -31,10 +31,7 @@ from AccessControl import ClassSecurityInfo from Products.ERP5Type import Permissions, PropertySheet, Constraint, Interface from Products.ERP5Type.XMLObject import XMLObject -from Products.Base18.Document import Document as Document18 -from Products.Base18.interfaces.Translatable import Translatable - -class Document(XMLObject, Document18): +class Document(XMLObject): """ A Document can contain text that can be formatted using *Structured Text* or *HTML*. Text can be automatically translated @@ -66,107 +63,5 @@ class Document(XMLObject, Document18): ) # Declarative interfaces - __implements__ = ( Translatable ) - - # CMF Factory Type Information - factory_type_information = \ - { 'id' : portal_type - , 'meta_type' : meta_type - , 'description' : """\ -Document can contain text that can be formatted using 'Structured Text'.\ -or 'HTML'. Text can be automatically translated through the use of\ -'message catalogs' and provided to the user in multilple languages.""" - , 'icon' : 'document_icon.gif' - , 'product' : 'ERP5' - , 'factory' : 'addDocument' - , 'immediate_view' : 'document_edit' - , 'actions' : - ( { 'id' : 'view' - , 'name' : 'View' - , 'category' : 'object_view' - , 'action' : 'document_view' - , 'permissions' : ( - Permissions.View, ) - } - , { 'id' : 'edit' - , 'name' : 'Edit' - , 'category' : 'object_view' - , 'action' : 'document_edit' - , 'permissions' : ( - Permissions.View, ) - } - , { 'id' : 'print' - , 'name' : 'Print' - , 'category' : 'object_print' - , 'action' : 'document_print' - , 'permissions' : ( - Permissions.View, ) - } - , { 'id' : 'metadata' - , 'name' : 'Metadata' - , 'category' : 'object_view' - , 'action' : 'metadata_edit' - , 'permissions' : ( - Permissions.View, ) - } - , { 'id' : 'translate' - , 'name' : 'Translate' - , 'category' : 'object_action' - , 'action' : 'translation_template_view' - , 'permissions' : ( - Permissions.TranslateContent, ) - } - ) - } - - ### Specific Translation methods - security.declareProtected(Permissions.View, 'TranslatedBody') - def TranslatedBody(self, stx_level=None, setlevel=0, lang=None, md=None): - """\ - Equivalent to CookedBody but returns a translated version thanks - to the use of message catalog - """ - if md is None: md = self.findMessageCatalog() - if stx_level is None: stx_level = self._stx_level - if lang is None: lang = self.getNegotiatedLanguage(md) - # Create a translation cache if necessary - if self.cached_translations is None: - self.cached_translations = PersistentMapping() - if not self.cached_translations.has_key(lang) or \ - stx_level != self._stx_level: - if self.text_format == 'html': - cooked = _translate_html(self.text_content, md, stx_level, lang) - else: - cooked = _translate_stx(self.text_content, md, stx_level, lang) - self.cached_translations[lang] = \ - (md.bobobase_modification_time(),cooked) - elif self.cached_translations[lang][0] != \ - md.bobobase_modification_time() or \ - self.cached_translations[lang][1] != \ - self.bobobase_modification_time(): - if self.text_format == 'html': - cooked = _translate_html(self.text_content, md, stx_level, lang) - else: - cooked = _translate_stx(self.text_content, md, stx_level, lang) - self.cached_translations[lang] = (md.bobobase_modification_time(), - self.bobobase_modification_time(),cooked) - else: - cooked = self.cached_translations[lang][2] - return cooked + __implements__ = () - security.declareProtected(Permissions.View, 'TranslationTemplate') - def TranslationTemplate(self): - """\ - This method allows to produce of .pot file for this document - """ - # Create a new catalog - md = MessageCatalog('temp', 'Temporary Message Catalog', - self.findMessageCatalog().get_languages()) - # Do some dirty acquisition trick - md.aq_base = self - # Run the md on the text body, title and description - cooked = _translate_stx(self.text_content, md, self._stx_level, None) - md.gettext(self.Title()) - md.gettext(self.Description()) - # And return the template - return md.manage_export('locale.pt')