src/pyams_content/shared/common/__init__.py
changeset 105 338c87104ede
parent 72 3d0cfef1753e
child 155 444aec7a527d
equal deleted inserted replaced
104:b5426d5f0990 105:338c87104ede
    32 # import packages
    32 # import packages
    33 from persistent import Persistent
    33 from persistent import Persistent
    34 from pyams_i18n.content import I18nManagerMixin
    34 from pyams_i18n.content import I18nManagerMixin
    35 from pyams_security.property import RolePrincipalsFieldProperty
    35 from pyams_security.property import RolePrincipalsFieldProperty
    36 from pyams_security.security import ProtectedObject
    36 from pyams_security.security import ProtectedObject
       
    37 from pyams_security.utility import get_principal
    37 from pyams_utils.adapter import adapter_config, ContextAdapter
    38 from pyams_utils.adapter import adapter_config, ContextAdapter
       
    39 from pyams_utils.date import format_datetime
    38 from pyams_utils.registry import query_utility
    40 from pyams_utils.registry import query_utility
    39 from pyams_utils.request import query_request, check_request
    41 from pyams_utils.request import query_request, check_request
       
    42 from pyams_utils.timezone import tztime
    40 from pyams_utils.traversing import get_parent
    43 from pyams_utils.traversing import get_parent
    41 from pyams_utils.vocabulary import vocabulary_config
    44 from pyams_utils.vocabulary import vocabulary_config
    42 from pyramid.events import subscriber
    45 from pyramid.events import subscriber
    43 from pyramid.settings import asbool
    46 from pyramid.settings import asbool
    44 from pyramid.threadlocal import get_current_registry
    47 from pyramid.threadlocal import get_current_registry
    45 from zope.container.contained import Contained
    48 from zope.container.contained import Contained
    46 from zope.interface import implementer
    49 from zope.interface import implementer
    47 from zope.schema.fieldproperty import FieldProperty
    50 from zope.schema.fieldproperty import FieldProperty
    48 from zope.schema.vocabulary import SimpleVocabulary, SimpleTerm
    51 from zope.schema.vocabulary import SimpleVocabulary, SimpleTerm
    49 
    52 
       
    53 from pyams_content import _
       
    54 
    50 
    55 
    51 #
    56 #
    52 # Content types management
    57 # Content types management
    53 #
    58 #
    54 
    59 
   111 
   116 
   112     @property
   117     @property
   113     def first_owner(self):
   118     def first_owner(self):
   114         versions = IWorkflowVersions(self)
   119         versions = IWorkflowVersions(self)
   115         return versions.get_version(1).creator
   120         return versions.get_version(1).creator
       
   121 
       
   122     @property
       
   123     def creation_label(self):
       
   124         request = check_request()
       
   125         translate = request.localizer.translate
       
   126         return translate(_('{date} by {principal}')).format(
       
   127             date=format_datetime(tztime(IBaseContentInfo(self).created_date)),
       
   128             principal=get_principal(request, self.creator).title)
       
   129 
       
   130     @property
       
   131     def last_update_label(self):
       
   132         request = check_request()
       
   133         translate = request.localizer.translate
       
   134         return translate(_('{date} by {principal}')).format(
       
   135             date=format_datetime(tztime(IBaseContentInfo(self).modified_date)),
       
   136             principal=get_principal(request, self.last_modifier).title)
   116 
   137 
   117 
   138 
   118 @subscriber(IObjectModifiedEvent, context_selector=IWfSharedContent)
   139 @subscriber(IObjectModifiedEvent, context_selector=IWfSharedContent)
   119 def handle_modified_shared_content(event):
   140 def handle_modified_shared_content(event):
   120     """Define content's modifiers when content is modified"""
   141     """Define content's modifiers when content is modified"""