Changeset 52
- Timestamp:
- 30/01/06 22:52:22
- Files:
-
- trunk/PloneSoftwareCenter/README.txt (modified) (1 diff)
- trunk/PloneSoftwareCenter/content/PSCProject.py (modified) (1 diff)
- trunk/PloneSoftwareCenter/content/PloneSoftwareCenter.py (modified) (5 diffs)
- trunk/PloneSoftwareCenter/content/schemata.py (modified) (1 diff)
- trunk/PloneSoftwareCenter/skins/plonesoftwarecenter/listing.pt (modified) (3 diffs)
- trunk/PloneSoftwareCenter/skins/plonesoftwarecenter/oats_view.pt (modified) (4 diffs)
- trunk/PloneSoftwareCenter/skins/plonesoftwarecenter/psc_project_view.pt (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/PloneSoftwareCenter/README.txt
r22 r52 23 23 - Can optionally use PloneHelpCenter to provide package-specific help 24 24 containers. 25 26 OATS VARIANT: 27 28 - Requires 29 - MasterSelectWidget: http://www.plone.org/products/masterselectwidget 30 - atreferencebrowserwidget http://www.plone.org/products/atreferencebrowserwidget 31 25 32 26 33 Note for pre-1.0 users trunk/PloneSoftwareCenter/content/PSCProject.py
r49 r52 74 74 self.invokeFactory('PSCDocumentationFolder', 75 75 config.DOCUMENTATION_ID, title=config.DOCUMENTATION_ID) 76 77 help= getattr(self, config.DOCUMENTATION_ID) 78 help._setProperty("allow_discussion",0) 76 79 77 80 if not self.objectIds('PSCReleaseFolder'): trunk/PloneSoftwareCenter/content/PloneSoftwareCenter.py
r46 r52 75 75 76 76 security.declarePrivate('_getContained') 77 def _getContained(self, states, category, CatType, oats_status, portal_type, limit=None,77 def _getContained(self, states, category, CatType, oats_status, recommend, portal_type, limit=None, 78 78 sort_on='effective', sort_order='ascending'): 79 79 """Get contained objects of type portal_type … … 96 96 97 97 if oats_status: 98 query['getOats_status'] = oats_status 98 query['getOats_status'] = oats_status 99 if recommend: 100 query['isRecommended'] = recommend 99 101 100 102 if limit: … … 119 121 else: 120 122 oats_status=None 121 return self._getContained(states, None, None, oats_status, 'PSCProject', limit, sort_on='sortable_title', sort_order='ascending') 123 return self._getContained(states, None, None, oats_status, None, 'PSCProject', limit, sort_on='sortable_title', sort_order='ascending') 124 125 security.declareProtected(CMFCorePermissions.View, 'getTopForge') 126 def getTopForge(self, Forge, states=[], limit=None, sort_on=None): 127 """Get catalog brain of packages.""" 128 return self._getContained(states, None, None, 'OATSProject' , None, 'PSCProject', limit, sort_on, sort_order='ascending') 122 129 123 130 security.declareProtected(CMFCorePermissions.View, 'getRecommended') 124 def getRecommended(self, Forge, states=[], limit=None ):131 def getRecommended(self, Forge, states=[], limit=None, sort_on=None): 125 132 """Get catalog brain of packages.""" 126 """ Need to implement Recommended as a Vocab."""133 """ Need to implement Recommended as a Vocab????????.""" 127 134 if Forge=='Forge': 128 135 oats_status='OATSProject' 129 136 else: 130 137 oats_status=None 131 return self._getContained(states, None, None, oats_status, 'PSCProject', limit, sort_on='sortable_title', sort_order='ascending')138 return self._getContained(states, None, None, oats_status, 1,'PSCProject', limit, sort_on, sort_order='descending') 132 139 133 140 security.declareProtected(CMFCorePermissions.View, 'getPackagesByCategory') … … 139 146 else: 140 147 oats_status=None 141 return self._getContained(states, category, CatType, oats_status, 'PSCProject', limit, sort_on='sortable_title', sort_order='ascending')148 return self._getContained(states, category, CatType, oats_status, None,'PSCProject', limit, sort_on='sortable_title', sort_order='ascending') 142 149 143 150 security.declareProtected(CMFCorePermissions.View, 'getReleases') … … 153 160 else: 154 161 oats_status=None 155 return self._getContained(states, category, CatType, oats_status, 'PSCelease', limit, sort_on='sortable_title', sort_order='ascending')162 return self._getContained(states, category, CatType, oats_status, None,'PSCelease', limit, sort_on='sortable_title', sort_order='ascending') 156 163 157 164 security.declareProtected(CMFCorePermissions.View, 'getCategoriesToList') trunk/PloneSoftwareCenter/content/schemata.py
r49 r52 557 557 searchable=1, 558 558 default=0, 559 index='KeywordIndex:schema', 559 560 write_permission=CMFCorePermissions.ReviewPortalContent, 560 561 widget=BooleanWidget( trunk/PloneSoftwareCenter/skins/plonesoftwarecenter/listing.pt
r49 r52 21 21 Forge python:request.traverse_subpath and request.traverse_subpath[0] or nothing;"> 22 22 23 <tal:projects define="packages python:here.getPackages(Forge)"> 24 25 <div metal:use-macro="here/document_actions/macros/document_actions"> 23 <div metal:use-macro="here/document_actions/macros/document_actions"> 26 24 Document actions (print, sendto etc) 27 25 </div> 26 27 <h2 class="documentDescription" tal:condition="python:Forge!='Forge'" > 28 Recommended software. 29 </h2> 30 <h2 class="documentDescription" tal:condition="python:Forge=='Forge'"> 31 Recommended projects on the Forge. 32 </h2> 33 34 <tal:recommended define="packages python:here.getRecommended(Forge, None, 5, 'effective')"> 35 36 <tal:nopackages condition="not:nocall:packages"> 37 <div class="discreet" i18n:translate="no_packages_found"> 38 No recommended software on the site at the moment! 39 </div> 40 </tal:nopackages> 41 42 <tal:packages condition="nocall:packages"> 43 44 <dl> 45 <tal:package tal:repeat="package packages"> 46 <dt tal:condition="here/getLogo| nothing"> 47 <a tal:attributes="href package/getURL"> 48 <img tal:replace="structure here/getLogo" /> 49 </a> 50 </dt> 51 <dt tal:condition="not: package/getLogo| nothing"> 52 <a tal:attributes="href package/getURL"> 53 <img tal:replace="structure here/product_icon.gif" /> 54 </a> 55 </dt> 56 <dt> 57 <a tal:attributes="href package/getURL" tal:content="package/Title">Title</a> 58 </dt> 59 <dd tal:content="package/Description">Description</dd> 60 </tal:package> 61 </dl> 62 </tal:packages> 63 64 </tal:recommended> 65 66 <p> </p> 67 <h2 class="documentDescription" tal:condition="python:Forge!='Forge'" > 68 Full listing of software. 69 </h2> 70 <h2 class="documentDescription" tal:condition="python:Forge=='Forge'"> 71 Full listing of software hosted on the OATS Forge. 72 </h2> 73 74 <tal:projects define="packages python:here.getPackages(Forge)"> 28 75 29 76 <tal:nopackages condition="not:nocall:packages"> … … 34 81 35 82 <tal:packages condition="nocall:packages"> 36 <p> </p> 37 <h2 class="documentDescription" tal:condition="python:Forge!='Forge'" > 38 Full listing of software. 39 </h2> 40 <h2 class="documentDescription" tal:condition="python:Forge=='Forge'"> 41 Full listing of software hosted on the OATS Forge. 42 </h2> 83 43 84 44 85 <h3 tal:condition="python:Forge!='Forge'"> … … 80 121 </tal:projects> 81 122 123 82 124 </div> 83 125 trunk/PloneSoftwareCenter/skins/plonesoftwarecenter/oats_view.pt
r48 r52 82 82 </form> 83 83 84 <form>85 84 <fieldset> 86 85 <ul> … … 132 131 </ul> 133 132 </fieldset> 134 </form>135 133 134 <fieldset> 135 136 <legend i18n:translate="legend_recent_recommended">Recent recommended software</legend> 137 138 <tal:recommended define="packages python:here.getRecommended(None, None, 5, 'effective')"> 139 140 <tal:nopackages condition="not:nocall:packages"> 141 <div class="discreet" i18n:translate="no_packages_found"> 142 No recommended software on the site at the moment! 143 </div> 144 </tal:nopackages> 145 146 <tal:packages condition="nocall:packages"> 147 148 <dl> 149 <tal:package tal:repeat="package packages"> 150 <dt tal:condition="here/getLogo| nothing"> 151 <a tal:attributes="href package/getURL"> 152 <img tal:replace="structure here/getLogo" /> 153 </a> 154 </dt> 155 <dt tal:condition="not: package/getLogo| nothing"> 156 <a tal:attributes="href package/getURL"> 157 <img tal:replace="structure here/product_icon.gif" /> 158 </a> 159 </dt> 160 <dt> 161 <a tal:attributes="href package/getURL" tal:content="package/Title">Title</a> 162 </dt> 163 <dd tal:content="package/Description">Description</dd> 164 </tal:package> 165 </dl> 166 </tal:packages> 167 168 </tal:recommended> 169 170 </fieldset> 171 172 <div class="documentByLine"> 173 <a class="link-plain" href="http://oatsoft.org/Software/OatsSoftwareRepository">OATS Software Repository</a> - powered by <a class="link-plain" href="http://plone.org/products/plonesoftwarecenter">Plone Software Center</a> 174 </div> 175 136 176 <form style="float: right" 137 177 action="createObject" … … 146 186 /> 147 187 </form> 148 149 188 <form style="float: right" 150 189 tal:condition="python: not user.has_permission('Add portal content', context) and mtool.isAnonymousUser()" … … 161 200 </form> 162 201 163 164 165 166 <div class="documentByLine">167 <a class="link-plain" href="http://oatsoft.org/Software/OatsSoftwareRepository">OATS Software Repository</a> - powered by <a class="link-plain" href="http://plone.org/products/plonesoftwarecenter">Plone Software Center</a>168 </div>169 170 202 </div> 171 203 trunk/PloneSoftwareCenter/skins/plonesoftwarecenter/psc_project_view.pt
r46 r52 175 175 176 176 <div class="visualClear"></div> 177 <div> 178 <h3> Programmers </h3> 179 <p> Interested in helping to devlop this project? Go to the <a href="" tal:attributes="href string:$here_url/forge_view">forge page</a> for more information. </p> 180 </div> 181 182 <div class="visualClear"></div> 183 184 <div metal:use-macro="here/document_relateditems/macros/relatedItems"> 185 show related items if they exist 186 </div> 187 188 <div class="visualClear"></div> 177 189 178 190 <div metal:use-macro="here/document_byline/macros/byline">
