Changeset 72 for trunk/Story.py


Ignore:
Timestamp:
01/13/06 14:34:41 (14 years ago)
Author:
meelis
Message:

references #133 Story content type created has all described functionalities, but some of them has to be modified for better look

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Story.py

    r66 r72  
    11from Products.Archetypes.public import BaseSchema, Schema 
    2 from Products.Archetypes.public import StringField, LinesField, TextField 
     2from Products.Archetypes.public import StringField, LinesField, TextField, ReferenceField 
    33from Products.Archetypes.public import LinesWidget, TextAreaWidget, IdWidget, StringWidget, SelectionWidget, RichWidget 
     4from Products.ATReferenceBrowserWidget.ATReferenceBrowserWidget import ReferenceBrowserWidget 
     5from WYSIWYM import WYSIWYMField, WYSIWYMWidget 
     6from Products.CMFCore.permissions import ModifyPortalContent 
    47from Products.Archetypes.public import BaseContent, registerType 
    58from Globals import InitializeClass 
     
    1821            i18n_domain="toolbox"), 
    1922        ), 
    20     TextField('body', 
    21         accessor="getBody", 
    22         requid=1, 
    23         widget=TextAreaWidget( 
    24             label="Structured text", 
    25             label_msgid="label_structured_text", 
    26             description="Write your text here", 
    27             description_msgid="desc_structured_text", 
    28             i18n_domain="toolbox"), 
     23    WYSIWYMField('body', 
     24        required=True, 
     25        primary=False, 
     26        languageIndependent=False, 
     27        widget=WYSIWYMWidget( 
     28            label="Body", 
     29            label_msgid="label_body", 
     30            description="Story body", 
     31            description_msgid="desc_body", 
     32            i18n_domain="toolbox",), 
    2933        ), 
     34    LinesField('tags', 
     35        widget=LinesWidget( 
     36            label="Tags", 
     37            label_msgid="label_tags", 
     38            description="Write the tags here", 
     39            description_msgid="desc_tags", 
     40            i18n_domain="toolbox" 
     41        ), 
     42    ), 
     43    ReferenceField('relatedContent', 
     44        relationship = 'relatesTo', 
     45        multiValued = True, 
     46        isMetadata = True, 
     47        languageIndependent = False, 
     48        index = 'KeywordIndex', 
     49        write_permission = ModifyPortalContent, 
     50        allowed_types=('Document','Pice','Content','Material'), 
     51        widget = ReferenceBrowserWidget( 
     52            allow_search = True, 
     53            allow_browse = True, 
     54            show_indexes = False, 
     55            force_close_on_insert = True, 
     56            startup_directory = "content", 
     57            size = 4, 
     58 
     59            label = "Related Content", 
     60            label_msgid = "label_related_content", 
     61            description = "", 
     62            description_msgid = "help_related_content", 
     63            i18n_domain = "toolbox", 
     64            visible = {'edit' : 'visible', 'view' : 'invisible' } 
     65            ) 
     66        ), 
     67    ReferenceField('relatedActivities', 
     68        relationship = 'relatesToActivities', 
     69        multiValued = True, 
     70        isMetadata = True, 
     71        languageIndependent = False, 
     72        index = 'KeywordIndex', 
     73        write_permission = ModifyPortalContent, 
     74        allowed_types=('Document','Activity',), 
     75        widget = ReferenceBrowserWidget( 
     76            allow_search = True, 
     77            allow_browse = True, 
     78            show_indexes = False, 
     79            force_close_on_insert = True, 
     80            startup_directory = "activities", 
     81            size = 4, 
     82 
     83            label = "Related Activities", 
     84            label_msgid = "label_related_activities", 
     85            description = "", 
     86            description_msgid = "help_related_activities", 
     87            i18n_domain = "toolbox", 
     88            visible = {'edit' : 'visible', 'view' : 'invisible' } 
     89            ) 
     90        ), 
     91    ReferenceField('relatedTools', 
     92        relationship = 'relatesToTools', 
     93        multiValued = True, 
     94        isMetadata = True, 
     95        languageIndependent = False, 
     96        index = 'KeywordIndex', 
     97        write_permission = ModifyPortalContent, 
     98        allowed_types=('Document','Tool',), 
     99        widget = ReferenceBrowserWidget( 
     100            allow_search = True, 
     101            allow_browse = True, 
     102            show_indexes = False, 
     103            force_close_on_insert = True, 
     104            startup_directory = "tools", 
     105            size = 4, 
     106 
     107            label = "Related Tools", 
     108            label_msgid = "label_related_tools", 
     109            description = "", 
     110            description_msgid = "help_related_tools", 
     111            i18n_domain = "toolbox", 
     112            visible = {'edit' : 'visible', 'view' : 'invisible' } 
     113            ) 
     114        ) 
    30115)) 
    31116 
     
    49134    archetype_name = "Story"   
    50135    global_allow = 1 
    51      
    52     def __init__(self, id): 
    53     self.id = id 
    54         self.links = [] 
    55136 
    56     def getAuthorName(self): 
    57     """ Getting authors name for author field's default value """ 
    58         authorInfo = self.Creator() 
    59     authorObject = self.portal_membership.getMemberById(authorInfo) 
    60     authorName = getattr(authorObject, 'fullname') 
    61     if authorName != None: 
    62         return authorName 
    63         else: 
    64         return str(authorObject) 
    65      
    66     def getLink(self): 
    67     """ Links out """ 
    68     return self.links 
    69  
    70     def addLink(self, REQUEST): 
    71     """ Links add """ 
    72     linkName = REQUEST.get('linkname') 
    73     linkSelf = REQUEST.get('linkself') 
    74     if (linkName != '' and linkSelf != ''): 
    75         link = {'name' : linkName, 'href' : linkSelf} 
    76         self.links.append(link)  
    77         self._p_changed = 1 
    78  
    79     def saveLinks(self, REQUEST): 
    80     """ Modify links """ 
    81     newLinks = [] 
    82     for nr in range(1, len(self.links)+1): 
    83         if (REQUEST.get('ischecked'+str(nr)) != None): 
    84             linkName = REQUEST.get('linkname'+str(nr)) 
    85             linkSelf = REQUEST.get('linkself'+str(nr)) 
    86         if (linkName != '' and linkSelf != ''): 
    87                 link = {'name' : linkName, 'href' : linkSelf} 
    88                 #self.links[nr-1] = link 
    89             newLinks.append(link) 
    90  
    91         else: 
    92                 newLinks.append(self.links[nr-1]) 
    93     self.links = newLinks        
    94         self._p_changed = 1 
    95137 
    96138registerType(Story, PROJECTNAME) 
Note: See TracChangeset for help on using the changeset viewer.