Changeset 72


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

Location:
trunk
Files:
2 added
5 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) 
  • trunk/skins/toolbox

    • Property svn:ignore set to
      computeRelatedItems.py
  • trunk/skins/toolbox/story_edit.cpt

    r53 r72  
    8080        <metal:use_typedescription use-macro="typedescription_macro" /> 
    8181        <metal:use_body use-macro="body_macro" /> 
    82  
    83         <form action="" method="post" tal:attributes="action string:${here/absolute_url}/${template/id};"> 
    84         <!--div class="field"> 
    85             <label for="title" i18n:translate="">Title</label> 
    86             <span class="fieldRequired" title="Required" 
    87                       i18n:attributes="title title_required;" 
    88                       i18n:translate="label_required">(Required)</span> 
    89                        <br /> 
    90                        <input type="text" 
    91                        id="title" 
    92                        name="title" 
    93                        size="25" 
    94                        tabindex="" 
    95                        tal:define="Title python:here.Title" 
    96                        value="Title html_quote" 
    97                        tal:attributes="value Title; 
    98                                        tabindex tabindex/next;" 
    99                        /> 
    100         </div> 
    101  
    102         <div class="field"> 
    103             <label for="author" i18n:translate="">Author</label> 
    104                        <br /> 
    105                        <input type="text" 
    106                        id="author" 
    107                        name="author" 
    108                        size="25" 
    109                        tabindex="" 
    110                        tal:define="author python:here.getAuthor()" 
    111                        value="author html_quote" 
    112                        tal:attributes="value author; 
    113                                        tabindex tabindex/next;" 
    114                        /> 
    115         </div> 
    116  
    117         <div class="field"> 
    118                        <textarea type="text" 
    119                        id="body" 
    120                        name="body" 
    121                        tal:content="python:here.getBody()" 
    122                        rows="8" 
    123                        tal:attributes="tabindex tabindex/next;" 
    124                        /> 
    125         </div--> 
    126  
    127         <div  class="field"> 
    128             <label for="links" i18n:translate="">Links</label> 
    129                 <div class="formHelp" i18n:translate="help_location"> 
    130                 To add a new link fill name and URL fields and click 'add link'. You can modify links, just select link you want to modify, edit it and click 'Modify selected links'. For removing link select link you want to remove clear all fields and click 'Modify selected links'. 
    131                 </div> 
    132                 <br /> 
    133                 <table border="0"> 
    134                 <tr tal:condition="here/getLink"> 
    135                     <td> 
    136                     </td> 
    137                     <td>Name 
    138                     </td> 
    139                     <td>URL 
    140                     </td> 
    141                     <td> 
    142                     </td> 
    143                 </tr> 
    144                 <tr tal:repeat="link here/getLink"> 
    145                     <span tal:define="linkname python:link['name']; linkself python:link['href']; nr python:repeat['link'].number()"> 
    146                     <td> 
    147                        <input type="checkbox" 
    148                        id="" 
    149                        name="" 
    150                        tabindex="" 
    151                        tal:attributes="id python:'ischecked'+str(nr); name python:'ischecked'+str(nr); 
    152                                        tabindex tabindex/next;" 
    153                        /> 
    154                     </td> 
    155                     <td> 
    156                        <input type="text" 
    157                        id="" 
    158                        name="" 
    159                        size="25" 
    160                        tabindex="" 
    161                        value="linkname html_quote" 
    162                        tal:attributes="value linkname; id python:'linkname'+str(nr); name python:'linkname'+str(nr); 
    163                                        tabindex tabindex/next;" 
    164                        /> 
    165                     </td> 
    166                     <td> 
    167                        <input type="text" 
    168                        id="" 
    169                        name="" 
    170                        size="35" 
    171                        tabindex="" 
    172                        value="linkself html_quote" 
    173                        tal:attributes="value linkself; id python:'linkself'+str(nr); name python:'linkself'+str(nr); 
    174                                        tabindex tabindex/next;" 
    175                        /> 
    176                     </td> 
    177                     <td> 
    178                        <a href="" tal:attributes="href linkself" tal:content="linkname"></a> 
    179                     </td> 
    180                    </span> 
    181                </tr> 
    182                <tr tal:condition="here/getLink"> 
    183                     <td> 
    184                     </td> 
    185                     <td> 
    186                     </td> 
    187                     <td align="right"> 
    188                        <input class="context" 
    189                        tabindex="" 
    190                        type="submit" 
    191                        value="Modify selected links" 
    192                        name="form.button.SaveLinks" 
    193                        i18n:attributes="value label_savelink;" 
    194                        tal:attributes="tabindex tabindex/next;" 
    195                        /> 
    196                     </td> 
    197                     <td> 
    198                     </td> 
    199                </tr> 
    200                 <tr> 
    201                     <td> 
    202                     </td> 
    203                     <td>Name 
    204                     </td> 
    205                     <td>URL 
    206                     </td> 
    207                     <td> 
    208                     </td> 
    209                 </tr> 
    210                <tr> 
    211                     <td> 
    212                     </td> 
    213                     <td> 
    214                        <input type="text" 
    215                        id="linkname" 
    216                        name="linkname" 
    217                        size="25" 
    218                        tabindex="" 
    219                        value="" 
    220                        tal:attributes="tabindex tabindex/next;" 
    221                        /> 
    222                     </td> 
    223                     <td> 
    224                        <input type="text" 
    225                        id="linkself" 
    226                        name="linkself" 
    227                        size="35" 
    228                        tabindex="" 
    229                        value="" 
    230                        tal:attributes="tabindex tabindex/next;" 
    231                        /> 
    232                     </td> 
    233                     <td> 
    234                        <input class="context" 
    235                        tabindex="" 
    236                        type="submit" 
    237                        value="Add link" 
    238                        name="form.button.AddLink" 
    239                        i18n:attributes="value label_addlink;" 
    240                        tal:attributes="tabindex tabindex/next;" 
    241                        /> 
    242                     </td> 
    243                </tr> 
    244                </table> 
    245         </div> 
    246  
    247         <!--div class="formControls"> 
    248                 <input class="context" 
    249                        tabindex="" 
    250                        type="submit" 
    251                        value="Save" 
    252                        name="form.button.Save" 
    253                        i18n:attributes="value label_save;" 
    254                        tal:attributes="tabindex tabindex/next;" 
    255                        /> 
    256                 <input class="standalone" 
    257                        tabindex="" 
    258                        type="submit" 
    259                        value="Cancel" 
    260                        name="form.button.Cancel" 
    261                        i18n:attributes="value label_cancel;" 
    262                        tal:attributes="tabindex tabindex/next;" 
    263                        /> 
    264             </div--> 
    265  
    266             <input type="hidden" name="form.submitted" value="1" /> 
    267         </form> 
    268  
    26982        <metal:use_footer use-macro="footer_macro" /> 
    27083      </metal:main> 
  • trunk/skins/toolbox/story_edit.cpt.metadata

    r66 r72  
    1212action.success..cancel = traverse_to:string:go_back 
    1313action.failure = traverse_to_action:string:edit 
    14 action.success..AddLink = traverse_to:string:script_addLink 
    15 action.success..SaveLinks = traverse_to:string:script_saveLinks 
  • trunk/skins/toolbox/story_view.pt

    r53 r72  
    8282        <metal:use_body use-macro="body_macro" /> 
    8383 
    84         <div> 
    85         <label for="links" i18n:translate="">Links</label> 
    86         <div tal:repeat="link here/getLink"> 
    87             <span tal:define="linkname python:link['name']; linkself python:link['href']; nr python:repeat['link'].number()"> 
    88                 <a href="" tal:attributes="href linkself" tal:content="python:linkname+' - ('+linkself+')'"></a> 
    89             </span> 
    90         </div> 
    91         <br /> 
    92         </div> 
    93  
    9484        <metal:use_body use-macro="folderlisting_macro" /> 
    9585        <metal:use_footer use-macro="footer_macro" /> 
    9686 
    97         <div metal:use-macro="here/related_stories/macros/related_stories"> 
    98             All related activities 
     87        <div metal:use-macro="here/story_relateditems/macros/relatedItems"> 
     88            show related items if they exist 
    9989        </div> 
    10090 
Note: See TracChangeset for help on using the changeset viewer.