Changeset 82

Show
Ignore:
Timestamp:
06/01/07 15:46:05
Author:
sjudge
Message:

Altered schemata.py and PSCProject.py and psc_project_view.pt to allow a download_page field to simplify adding software.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/PloneSoftwareCenter/TODO.txt

    r58 r82  
    99SEE TRAC! oatsoft.org/trac/oats 
    1010 
    11 ***BUGS?? 
    12  
    13  - psc_release_view : ERROR IN CODE? - SUBMIT TO PSC team. 
    14  
    15 #       <tr tal:define="licenseData python:here.getDataGridRow('availableLicenses', here.getLicense())"> 
    16 #           <th i18n:translate="heading_license">License</th> 
    17    
    1811 
    1912================================================== 
  • trunk/PloneSoftwareCenter/content/PSCProject.py

    r72 r82  
    6161    ) 
    6262 
     63#Setup the default content 
     64 
     65    def at_post_create_script(self): 
     66        self.at_post_edit_script() 
     67 
     68    def at_post_edit_script(self): 
     69 
     70        #Poll 
     71        if not self.objectIds('PlonePopoll'): 
     72            #SETUP the default content of the Project Folder 
     73            self.invokeFactory(id='Poll', type_name='PlonePopoll', title=config.POLL_ID)        
     74            poll = getattr(self, 'Poll') 
     75            #poll._setProperty("enable",1) 
     76            poll.setPollOptions(question='How would you rate this project?', choices=['1 (Average)', '2', '3', '4', '5 (Brilliant)'], choices_number=1, check_multi=1) 
     77 
     78 
    6379    typeDescMsgId = 'description_edit_package' 
    6480    typeDescription = ('Please use the form below to enter details about the project you would like to submit. If you are submitting your own project please use the "Advanced Information" page too.') 
     
    7187        """ 
    7288        OrderedBaseFolder.initializeArchetype(self,**kwargs) 
    73          
    74         if self.haveHelpCenter() and not self.objectIds('PSCDocumentationFolder'): 
    75             self.invokeFactory('PSCDocumentationFolder', 
    76                                config.DOCUMENTATION_ID, title=config.DOCUMENTATION_ID) 
    77  
    78         help= getattr(self, config.DOCUMENTATION_ID) 
    79         help._setProperty("allow_discussion",0) 
    80          
    81         if not self.objectIds('PSCReleaseFolder'): 
    82             self.invokeFactory('PSCReleaseFolder', config.RELEASES_ID) 
    83  
    84         #SETUP the default content of the Project Folder 
    85         self.invokeFactory(id='Poll', type_name='PlonePopoll', title=config.POLL_ID)        
    86         poll = getattr(self, 'Poll') 
    87         poll._setProperty("allow_discussion",0) 
    88         poll.setPollOptions(question='How would you rate this project?', choices=['1', '2', '3', '4', '5'], choices_number=1, check_multi=1) 
    89         poll.enable() 
    90         poll.setVisible() 
    91  
    92         # POI and ImprovementFolders can be added by the developer....         
    93          
    94         #self.invokeFactory(id='PoiPscTracker', type_name='PoiPscTracker', title=config.TRACKER_ID, description='Bug Tracker') 
    95   
    96         #if not self.objectIds('PSCImprovementProposalFolder'): 
    97              #self.invokeFactory('PSCImprovementProposalFolder', 
    98                                 #config.IMPROVEMENTS_ID) 
    9989        
    10090 
     
    191181        """ 
    192182        releaseFolder = self.getReleaseFolder() 
    193         catalog = getToolByName(self, 'portal_catalog') 
    194  
    195         preferredMaturity = self.getPreferredMaturity() 
    196  
    197         obj = self.getLatestPreferredRelease() 
    198  
    199         if obj: 
    200             return obj 
    201  
    202         res = catalog.searchResults( 
     183 
     184        if releaseFolder: 
     185            #DO not assume there is a release folder 
     186            catalog = getToolByName(self, 'portal_catalog') 
     187            preferredMaturity = self.getPreferredMaturity() 
     188             
     189            obj = self.getLatestPreferredRelease() 
     190 
     191            if obj: 
     192                return obj 
     193 
     194            res = catalog.searchResults( 
    203195                            path = '/'.join(releaseFolder.getPhysicalPath()), 
    204196                            review_state = 'published', 
     
    207199                            portal_type = 'PSCRelease') 
    208200 
    209         if not res: 
     201            if not res: 
     202                return None 
     203            else: 
     204                return res[0].getObject() 
     205        else: 
    210206            return None 
    211         else: 
    212             return res[0].getObject() 
    213207 
    214208    security.declareProtected(CMFCorePermissions.View, 'getLatestPreferredRelease') 
  • trunk/PloneSoftwareCenter/content/schemata.py

    r77 r82  
    492492            description="The project's home page - if different from this.", 
    493493            description_msgid="help_package_homepage", 
     494            i18n_domain="plonesoftwarecenter", 
     495        ), 
     496    ), 
     497 
     498    StringField( 
     499        name='downloadPage', 
     500        searchable=1, 
     501        required=1, 
     502        index='KeywordIndex:schema', 
     503        validators=('isURL',), 
     504        widget=StringWidget( 
     505            label="Download Link ", 
     506            label_msgid="label_package_downloadpage", 
     507            description="Webpage where this software can be downloaded from.", 
     508            description_msgid="help_package_downloadpage", 
    494509            i18n_domain="plonesoftwarecenter", 
    495510        ), 
  • trunk/PloneSoftwareCenter/skins/plonesoftwarecenter/psc_project_view.pt

    r81 r82  
    8585        <p> You must read the <a href="/Info/disclaimer">disclaimer</a> before downloading.</p> 
    8686 
    87         <tal:noreleases tal:condition="not:latestrelease"> 
     87        <tal:noreleases tal:condition="not:latestrelease and not here.getDownloadPage()"> 
    8888 
    8989            <p class="discreet"> 
     
    101101 
    102102        </tal:noreleases> 
     103 
     104        <tal:externalrelease condition="python:here.getDownloadPage() and not latestrelease"> 
     105 
     106                <dl> 
     107                    <dt> 
     108                        <img src="" alt="download page" tal:attributes="src string:${here/portal_url}/download_icon.gif" /> 
     109 
     110                      <a class="link-plain" 
     111                         tal:attributes="href here/getDownloadPage"> 
     112                        <span i18n:translate="label_download">Download</span> 
     113                        <span tal:replace="here/Title">Ploneboard 1.0</span> 
     114                        - External Download Page. 
     115                        </a> 
     116                    </dt> 
     117                </dl> 
     118 
     119        </tal:externalrelease> 
    103120 
    104121        <tal:releases condition="latestrelease"> 
  • trunk/PloneSoftwareCenter/version.txt

    r70 r82  
    1 1.0 rc1  PSC2.1 Integration branch - OATS beta 70+ 
     12.081 rc1  PSC2.1 Integration branch