summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Mantke <maand@gmx.de>2011-04-25 18:40:32 +0200
committerAndreas Mantke <maand@gmx.de>2011-04-25 18:40:32 +0200
commitf0ed7d9689d3cc032dccf8ef49fa90ce9f5af346 (patch)
tree7a6bf97b3628b6355c597c8778f07ebededccd54
parent322437f20394218b94fea2d759be41fb58fbf60a (diff)
files with the right naming for LiboExtensionCenter
-rw-r--r--LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_categories_view.pt69
-rw-r--r--LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_file_view.pt70
-rw-r--r--LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_improvements_listing.pt146
-rw-r--r--LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_improvements_view.pt113
-rw-r--r--LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_project_view.pt269
-rw-r--r--LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_release_listing.pt60
-rw-r--r--LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_release_view.pt244
-rw-r--r--LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_releasefolder_view.pt163
-rw-r--r--LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_roadmap.pt303
-rw-r--r--LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_view_ploneorg.pt270
-rw-r--r--LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_view_ploneorg.pt.metadata2
-rw-r--r--LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/liboextensioncenter.css.dtml66
-rw-r--r--LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/liboextensioncenter_ploneorg.pt314
-rw-r--r--LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/liboextensioncenter_ploneorg.pt.metadata2
-rw-r--r--LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/liboextensioncenter_view.pt169
-rw-r--r--LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/liboextensioncenter_view.pt.metadata2
16 files changed, 2262 insertions, 0 deletions
diff --git a/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_categories_view.pt b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_categories_view.pt
new file mode 100644
index 0000000..a1b16cb
--- /dev/null
+++ b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_categories_view.pt
@@ -0,0 +1,69 @@
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xml:lang="en"
+ lang="en"
+ xmlns:tal="http://xml.zope.org/namespaces/tal"
+ xmlns:metal="http://xml.zope.org/namespaces/metal"
+ metal:use-macro="here/main_template/macros/master"
+ xmlns:i18n="http://xml.zope.org/namespaces/i18n"
+ i18n:domain="liboextensioncenter">
+
+<head>
+ <metal:css fill-slot="style_slot">
+ <style type="text/css" media="all"
+ tal:content="string:@import url($portal_url/liboextensioncenter.css);"></style>
+ </metal:css>
+</head>
+
+<body>
+
+<div metal:fill-slot="main"
+ tal:define="categories python:modules['am.LiboExtensionCenter.config'].CATEGORY_LIST">
+
+ <div metal:define-macro="main">
+
+ <h1 class="documentFirstHeading">
+ <img tal:replace="structure here/product_icon.gif" />
+ <span tal:replace="here/title_or_id">Title or id</span>
+ </h1>
+
+ <a href=""
+ class="link-parent"
+ i18n:translate="label_up_to_product_page"
+ tal:define="parent_url python:here.navigationParent(here, template.getId())"
+ tal:condition="parent_url"
+ tal:attributes="href parent_url">
+ &laquo; Back to project overview
+ </a>
+
+ <p class="documentDescription"
+ tal:content="here/Description">
+ description
+ </p>
+
+ <h2 i18n:translate="heading_available_categories">
+ Available categories
+ </h2>
+
+ <tal:categories repeat="category categories">
+ <h3 tal:content="category">
+ Category
+ </h3>
+ <tal:catalog define="results python:here.portal_catalog.searchResults(
+ portal_type='LECProject'
+ , Categories=category
+ , review_state='published')[:5]">
+ <ul tal:condition="results" tal:repeat="obj results">
+ <li tal:content="obj/Title">
+ Project
+ </li>
+ </ul>
+ </tal:catalog>
+ </tal:categories>
+
+ </div>
+
+</div>
+
+</body>
+
+</html>
diff --git a/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_file_view.pt b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_file_view.pt
new file mode 100644
index 0000000..9f103e1
--- /dev/null
+++ b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_file_view.pt
@@ -0,0 +1,70 @@
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xml:lang="en"
+ lang="en"
+ xmlns:tal="http://xml.zope.org/namespaces/tal"
+ xmlns:metal="http://xml.zope.org/namespaces/metal"
+ metal:use-macro="here/main_template/macros/master"
+ xmlns:i18n="http://xml.zope.org/namespaces/i18n"
+ i18n:domain="liboextensioncenter">
+
+<head>
+ <metal:css fill-slot="style_slot">
+ <style type="text/css" media="all"
+ tal:content="string:@import url($portal_url/liboextensioncenter.css);"></style>
+ </metal:css>
+</head>
+
+<body>
+
+<div metal:fill-slot="main">
+
+ <div metal:define-macro="main"
+ tal:define="view here/@@file_view">
+
+ <dl class="portalMessage info"
+ tal:define="is_editable context/@@plone_context_state/is_editable;"
+ tal:condition="python: is_editable">
+ <dt>Info</dt>
+ <dd>
+ <span i18n:translate="help_message_remember_is_editable">Remember to publish your release once all files have been added by </span>
+ <a href="" tal:attributes="href here/aq_parent/absolute_url">
+ <span i18n:translate="help_message_remember_back_release_page"> going back to the release page</span>
+ </a>.
+ </dd>
+ </dl>
+
+ <h1 class="documentFirstHeading">
+ <img tal:replace="structure here/product_icon.gif" />
+ <span tal:replace="here/aq_parent/title_or_id">Title or id</span> -
+ <span tal:replace="here/title_or_id">Title or id</span>
+ </h1>
+
+ <div tal:content="structure provider:plone.belowcontenttitle" />
+
+ <p class="documentDescription"
+ tal:content="here/aq_parent/Description">
+ description
+ </p>
+
+ <p tal:define="downloadURL view/direct_url">
+ <a tal:attributes="href downloadURL"
+ tal:condition="view/file_size">
+ <img tal:replace="structure here/download_icon.gif" />
+ </a>
+ <a tal:attributes="href downloadURL"
+ tal:define="filename python:here.getFilename('downloadableFile')">
+ Download <tal:filename condition="filename"
+ replace="string:$filename" />
+ </a>
+ <tal:size define="fileSize view/file_size"
+ condition="fileSize">
+ (<span tal:replace="fileSize">256KB</span>)
+ </tal:size>
+ </p>
+
+ </div>
+
+</div>
+
+</body>
+</html>
diff --git a/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_improvements_listing.pt b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_improvements_listing.pt
new file mode 100644
index 0000000..3ee1d88
--- /dev/null
+++ b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_improvements_listing.pt
@@ -0,0 +1,146 @@
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US"
+ lang="en-US"
+ xmlns:tal="http://xml.zope.org/namespaces/tal"
+ xmlns:metal="http://xml.zope.org/namespaces/metal"
+ metal:use-macro="here/main_template/macros/master"
+ xmlns:i18n="http://xml.zope.org/namespaces/i18n"
+ i18n:domain="plone">
+
+<head>
+ <metal:css fill-slot="style_slot">
+ <style type="text/css" media="all"
+ tal:content="string:@import url($portal_url/liboextensioncenter.css);"></style>
+ </metal:css>
+</head>
+
+<body>
+
+
+<div metal:fill-slot="main"
+ tal:define="view context/@@roadmap_view;
+ state python:request.get('state', []);
+ plips python:view.improvement_proposals(review_state = state);
+ b_start python:request.get('b_start', 0);
+ Batch python:modules['Products.CMFPlone'].Batch;
+ batch python:Batch(plips, 50, int(b_start), orphan=0);
+ releaseFolderUrl python:'/'.join(here.absolute_url().split('/')[:-1]) + '/releases';
+ ">
+
+ <h1>
+ <span i18n:translate="label_improvements_listing">Improvement Proposals </span>
+ <span tal:condition="state">"</span><span tal:replace="python:(', ').join(state).capitalize()" /><span tal:condition="state">"</span>
+ <span i18n:translate="label_improvements_proposals_for"> for </span>
+ <span tal:replace="here/aq_parent/Title" />
+ </h1>
+
+ <p class="documentDescription"
+ tal:condition="plips">
+ <span i18n:translate="help_improvements_listing">
+ If you want to see the feature proposals displayed according
+ to what release they are assigned to, go to the
+ </span>
+ <a href="lec_roadmap" title="Roadmap page"
+ i18n:attributes="title title_improvements_listing_roadmap_page">
+ <span i18n:translate="title_improvements_listing_roadmap_page">Roadmap page</span>
+ </a>.
+ </p>
+
+
+
+ <!-- Navigation -->
+ <div metal:use-macro="here/batch_macros/macros/navigation" />
+
+ <table id="sortable"
+ class="listing"
+ summary="Improvement Proposal listing"
+ tal:condition="plips">
+
+ <thead>
+
+ <tr>
+
+ <th style="width: 50%">&nbsp;<tal:title i18n:translate="listingheader_title"
+ >Title</tal:title>&nbsp;</th>
+
+ <th>&nbsp;<tal:title i18n:translate="listingheader_title"
+ >Category</tal:title>&nbsp;</th>
+
+ <th>&nbsp;<tal:modified i18n:translate="listingheader_modified"
+ >Modified</tal:modified>&nbsp;</th>
+
+ <th>&nbsp;<tal:state i18n:translate="listingheader_status"
+ >Status</tal:state>&nbsp;</th>
+
+ <th>&nbsp;<tal:version i18n:translate="listingheader_target_release"
+ >Target Release</tal:version>&nbsp;</th>
+ </tr>
+ </thead>
+
+ <tbody>
+ <metal:block tal:repeat="item batch">
+ <tr tal:define="oddrow repeat/item/odd;
+ review_state item/review_state;"
+ tal:attributes="class python:test(oddrow, 'even', 'odd')">
+
+ <td>
+ <a href="#" tal:attributes="href item/getURL; title item/Description;">
+ <img
+ alt="" tal:attributes="src string:${portal_url}/improvementproposal_icon.gif"
+ />&nbsp;<span tal:replace="item/Title">Title</span>
+ </a>
+ </td>
+
+ <td tal:content="python: ', '.join(item.getProposalTypes)">
+ Category
+ </td>
+
+ <td tal:content="item/ModificationDate">
+ 08/19/2001 03:01 AM
+ </td>
+
+ <td>
+ <a tal:attributes="href string:${here/absolute_url}/${template/id}?state=${review_state};
+ class string:state-$review_state"
+ tal:content="structure python:test(review_state, review_state, '&nbsp;')"
+ i18n:translate="">
+ State
+ </a>
+ </td>
+
+ <td>&nbsp;
+
+ <span tal:repeat="release item/getRelatedReleases">
+ <a tal:content="release"
+ tal:attributes="href string:${releaseFolderUrl}/${release}">
+ [item]
+ </a>
+ </span>
+ </td>
+ </tr>
+ </metal:block>
+ </tbody>
+ </table>
+
+ <a style="display:block; text-align:right"
+ href="" title="Show all"
+ tal:condition="state"
+ tal:attributes="href string:${here/absolute_url}/${template/id}"
+ i18n:attributes="title title_improvements_listing_show_all">
+ <span i18n:translate="label_improvements_listing_show_all">Show all</span>
+ </a>
+
+ <p class="discreet"
+ tal:condition="not: plips"
+ i18n:translate="label_improvements_listing_no_proposals_added">
+ There are no improvement proposals added for any versions. Use the add
+ menu to add proposals and/or feature specifications to be used in the
+ roadmap.
+ </p>
+
+ <!-- Navigation -->
+ <div metal:use-macro="here/batch_macros/macros/navigation" />
+</div>
+
+
+</body>
+</html>
diff --git a/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_improvements_view.pt b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_improvements_view.pt
new file mode 100644
index 0000000..3627fd7
--- /dev/null
+++ b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_improvements_view.pt
@@ -0,0 +1,113 @@
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
+ lang="en-US"
+ xmlns:tal="http://xml.zope.org/namespaces/tal"
+ xmlns:metal="http://xml.zope.org/namespaces/metal"
+ metal:use-macro="here/main_template/macros/master"
+ xmlns:i18n="http://xml.zope.org/namespaces/i18n"
+ i18n:domain="plone">
+
+<head>
+ <metal:css fill-slot="style_slot">
+ <style type="text/css" media="all"
+ tal:content="string:@import url($portal_url/liboextensioncenter.css);"></style>
+ </metal:css>
+</head>
+
+
+<body>
+<div metal:fill-slot="main"
+ tal:define="view here/@@proposal_view;
+ wtool context/portal_workflow;
+ portal_type python:here.getPortalTypeName().lower();
+ view_template python:'%s_view' % portal_type;
+ view_macros python:path('here/%s/macros|nothing' % view_template);
+ body_macro view_macros/body|nothing;
+ errors python:request.get('errors', {})">
+
+ <h1>
+ <span tal:replace="view/title" />
+ </h1>
+
+
+ <tal:fields define="fieldNames python: ['definitions',
+ 'motivation',
+ 'assumptions',
+ 'proposal',
+ 'implementation',
+ 'deliverables',
+ 'risks',
+ 'timeline',
+ 'participants']">
+
+ <dl class="portlet" style="margin-left: 0.5em; width: 40%; float: right; clear: right;">
+ <dt class="portletHeader" i18n:translate="heading_improvements_contents">Contents</dt>
+ <dd class="portletItem">
+ <ol>
+ <tal:section tal:repeat="f fieldNames">
+ <li tal:define="field python: here.Schema()[f]"
+ tal:condition="python: field.getAccessor(here)()">
+ <a href=""
+ tal:attributes="href string:${here/absolute_url}#${field/getName}"
+ tal:content="field/widget/label" />
+ </li>
+ </tal:section>
+ </ol>
+ </dd>
+ </dl>
+
+ <div tal:replace="structure provider:plone.belowcontenttitle" />
+
+ <p class="documentDescription"
+ tal:content="here/Description">
+ Description
+ </p>
+
+ <dl>
+ <dt i18n:translate="label_improvements_proposed_by">Proposed by</dt> <dd tal:content="here/getProposer" />
+ <tal:seconder tal:condition="here/getSeconder">
+ <dt i18n:translate="label_improvements_seconded_by">Seconded by</dt> <dd tal:content="here/getSeconder" />
+ </tal:seconder>
+ <dt i18n:translate="label_improvements_proposal_type">Proposal type</dt> <dd tal:content="python: ', '.join(here.getProposalTypes())" />
+
+ <tal:releases define="releases here/getBackReferences"
+ condition="releases">
+ <dt i18n:translate="label_improvements_assigned_release">Assigned to release</dt>
+ <dd>
+ <ul>
+ <li tal:repeat="release releases">
+ <a tal:attributes="href release/absolute_url"
+ tal:content="release/Title"/>
+ </li>
+ </ul>
+ </dd>
+ </tal:releases>
+
+ <tal:branch condition="here/getBranch">
+ <dt i18n:translate="label_improvements_repository_branch">Repository branch</dt>
+ <dd> <a tal:content="python: here.getBranch().split('/')[-1]"
+ tal:attributes="href here/getBranch">Branch name</a> </dd>
+ </tal:branch>
+
+ <dt i18n:translate="label_improvements_state">State</dt> <dd tal:content="python: wtool.getInfoFor(context, 'review_state')" />
+ </dl>
+
+ <div class="visualClear"></div>
+
+ <tal:sections repeat="f fieldNames">
+ <tal:section tal:define="field python: here.Schema()[f]"
+ tal:condition="python: field.getAccessor(here)()">
+ <a tal:attributes="name field/getName"
+ tal:content="nothing">Anchor</a>
+ <h2 tal:content="field/widget/label" />
+ <span metal:use-macro="python: here.widget(field.getName(),
+ mode='view',
+ use_label=0)" />
+ </tal:section>
+ </tal:sections>
+
+ </tal:fields>
+
+</div>
+
+</body>
+</html>
diff --git a/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_project_view.pt b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_project_view.pt
new file mode 100644
index 0000000..09401c6
--- /dev/null
+++ b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_project_view.pt
@@ -0,0 +1,269 @@
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xml:lang="en"
+ lang="en"
+ xmlns:tal="http://xml.zope.org/namespaces/tal"
+ xmlns:metal="http://xml.zope.org/namespaces/metal"
+ metal:use-macro="here/main_template/macros/master"
+ xmlns:i18n="http://xml.zope.org/namespaces/i18n"
+ i18n:domain="liboextensioncenter">
+
+<head>
+ <metal:css fill-slot="style_slot">
+ <style type="text/css" media="all"
+ tal:content="string:@import url($portal_url/liboextensioncenter.css);"></style>
+ </metal:css>
+</head>
+
+<body>
+
+<div metal:fill-slot="main"
+ tal:define="view context/@@project_view">
+
+ <div metal:define-macro="main" tal:define="latestRelease view/latest_release;
+ all_releases view/all_releases;
+ is_editable context/@@plone_context_state/is_editable;
+ upcomingReleases view/upcoming_releases | nothing">
+
+ <h1 class="documentFirstHeading">
+ <span tal:replace="here/title_or_id">Title or id</span>
+ </h1>
+
+ <dl class="portalMessage error" tal:condition="context/mayBeUnmaintained">
+ <dt>Warning</dt>
+ <dd>This product has not had a release in over 1 year and may no longer be maintained. </dd>
+ </dl>
+
+ <div tal:content="structure provider:plone.belowcontenttitle" />
+ <p class="documentDescription"
+ tal:content="here/Description">
+ description
+ </p>
+
+ <p class="portalMessage info"
+ tal:condition="python: is_editable and not view.is_public()"
+ i18n:domain="plone" i18n:translate="description_cannot_add_before_approved">
+ You can not add releases, documentation or feature proposals until the
+ project itself is approved, make sure you submit it for approval when
+ the relevant project information has been entered.
+ </p>
+
+
+ <h2 i18n:translate="label_project_description">Project Description</h2>
+
+ <div id="project_logo_wrapper"
+ tal:condition="here/getLogo | nothing">
+ <a tal:omit-tag="not: here/getLogoURL"
+ tal:attributes="href here/getLogoURL">
+ <img tal:replace="structure here/getLogo" />
+ </a>
+ </div>
+
+ <div tal:replace="structure here/getText" />
+
+ <div class="visualClear"></div>
+
+ <tal:block tal:condition="python: view.has_criteria_info()">
+ <h2 i18n:translate="label_self_certification">Self-Certification</h2>
+ <tal:block repeat="criterion view/criteria_info">
+ <p>
+ <tal:block condition="criterion/selected">[X]</tal:block>
+ <tal:block condition="not:criterion/selected">[ ]</tal:block>
+ <tal:block content="criterion/text" />
+ </p>
+ </tal:block>
+ </tal:block>
+
+ <tal:block tal:condition="view/has_review_comment|nothing">
+ <h2 i18n:translate="label_independent_review">Independent Review</h2>
+ <p content="structure here/getReviewComment" />
+ <p tal:condition="here/isApproved|nothing">
+ <i i18n:translate="help_independent_review">This project has been approved via independent review.</i>
+ </p>
+ </tal:block>
+
+ <div class="visualClear"></div>
+ <tal:nostable condition="nocall:not:latestRelease">
+
+ <h2 i18n:translate="label_current_stable_release">Current Release</h2>
+ <p
+ i18n:translate="help_not_stable_release">
+ No stable release available yet.
+ </p>
+
+ <tal:noreleases tal:condition="python:latestRelease is None and not upcomingReleases">
+
+ <p class="discreet"
+ tal:condition="here/getRepository">
+ <span i18n:translate="label_resource_getting_code">
+ If you are interested in getting the source code of
+ this project, you can get it from the
+ </span>
+ <a href=""
+ class="link-plain"
+ title="Version control repository location for this project"
+ i18n:attributes="title title_resource_code_repository"
+ tal:attributes="href here/getRepository">
+ <span i18n:translate="label_resource_code_repository"> code repository</span>
+ </a>.
+ </p>
+
+ <p class="discreet"
+ tal:condition="python: is_editable and view.is_public()">
+ <a i18n:translate="label_goto_release_folder"
+ tal:attributes="href view/release_folder_url">
+ Go to the release folder to add or publish a release.
+ </a>
+ </p>
+
+ <p class="discreet"
+ tal:condition="python:is_editable and view.is_public()">
+ <tal:noreleases i18n:translate="description_no_available_releases">
+ There are no published releases in this project yet.
+ </tal:noreleases>
+ <tal:prioritize i18n:translate="description_prioritize_releases">
+ This listing will prioritize final releases,
+ but will list the latest published release of any
+ other type if no final release exists. If you list
+ the source code repository in this project, it
+ will show up, so people know where to go to check
+ out in the code in the meantime.
+ </tal:prioritize>
+ </p>
+
+ </tal:noreleases>
+
+ </tal:nostable>
+
+
+ <tal:stable condition="nocall:latestRelease">
+ <div class="pane">
+ <h2>
+ Current Release <br />
+ <a href="#" title="Current release for the project"
+ i18n:attributes="title title_latest_release_project"
+ tal:attributes="href latestRelease/absolute_url"
+ tal:content="latestRelease/Title">Ploneboard 1.0
+ </a>
+ </h2>
+
+ <p class="discreet">
+ <tal:releasedate condition="latestRelease/effective">
+ Released <span tal:replace="view/latest_release_date" />
+ </tal:releasedate>
+
+ <tal:compatibility condition="latestRelease/getCompatibility">
+ &mdash; tested with
+ <metal:versions
+ metal:use-macro="python:latestRelease.widget('compatibility')">
+ Plone 1.0, Plone 2.0...
+ </metal:versions>
+ </tal:compatibility>
+ </p>
+
+ <p tal:condition="latestRelease/Description">
+ <span tal:replace="latestRelease/Description">
+ Main focus for this release is blah blah.
+ </span><br />
+ <a href="#"
+ i18n:translate="label_release_details"
+ tal:attributes="href latestRelease/absolute_url">More about this release&hellip;</a>
+ </p>
+
+ <dl>
+ <tal:downloads repeat="file latestRelease/contentValues">
+ <dt>
+ <a class="link-plain" title="Download file"
+ i18n:attributes="title"
+ tal:attributes="href file/@@file_view/direct_url">
+ <img src="" alt="Download file" i18n:attributes="alt"
+ style="float: left; clear:left; display: block; margin: 0 0.5em 0.5em 0;"
+ tal:attributes="src string:${here/portal_url}/${file/@@file_view/downloadicon_name}" />
+ </a>
+
+ <a class="link-plain"
+ tal:attributes="href file/@@file_view/direct_url">
+ <span i18n:translate="label_get">Get</span>
+ <span tal:replace="here/Title">Ploneboard 1.0</span>
+ for
+ <span tal:replace="file/getPlatform" /></a>
+
+ <!--comment out size
+ <span class="discreet"
+ tal:define="fileSize file/@@file_view/file_size">
+ <tal:size tal:condition="fileSize">
+ (<span tal:replace="fileSize">256KB</span>)
+ </tal:size>
+ <tal:extsize condition="not: fileSize">
+ <tal:extfile condition="file/getExternalFileSize" tal:on-error="string:Unknown">
+ (<span tal:replace="file/getExternalFileSize">256KB</span>)
+ </tal:extfile>
+ </tal:extsize>
+ </span>
+ -->
+ </dt>
+
+ <dd class="discreet" tal:content="file/Title">
+ Windows installer.
+ </dd>
+
+ </tal:downloads>
+ <dt>If you have difficulties with the installation of the extension see <A href="http://libreoffice.org">our howto on installing extensions</a> for more information.
+ </dt>
+ </dl>
+ </div>
+ </tal:stable>
+
+ <div class="pane">
+ <h2>All Releases</h2>
+ <table class="listing release_table">
+ <thead>
+ <tr>
+ <th>Version</th>
+ <th>Released</th>
+ <th>Description</th>
+ <th>Compatibility</th>
+ <th>Status</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tal:loop repeat="release all_releases">
+ <tr tal:define="maturity release/getMaturity;
+ stable python:maturity not in ['pre-release', 'alpha', 'beta'];
+ stability python:stable and 'stable-release' or 'unstable-release'"
+ tal:attributes="class stability">
+ <td class="version">
+ <a tal:content="release/id"
+ tal:attributes="href release/absolute_url"/>
+ </td>
+ <td class="release-date">
+ <span tal:condition="python:stable and release.effective()">
+ <span tal:replace="python:context.toLocalizedTime(release.effective())" />
+ </span>
+ </td>
+ <td class="release-description">
+ <span tal:content="release/Description"/>
+ <a href="#"
+ i18n:translate="label_release_details"
+ tal:attributes="href release/absolute_url">More about this release&hellip;</a>
+
+ </td>
+ <td class="compatability">
+ <tal:loop repeat="compatibility release/compatibility">
+ <div tal:content="compatibility"/>
+ </tal:loop>
+ </td>
+ <td class="maturity" tal:content="maturity"/>
+ </tr>
+ </tal:loop>
+ </tbody>
+ </table>
+ </div>
+
+ <div class="visualClear"></div>
+
+ </div>
+
+</div>
+
+</body>
+</html>
diff --git a/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_release_listing.pt b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_release_listing.pt
new file mode 100644
index 0000000..50361e7
--- /dev/null
+++ b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_release_listing.pt
@@ -0,0 +1,60 @@
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xml:lang="en"
+ lang="en"
+ xmlns:tal="http://xml.zope.org/namespaces/tal"
+ xmlns:metal="http://xml.zope.org/namespaces/metal"
+ metal:use-macro="context/main_template/macros/master"
+ xmlns:i18n="http://xml.zope.org/namespaces/i18n"
+ i18n:domain="liboextensioncenter">
+
+<body>
+
+<!-- Macro used to show releases, since we need two near identical lists -->
+<!-- Call this with a variable 'releases' defined -->
+
+<metal:macro define-macro="release_listing">
+
+ <tal:releases repeat="release releases">
+
+ <div class="visualIEFloatFix" style="margin-top: 1em;">
+
+ <dl>
+
+ <dt>
+ <a href="#" title=""
+ tal:content="release/Title"
+ tal:attributes="href release/absolute_url;
+ title release/Title">Ploneboard 1.0</a>
+
+ <tal:released condition="release/EffectiveDate">
+ (<span tal:replace="python:context.toLocalizedTime(release.EffectiveDate())">
+ Feb 1, 2009
+ </span>)
+ </tal:released>
+ </dt>
+
+ <dd>
+ <span tal:replace="release/Description">
+ Main focus for this release is blah blah.
+ </span>
+
+ <br />
+ <a href="#" title="Read more&hellip;"
+ i18n:attributes="title label_read_more"
+ tal:attributes="href release/absolute_url">
+ <span i18n:translate="label_read_more">Read more&hellip;</span>
+ </a>
+
+ </dd>
+
+
+ </dl>
+ </div>
+
+ <div class="visualClear"></div>
+
+ </tal:releases>
+</metal:macro>
+
+</body>
+</html>
diff --git a/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_release_view.pt b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_release_view.pt
new file mode 100644
index 0000000..4e3c985
--- /dev/null
+++ b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_release_view.pt
@@ -0,0 +1,244 @@
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xml:lang="en"
+ lang="en"
+ xmlns:tal="http://xml.zope.org/namespaces/tal"
+ xmlns:metal="http://xml.zope.org/namespaces/metal"
+ metal:use-macro="here/main_template/macros/master"
+ xmlns:i18n="http://xml.zope.org/namespaces/i18n"
+ i18n:domain="liboextensioncenter">
+
+<head>
+ <metal:css fill-slot="style_slot">
+ <style type="text/css" media="all"
+ tal:content="string:@import url($portal_url/liboextensioncenter.css);"></style>
+ </metal:css>
+</head>
+
+<body>
+
+<div metal:fill-slot="main">
+
+ <div metal:define-macro="main"
+ tal:define="view here/@@release_view;
+ maturity here/getMaturity;
+ released python:maturity != 'pre-release';
+ final python:maturity == 'final';
+ outdated view/is_outdated;
+ is_editable context/@@plone_context_state/is_editable;
+ wftool here/portal_workflow">
+
+ <h1 class="documentFirstHeading">
+ <span tal:replace="here/title_or_id">Title or id</span>
+ <span tal:condition="view/release_date">
+ (<span tal:replace="view/release_date">Feb 1, 2009</span>)
+ </span>
+ </h1>
+
+ <div style="float:right; margin: 0 0 1em 1em;"
+ tal:condition="here/getLogo | nothing">
+ <a tal:omit-tag="not: here/getLogoURL"
+ tal:attributes="href here/getLogoURL">
+ <img tal:replace="structure here/getLogo" />
+ </a>
+ </div>
+
+ <p class="portalMessage warning" tal:condition="python:outdated and released"
+ i18n:translate="label_message_no_longer_supported">
+ This release is no longer supported! If you are using this release,
+ please upgrade to a newer version if possible.
+ </p>
+
+ <p class="portalMessage info" tal:condition="not:final"
+ i18n:translate="label_message_not_final_release">
+ This is not a final release. Experimental releases should only be used for
+ testing and development. Do not use these on production sites, and make
+ sure you have proper backups before installing.
+ </p>
+
+ <p class="documentDescription"
+ tal:content="here/Description">
+ description
+ </p>
+
+ <p class="discreet"
+ tal:condition="python: is_editable and not released"
+ i18n:translate="label_message_not_released">
+ A release needs to be published before it will show up in the download
+ listings of the extension center. You should make a release using the
+ 'state' drop-down when work on the release is completed and downloadable
+ files have been added. There is no approval required to make a release.
+ </p>
+
+ <p tal:define="parent_url python:here.aq_parent.aq_parent.absolute_url()"
+ tal:condition="parent_url">
+ <a href="" tal:attributes="href parent_url" title="The project page"
+ i18n:attributes="title title_release_additional_information">
+ <span i18n:translate="label_release_additional_information">
+ For additional information about this project, please visit the overview page
+ </span>
+ </a>.
+ </p>
+
+ <h2 i18n:translate="heading_available_downloads">
+ Available downloads
+ </h2>
+
+ <div style="margin-top: 1em;">
+
+ <tal:nodownloads tal:condition="not: here/contentValues">
+
+ <div class="discreet">
+ <span i18n:translate="description_no_available_files">
+ There are no available extension files in this release yet.
+ </span>
+ <span tal:condition="is_editable"
+ i18n:translate="description_use_add_menu_to_add_files">
+ Use the Add menu to add extension files.
+ </span>
+ </div>
+
+ </tal:nodownloads>
+
+ <div tal:repeat="file here/contentValues">
+ <a class="link-plain"
+ tal:attributes="href file/@@file_view/direct_url">
+ <img src="" alt=""
+ style="float: left; display: block; margin: 0 0.5em 0.5em 0;"
+ tal:attributes="src string:${here/portal_url}/${file/@@file_view/downloadicon_name}" />
+ </a>
+
+ <a class="link-plain"
+ tal:attributes="href file/@@file_view/direct_url">
+ <span tal:replace="file/Title">Product Package</span>
+ </a>
+
+ <p class="discreet"
+ tal:define="fileSize file/@@file_view/file_size">
+ For
+ <span tal:replace="file/getPlatform" />
+ <tal:size tal:condition="fileSize">
+ (<span tal:replace="fileSize">256KB</span>)
+ </tal:size>
+ <tal:extsize condition="not: fileSize">
+ <tal:extfile condition="file/getExternalFileSize" tal:on-error="string:Unknown">
+ (<span tal:replace="file/getExternalFileSize">256KB</span>)
+ </tal:extfile>
+ </tal:extsize>
+ </p>
+
+ </div>
+
+
+
+ </div>
+
+
+
+ <div class="visualClear"></div>
+
+ <tal:relnotes condition="here/getText">
+ <h2 i18n:translate="heading_release_notes">Release Notes</h2>
+
+ <table class="vertical listing" style="float: right; margin: 0 0 1em 1em;">
+ <tr tal:condition="here/compatibility">
+ <th i18n:translate="heading_tested_with">
+ Tested with
+ </th>
+ <td>
+ <metal:versions
+ metal:use-macro="python:context.widget('compatibility')">
+ Plone 1.0, Plone 2.0...
+ </metal:versions>
+ </td>
+ </tr>
+ <tr>
+ <th i18n:translate="heading_state">State</th>
+ <td tal:content="python:wftool.getTitleForStateOnType(here.getMaturity(), 'LECRelease')"
+ i18n:translate="">
+ Stable
+ </td>
+ </tr>
+ <tr tal:define="licenseData python:here.getDataGridRow('availableLicenses', here.getLicense())"
+ tal:condition="licenseData">
+ <th i18n:translate="heading_license">License</th>
+ <td>
+ <a class="link-plain"
+ tal:content="licenseData/id"
+ tal:attributes="href licenseData/url;
+ title licenseData/title"
+ i18n:translate="">
+ GPL
+ </a>
+ </td>
+ </tr>
+ <tr tal:condition="here/getReleaseManager">
+ <th i18n:translate="heading_relmanager">Release Manager</th>
+ <td>
+ <a href=""
+ tal:omit-tag="not: here/getReleaseManagerContact"
+ tal:attributes="href string:mailto:${here/getReleaseManagerContact}">
+ <span tal:replace="here/getReleaseManager">Some Guy</span>
+ </a>
+ </td>
+ </tr>
+ <tr tal:condition="here/getExpectedReleaseDate">
+ <th tal:condition="not:released"
+ i18n:translate="heading_expecteddate">
+ Expected Release</th>
+ <th tal:condition="released"
+ i18n:translate="heading_released">
+ Released</th>
+ <td i18n:translate=""
+ tal:content="here/getExpectedReleaseDate">Date</td>
+ </tr>
+ </table>
+
+ <div tal:replace="structure here/getText" />
+
+ </tal:relnotes>
+
+ <div class="visualClear"></div>
+
+ <tal:proposals define="proposals here/getRelatedFeatures;"
+ condition="nocall:proposals">
+
+ <h2
+ i18n:translate="heading_feature_enhancements_release">
+ Feature enhancements in this release
+ </h2>
+
+ <p i18n:translate="help_feature_enhancements_release">
+ The following features are associated with this release:
+ </p>
+
+ <dl>
+ <tal:proposals repeat="proposal proposals">
+
+ <dt>
+ <a tal:attributes="href proposal/absolute_url;"
+ tal:content="proposal/title_or_id">
+ #1: Improvement Title
+ </a>
+ </dt>
+
+ <dd tal:content="proposal/Description">
+ Improvement Description
+ </dd>
+
+ </tal:proposals>
+ </dl>
+
+ </tal:proposals>
+
+ <tal:changelog condition="here/getChangelog">
+ <h2 i18n:translate="heading_change_log">Change log</h2>
+
+ <div tal:replace="structure here/getChangelog"></div>
+ </tal:changelog>
+
+ </div>
+
+</div>
+
+</body>
+</html>
diff --git a/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_releasefolder_view.pt b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_releasefolder_view.pt
new file mode 100644
index 0000000..4b693f2
--- /dev/null
+++ b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_releasefolder_view.pt
@@ -0,0 +1,163 @@
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xml:lang="en"
+ lang="en"
+ xmlns:tal="http://xml.zope.org/namespaces/tal"
+ xmlns:metal="http://xml.zope.org/namespaces/metal"
+ metal:use-macro="context/main_template/macros/master"
+ xmlns:i18n="http://xml.zope.org/namespaces/i18n"
+ i18n:domain="liboextensioncenter">
+
+<head>
+ <metal:css fill-slot="style_slot">
+ <style type="text/css" media="all"
+ tal:content="string:@import url($portal_url/liboextensioncenter.css);"></style>
+ </metal:css>
+</head>
+
+<body>
+
+<div metal:fill-slot="main"
+ tal:define="view context/@@releasefolder_view;
+ is_editable context/@@plone_context_state/is_editable;
+ wtool context/portal_workflow;">
+
+ <div metal:define-macro="main">
+
+ <h1 class="documentFirstHeading">
+ <span tal:replace="context/title_or_id">Title or id</span>
+ </h1>
+
+ <p class="documentDescription"
+ tal:content="context/Description">
+ description
+ </p>
+
+ <p>
+ <a href=""
+ class="link-parent"
+ i18n:translate="label_up_to_product_page"
+ tal:define="parent_url python:here.aq_parent.absolute_url()"
+ tal:condition="parent_url"
+ tal:attributes="href parent_url">
+ &laquo; Back to project page
+ </a>
+ </p>
+ <p class="portalMessage"
+ tal:condition="python: is_editable and wtool.getInfoFor(context.aq_parent, 'review_state')!='published'"
+ i18n:domain="plone" i18n:translate="description_cannot_add_before_approved">
+ You can not add releases, documentation or feature proposals until the
+ project itself is approved, make sure you submit it for approval when
+ the relevant project information has been entered.
+ </p>
+
+ <tal:releases define="upcoming view/upcoming_releases;
+ previous view/previous_releases">
+
+ <tal:noreleases condition="python:not(upcoming or previous)">
+ <div class="discreet">
+ <span i18n:translate="description_no_available_releases">
+ No releases found.
+ </span>
+ <span tal:condition="is_editable"
+ i18n:translate="description_use_add_menu_to_add_releases">
+ Use the Add menu to add releases.
+ </span>
+ </div>
+ </tal:noreleases>
+
+
+<tal:comment replace="nothing">
+
+<!-- XXX Why does this release_listing macro fail w/traversal error? It appears to be a valid macro. -->
+
+ <tal:block define="global releases upcoming" condition="nocall:upcoming">
+ <h2 i18n:translate="heading_experimental_releases">Experimental Releases</h2>
+ <metal:macro use-macro="context/lec_release_listing/macros/release_listing"/>
+ </tal:block>
+
+ <tal:block define="global releases previous" condition="nocall:previous">
+ <h2 i18n:translate="heading_stable_releases">Stable Releases</h2>
+ <metal:macro use-macro="context/lec_release_listing/macros/release_listing"/>
+ </tal:block>
+
+</tal:comment>
+
+ <h2 i18n:translate="heading_experimental_releases">Experimental Releases</h2>
+ <tal:release_iter repeat="release upcoming">
+ <div class="visualIEFloatFix" style="margin-top: 1em;">
+ <dl>
+ <dt>
+ <a href="#" title=""
+ tal:content="release/Title"
+ tal:attributes="href release/absolute_url;
+ title release/Title">Ploneboard 1.0</a>
+
+ <tal:released condition="release/EffectiveDate">
+ (<span tal:replace="python:context.toLocalizedTime(release.EffectiveDate())">
+ Feb 1, 2009
+ </span>)
+ </tal:released>
+ </dt>
+
+ <dd>
+ <span tal:replace="release/Description">
+ Main focus for this release is blah blah.
+ </span>
+
+ <br />
+ <a href="#" title="Read more&hellip;"
+ i18n:attributes="title label_read_more"
+ tal:attributes="href release/absolute_url">
+ <span i18n:translate="label_read_more">Read more&hellip;</span>
+ </a>
+
+ </dd>
+ </dl>
+ </div>
+ <div class="visualClear"></div>
+ </tal:release_iter>
+
+ <h2 i18n:translate="heading_stable_releases">Stable Releases</h2>
+ <tal:release_iter repeat="release previous">
+ <div class="visualIEFloatFix" style="margin-top: 1em;">
+ <dl>
+ <dt>
+ <a href="#" title=""
+ tal:content="release/Title"
+ tal:attributes="href release/absolute_url;
+ title release/Title">Ploneboard 1.0</a>
+
+ <tal:released condition="release/EffectiveDate">
+ (<span tal:replace="python:context.toLocalizedTime(release.EffectiveDate())">
+ Feb 1, 2009
+ </span>)
+ </tal:released>
+ </dt>
+
+ <dd>
+ <span tal:replace="release/Description">
+ Main focus for this release is blah blah.
+ </span>
+
+ <br />
+ <a href="#" title="Read more&hellip;"
+ i18n:attributes="title label_read_more"
+ tal:attributes="href release/absolute_url">
+ <span i18n:translate="label_read_more">Read more&hellip;</span>
+ </a>
+
+ </dd>
+ </dl>
+ </div>
+ <div class="visualClear"></div>
+ </tal:release_iter>
+
+ </tal:releases>
+
+ </div>
+
+</div>
+
+
+</body>
+</html>
diff --git a/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_roadmap.pt b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_roadmap.pt
new file mode 100644
index 0000000..212d1f6
--- /dev/null
+++ b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_roadmap.pt
@@ -0,0 +1,303 @@
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US"
+ lang="en-US"
+ xmlns:tal="http://xml.zope.org/namespaces/tal"
+ xmlns:metal="http://xml.zope.org/namespaces/metal"
+ metal:use-macro="here/main_template/macros/master"
+ xmlns:i18n="http://xml.zope.org/namespaces/i18n"
+ i18n:domain="plone">
+
+<head>
+ <metal:css fill-slot="style_slot">
+ <style type="text/css" media="all"
+ tal:content="string:@import url($portal_url/liboextensioncenter.css);"></style>
+ </metal:css>
+</head>
+
+<body>
+
+<div metal:fill-slot="main"
+ tal:define="view context/@@roadmap_view;
+ wtool context/portal_workflow;
+ current_page_url context/@@plone_context_state/current_page_url;
+ is_editable context/@@plone_context_state/is_editable;
+ upcoming view/upcoming_releases;">
+ <h1 i18n:translate="label_roadmap_title_project">
+ Roadmap for <span i18n:name="title_project" tal:replace="here/aq_parent/Title" />
+ </h1>
+
+ <dl class="portlet"
+ style="margin-left: 0.5em; width: 35%; float: right; clear: right;"
+ tal:condition="upcoming">
+ <dt class="portletHeader" i18n:translate="label_roadmap_index">Roadmap index</dt>
+ <dd class="portletItem">
+ <ul>
+ <tal:release repeat="release upcoming">
+ <li>
+ <a href=""
+ tal:content="release/Title"
+ tal:attributes="href string:${current_page_url}#${release/id}">
+ Some release
+ </a>
+ </li>
+ </tal:release>
+
+ <li>
+ <a href="" tal:attributes="href string:${current_page_url}#discussion"
+ i18n:translate="label_roadmap_proposals_being_discussed">
+ Proposals being discussed
+ </a>
+ </li>
+ <li>
+ <a href="" tal:attributes="href string:${current_page_url}#rejected"
+ i18n:translate="label_roadmap_rejected_deferred_draft_proposals">
+ Rejected/deferred/draft proposals
+ </a>
+ </li>
+ </ul>
+ </dd>
+ </dl>
+
+ <p class="documentDescription" i18n:translate="help_roadmap_title_project">
+ An overview of the upcoming releases for this project. Participants in the
+ project can add new features to the list.
+ </p>
+
+ <p class="portalMessage"
+ tal:condition="python: is_editable and wtool.getInfoFor(here.aq_parent, 'review_state')!='published'"
+ i18n:translate="description_cannot_add_before_approved">
+ You can not add releases, documentation or feature proposals until the
+ project itself is approved, make sure you submit it for approval when
+ the relevant project information has been entered.
+ </p>
+
+ <div class="visualClear"></div>
+
+ <tal:releases repeat="release upcoming">
+ <tal:release define="features release/getRelatedFeatures">
+
+ <h2 tal:attributes="id release/id">
+ <a href="" tal:attributes="href release/absolute_url">
+ <tal:date condition="release/getExpectedReleaseDate">
+ <span tal:replace="python: here.toLocalizedTime(release.getExpectedReleaseDate())">Relase date</span>:
+ </tal:date>
+ <span tal:replace="release/Title">Release Name</span>
+ <tal:codename condition="release/getCodename">&mdash;
+ <span tal:replace='string:"${release/getCodename}"'>codename</span>
+ </tal:codename>
+ </a>
+ </h2>
+
+ <table class="vertical listing" style="width: 35%; float: right; margin: 1em 0 0.5em 0.5em;"
+ tal:define="released python:wtool.getInfoFor(release, 'review_state')=='published'">
+ <tr tal:condition="release/compatibility">
+ <th i18n:translate="heading_tested_with">
+ Tested with
+ </th>
+ <td>
+ <metal:versions
+ metal:use-macro="python:release.widget('compatibility')">
+ Plone 1.0, Plone 2.0...
+ </metal:versions>
+ </td>
+ </tr>
+ <tr tal:define="licenseData python:here.getDataGridRow('availableLicenses', release.getLicense())">
+ <th i18n:translate="heading_license">License</th>
+ <td tal:condition="licenseData">
+ <a class="link-plain"
+ tal:content="licenseData/id"
+ tal:attributes="href licenseData/url;
+ title licenseData/title"
+ i18n:translate="">
+ GPL
+ </a>
+ </td>
+ </tr>
+ <tr tal:condition="release/getImprovementProposalFreezeDate">
+ <th i18n:translate="heading_improvementproposalfreezedate">
+ Proposal freeze</th>
+ <td i18n:translate=""
+ tal:content="python: here.toLocalizedTime(release.getImprovementProposalFreezeDate())">Date</td>
+ </tr>
+ <tr tal:condition="release/getFeatureFreezeDate">
+ <th i18n:translate="heading_featurefreezedate">
+ Feature freeze</th>
+ <td i18n:translate=""
+ tal:content="python: here.toLocalizedTime(release.getFeatureFreezeDate())">Date</td>
+ </tr>
+ <tr tal:condition="release/getExpectedReleaseDate">
+ <th tal:condition="not:released"
+ i18n:translate="heading_expecteddate">
+ Expected Release</th>
+ <th tal:condition="released"
+ i18n:translate="heading_released">
+ Released</th>
+ <td i18n:translate=""
+ tal:content="python: here.toLocalizedTime(release.getExpectedReleaseDate())">Date</td>
+ </tr>
+ <tr tal:condition="release/getRepository">
+ <th i18n:translate="heading_repository">
+ Repository branch</th>
+ <td>
+ <a class="link-plain"
+ tal:content="python: release.getRepository().split('/')[-1]"
+ tal:attributes="href release/getRepository">Branch name
+ </a>
+ </td>
+ </tr>
+ </table>
+
+ <p class="discreet"
+ tal:condition="release/getReleaseManager">
+ <span i18n:translate="heading_relmanager">Release Manager:</span>
+ <a href=""
+ tal:omit-tag="not: release/getReleaseManagerContact"
+ tal:attributes="href string:mailto:${release/getReleaseManagerContact}">
+ <span tal:replace="release/getReleaseManager">Some Guy</span>
+ </a>
+ </p>
+
+ <p tal:content="release/Description">
+ Release description
+ </p>
+
+ <p>
+ <a href="" tal:attributes="href release/absolute_url"
+ i18n:translate="label_roadmap_read_more">Read more&hellip;</a>
+ </p>
+
+ <tal:header condition="nocall:features">
+ <h3 i18n:translate="label_roadmap_associated_feature_proposals">Associated feature proposals</h3>
+ </tal:header>
+
+ <p class="discreet" tal:condition="not:nocall:features"
+ i18n:translate="label_roadmap_not_improvement_proposals">
+ No improvement proposals associated with this release.
+ </p>
+
+ <dl tal:define="states python:['in-progress',
+ 'ready-for-merge',
+ 'completed']"
+ tal:condition="nocall:features">
+
+ <tal:state repeat="state states">
+
+ <tal:details define="plips python:release.getRelatedFeatures(state);"
+ condition="nocall:plips">
+
+ <dt tal:content="python: view.getStateTitle(state)">
+ Workflow state
+ </dt>
+
+ <tal:plips repeat="plip plips">
+ <dd>
+ <a tal:attributes="href plip/absolute_url"><img tal:replace="structure here/improvementproposal_icon.gif" /></a>
+ <a href=""
+ tal:content="plip/Title"
+ tal:attributes="href plip/absolute_url;
+ title plip/Description">PLIP title</a>
+ <span class="discreet">
+ (<span tal:replace="plip/getProposer"
+ /><span tal:condition="plip/getSeconder" tal:replace="string:, ${plip/getSeconder}" />)
+ </span>
+ </dd>
+ </tal:plips>
+ </tal:details>
+ </tal:state>
+
+ </dl>
+
+ <div class="visualClear"></div>
+
+ </tal:release>
+ </tal:releases>
+
+ <h2><a name="discussion" i18n:translate="label_proposals_being_discussed">Proposals being discussed</a></h2>
+ <p i18n:translate="help_proposals_being_discussed">
+ These proposals are currently under consideration for inclusion in an
+ upcoming release.
+ </p>
+
+ <table class="listing">
+ <thead>
+ <tr>
+ <th i18n:translate="label_pbd_proposal">Proposal</th>
+ <th i18n:translate="label_pbd_type">Type</th>
+ <th i18n:translate="label_pbd_proposed_by">Proposed by</th>
+ <th i18n:translate="label_pbd_added">Added</th>
+ <th i18n:translate="label_pbd_target_release">Target Release</th>
+ </tr>
+ </thead>
+
+ <tbody>
+ <tal:proposals define="releaseFolderUrl python:'/'.join(here.absolute_url().split('/')[:-1]) + '/releases'"
+ repeat="proposal python:view.improvement_proposals(review_state=['being-discussed'])">
+ <tr tal:define="oddrow repeat/proposal/odd"
+ tal:attributes="class python:test(oddrow, 'even', 'odd')">
+ <td>
+ <a href="" tal:content="proposal/Title"
+ tal:attributes="href proposal/getURL;
+ title proposal/Description">
+ Test proposal
+ </a>
+ </td>
+ <td tal:content="python: ', '.join(proposal.getProposalTypes)">
+ Process
+ </td>
+ <td tal:define="proposer proposal/getProposer | nothing;
+ seconder proposal/getSeconder | nothing">
+ <span tal:replace="proposer"/>
+ <span tal:omit-tag="" tal:condition="python:proposer and seconder">,</span>
+ <span tal:replace="seconder"/>
+ </td>
+ <td tal:content="python:here.toLocalizedTime(proposal.created)">
+ 123 days ago
+ </td>
+ <td>
+ <tal:block repeat="release proposal/getRelatedReleases">
+ <a tal:content="release" tal:attributes="href string:${releaseFolderUrl}/${release}">[item]</a>
+ </tal:block>
+ </td>
+ </tr>
+ </tal:proposals>
+ </tbody>
+ </table>
+
+
+ <h2>
+ <a name="rejected"
+ i18n:translate="label_rejected_and_deferred_proposals">
+ Rejected and Deferred Proposals
+ </a>
+ </h2>
+
+ <p>
+ <a href="" title="View rejected and deferred proposals"
+ tal:attributes="href string:${here/absolute_url}/lec_improvements_listing?state:list=rejected&state=deferred"
+ i18n:attributes="title title_roadmap_rejected_deferred_proposals">
+ <span i18n:translate="label_roadmap_rejected_deferred_proposals">Rejected and deferred proposals</span>
+ </a>
+ <span i18n:translate="label_roadmap_rejected_deferred_proposals_moved"> have been moved to a separate page.</span>
+ </p>
+
+ <p>
+ <span i18n:translate="label_roadmap_all_proposals">You can also </span>
+ <a href="" title="View all proposals"
+ tal:attributes="href string:${here/absolute_url}/lec_improvements_listing"
+ i18n:attributes="title title_roadmap_view_all_proposals">
+ <span i18n:translate="label_roadmap_view_all_proposals">view all proposals</span>
+ </a>
+ <span i18n:translate="label_roadmap_all_proposals1"> or </span>
+ <a href="" title="View only draft proposals"
+ tal:attributes="href string:${here/absolute_url}/lec_improvements_listing?state:list=draft"
+ i18n:attributes="title title_roadmap_view_draft_proposals">
+ <span i18n:translate="label_roadmap_view_draft_proposals">draft proposals</span>
+ </a>.
+ </p>
+
+
+</div>
+
+
+
+</body>
+</html>
diff --git a/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_view_ploneorg.pt b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_view_ploneorg.pt
new file mode 100644
index 0000000..b785269
--- /dev/null
+++ b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_view_ploneorg.pt
@@ -0,0 +1,270 @@
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xml:lang="en"
+ lang="en"
+ metal:use-macro="here/main_template/macros/master"
+ i18n:domain="plonehelpcenter">
+
+<head>
+ <metal:block fill-slot="top_slot">
+ <tal:noborder condition="python:not user.has_permission('Modify portal content', context)">
+ <tal:noborderset tal:define="dummy python:request.set('disable_border', 1)" />
+ </tal:noborder>
+ </metal:block>
+</head>
+
+<body>
+<div metal:fill-slot="main"
+ tal:define="view context/@@category_view;
+ lec context/@@extensioncenter_view;
+ global getInfoFor nocall:here/portal_workflow/getInfoFor;
+ catalog nocall:here/portal_catalog;
+ herePath python:'/'.join(here.getPhysicalPath());
+ sort_on request/sort_on | string:featured;
+ currentCategory request/getCategories | string:;
+ currentVersion request/getCompatibility |view/get_latest_plone_release;
+ SearchableText request/SearchableText | string:;
+ getCategoryName nocall:view/category_name;
+ cropText nocall:context/@@plone/cropText;
+ toLocalizedTime nocall:context/@@plone/toLocalizedTime;">
+
+
+<div class="grid-row">
+
+ <div class="grid-cell position-two-thirds width-third">
+ <div class="splash pullout" id="sidebar-downloads">
+ <h1>Add-on Products</h1>
+ <p>Add-ons extend your Plone site with additional functionality.
+ Currently there are <span tal:replace="lec/project_count" /> projects
+ with <span tal:replace="lec/release_count" /> releases available.
+ </p>
+ <a class="pointer" tal:attributes="href string:${here/absolute_url}/createObject?type_name=LECProject">Submit your add-on</a>
+ </div>
+ </div>
+
+ <tal:featured_project tal:condition="lec/featured_project">
+
+ <div class="grid-cell position-leftmost width-two-thirds">
+ <div class="splash" id="splash-downloads"
+ tal:define="download_url lec/featured_project_release_url">
+
+ <h1>Get
+ <span tal:replace="lec/featured_project_title">Project</span>
+ For Your Platform
+ </h1>
+
+ <tal:featured_project_release tal:condition="lec/featured_project_release">
+
+ <p>Latest release:
+ <span tal:replace="lec/featured_project_title">
+ Project
+ </span>
+
+ <span tal:replace="lec/featured_project_release_id">
+ 3.4.5
+ </span>
+
+ (<span tal:replace="lec/featured_project_release_date">
+ December 2008
+ </span>)
+ </p>
+
+ <a id="splash-download-plone" href="" tal:attributes="href download_url">Download Plone</a>
+
+ <div id="splash-download-package"></div>
+
+ </tal:featured_project_release>
+
+ </div>
+
+ </div>
+
+ </tal:featured_project>
+
+</div> <!-- End row -->
+
+
+<div class="grid-row">
+ <div class="grid-cell position-leftmost width-two-thirds">
+
+ <div class="pane">
+
+ <h2>Add-on Product Releases</h2>
+
+
+ <div id="sort-by">
+ <form id="product_select" style="margin-bottom: 1em" tal:attributes="action string:${here/absolute_url}">
+ <label class="hiddenStructure">Show</label>
+ <select name="getCategories" onchange="this.form.submit()">
+ <option value="">All categories</option>
+ <tal:block tal:repeat="cat here/availableCategories">
+ <option tal:define="csplit python:[s.strip() for s in cat.split('|')]; cid python:csplit[0]"
+ tal:content="python:csplit[1]"
+ tal:attributes="value cid; selected python:test(cid==currentCategory,'selected',nothing)" />
+ </tal:block>
+ </select>
+ <select name="getCompatibility" onchange="this.form.submit()">
+ <tal:block tal:repeat="version here/getAvailableVersions">
+ <option tal:content="version"
+ tal:attributes="value version;
+ selected python:test(currentVersion==version,'selected',nothing)">
+ Plone 3.0
+ </option>
+ </tal:block>
+ <option value="any" tal:attributes="selected python:test(currentVersion=='','selected',nothing)"
+ i18n:translate="label_any_version">
+ Any version
+ </option>
+ <tal:block condition="nothing" tal:repeat="version python:catalog.uniqueValuesFor('getCompatibility')">
+ <option tal:content="version"
+ tal:attributes="value version;
+ selected python:test(currentVersion==version,'selected',nothing)">
+ Plone 3.0
+ </option>
+ </tal:block>
+ </select>
+
+ <label for="project-sort">Sort On</label>
+ <select name="sort_on" id="project-sort"
+ onchange="this.form.submit()">
+ <tal:comment>Featured items are sorted by rating</tal:comment>
+ <option value="featured"
+ tal:attributes="selected python:sort_on == 'featured' and 'selected' or ''"
+ >Featured</option>
+ <option value="positive_ratings"
+ tal:attributes="selected python:sort_on == 'positive_ratings' and 'selected'"
+ >Highest Rated</option>
+ <option value="getDownloadCount"
+ tal:attributes="selected python:sort_on == 'getDownloadCount' and 'selected'"
+ >Most Downloaded</option>
+ <option value="getLatestReleaseDate"
+ tal:attributes="selected python:sort_on == 'getLatestReleaseDate' and 'selected' or ''"
+ >Recently Updated</option>
+ <option value="created"
+ tal:attributes="selected python:sort_on == 'created' and 'selected' or ''"
+ >Newest</option>
+ </select>
+
+ <input type="hidden" name="path" tal:attributes="value python:'/'.join(here.getPhysicalPath())" /> &nbsp;
+ <input type="hidden" name="portal_type" value="LECProject" />
+ <input type="search" name="SearchableText" tal:attributes="value SearchableText" value=""
+ class="inputLabel" size="20"
+ />
+ <input type="submit" value="Search" />
+
+ </form>
+ </div>
+
+ <div class="" id="categories"
+ tal:define="
+ results python:view.get_products(currentCategory, currentVersion, sort_on, SearchableText);
+ Batch python:modules['Products.CMFPlone'].Batch;
+ b_size python:10;b_start python:0;b_start request/b_start | b_start;
+ desc_length site_properties/search_results_description_length;
+ desc_ellipsis site_properties/ellipsis;">
+
+ <p tal:condition="not: results">
+ <strong i18n:translate="description_no_results_found">No results were found.</strong>
+ </p>
+
+ <p id="numreleases">
+ <span tal:replace="python:len(results)">234</span> projects matching your criteria.
+ </p>
+
+ <tal:results condition="results"
+ define="batch python:Batch(results, b_size, int(b_start), orphan=1);">
+
+ <ul class="downloads">
+ <li tal:repeat="result batch">
+ <tal:entry
+ define="project result/getObject;
+ url result/getURL;
+ projectURL project/absolute_url;
+ result_type result/portal_type;
+ zoomid python:project.id.replace('.', '_');
+ screenshot project/getScreenshot | nothing">
+
+ <h3 style="border-top: none">
+ <a href=""
+ tal:attributes="href projectURL;"
+ tal:content="result/pretty_title_or_id">Product One</a>
+ </h3>
+ <div tal:content="structure project/@@rate-if-you-dare"/>
+ <div class="project-thumb thumbzoom"
+ tal:condition="screenshot">
+ <a tal:attributes="href projectURL">
+ <img
+ tal:condition="project/screenshot_thumb|nothing"
+ tal:replace="structure project/screenshot_thumb" />
+ </a>
+ </div>
+
+ <span class="project-thumb"
+ tal:condition="not:screenshot">
+ <img tal:condition="project/logo|nothing"
+ tal:replace="structure project/logo" />
+ </span>
+
+ <div class="product-details">
+ <span class="product-leadin">
+ <span tal:replace="python:toLocalizedTime(result.getLatestReleaseDate or result.modified, long_format=0)">
+ Sept. 3, 2008
+ </span>
+ in
+ <span tal:replace="python:', '.join([getCategoryName(id) for id in result.getCategories])" tal:on-error="string:"></span>
+ </span>
+ <p class="product-description"
+ tal:content="python:cropText(project.Description(), desc_length, desc_ellipsis)">
+ Project Description.
+ </p>
+
+ <div class="project-compatibilities"
+ tal:define="compatibilities python:result.getCompatibility or project.getCompatibility();"
+ tal:condition="compatibilities">
+ Latest release compatible with:
+ <tal:loop repeat="compatibility compatibilities">
+ <span class="project-compatibility">
+ <span tal:content="compatibility" tal:omit-tag="python:True"/>
+ <span tal:condition="not:repeat/compatibility/end"
+ tal:omit-tag="python:True">, </span>
+ </span>
+
+ </tal:loop>
+ </div>
+
+
+ </div>
+
+ <div class="visualClear" ></div>
+ </tal:entry>
+ </li>
+ </ul>
+
+ <div metal:use-macro="here/batch_macros/macros/navigation" />
+
+ </tal:results>
+ </div>
+ </div> <!-- End pane -->
+ </div> <!-- End cell -->
+
+ <div class="grid-cell position-two-thirds width-third">
+ <div class="sidebar">
+ <h2>Browse add-ons by category</h2>
+
+ <ol id="add-on-categories">
+ <tal:categories repeat="cat here/availableCategories">
+ <li><a href=""
+ tal:define="csplit python:[s.strip() for s in cat.split('|')]; cid python:csplit[0]"
+ tal:attributes="href string:${here/absolute_url}?getCategories=${cid}"
+ tal:content="python:csplit[1]"
+ >Plone releases</a></li>
+ </tal:categories>
+ </ol>
+
+ </div>
+ </div>
+
+</div> <!-- End row -->
+
+</div>
+</body>
+</html> \ No newline at end of file
diff --git a/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_view_ploneorg.pt.metadata b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_view_ploneorg.pt.metadata
new file mode 100644
index 0000000..634f48d
--- /dev/null
+++ b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/lec_view_ploneorg.pt.metadata
@@ -0,0 +1,2 @@
+[default]
+title= View by project
diff --git a/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/liboextensioncenter.css.dtml b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/liboextensioncenter.css.dtml
new file mode 100644
index 0000000..2914904
--- /dev/null
+++ b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/liboextensioncenter.css.dtml
@@ -0,0 +1,66 @@
+/*
+** LiboExtensionCenter style sheet for CSS2-capable browsers.
+**
+** Copyright Alexander Limi - http://www.plonesolutions.com
+**
+** Feel free to use whole or parts of this for your own designs, but give credit
+** where credit is due.
+**
+*/
+
+/* <dtml-with base_properties> */
+
+.portletHalfWidth {
+ width: 45%;
+ float: left;
+ margin: 0 1em 1em 0 !important;
+}
+
+.portletThirdWidth {
+ width: 30%;
+ float: left;
+ margin: 0 1em 1em 0 !important;
+}
+
+/* This portlet link selector can be removed once Plone 2.1.3 and later is more common */
+.portlet a {
+ display: inline;
+}
+
+
+.state-being-discussed {
+ color: Black;
+}
+
+.state-in-progress {
+ color: &dtml-notifyBorderColor;;
+}
+
+.state-completed {
+ color: &dtml-linkColor;;
+}
+
+.state-rejected {
+ color: &dtml-discreetColor;;
+}
+
+.state-deferred {
+ color: Red;
+}
+
+.state-ready-for-merge {
+ color: #74AE0B;
+}
+
+.poweredBy {
+}
+
+.note {
+ border-color: #CCCCCC;
+ border-style: solid;
+ border-width: thin 0 0 thin;
+ margin: 2em;
+ padding: 0 0.5em 0 1em;
+}
+
+/* </dtml-with> */
diff --git a/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/liboextensioncenter_ploneorg.pt b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/liboextensioncenter_ploneorg.pt
new file mode 100644
index 0000000..e130f91
--- /dev/null
+++ b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/liboextensioncenter_ploneorg.pt
@@ -0,0 +1,314 @@
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xml:lang="en"
+ lang="en"
+ xmlns:tal="http://xml.zope.org/namespaces/tal"
+ xmlns:metal="http://xml.zope.org/namespaces/metal"
+ metal:use-macro="here/main_template/macros/master"
+ xmlns:i18n="http://xml.zope.org/namespaces/i18n"
+ i18n:domain="plonehelpcenter">
+
+<head>
+ <metal:css fill-slot="style_slot">
+ <style type="text/css" media="all"
+ tal:content="string:@import url($portal_url/liboextensioncenter.css);">
+ </style>
+ <style type="text/css">
+ .screenshot {
+ float: right;
+ }
+ .project {
+ margin-top: 1em;
+ padding-top: 1em;
+ border-top: 1px solid #8CACBB;
+ }
+ </style>
+ </metal:css>
+ <metal:block fill-slot="top_slot">
+ <tal:noborder condition="python:not user.has_permission('Modify portal content', context)">
+ <tal:noborderset tal:define="dummy python:request.set('disable_border', 1)" />
+ </tal:noborder>
+ </metal:block>
+</head>
+
+<body>
+ <div metal:fill-slot="main"
+ tal:define="view context/@@category_view;
+ global getInfoFor nocall:here/portal_workflow/getInfoFor;
+ catalog nocall:here/portal_catalog;
+ herePath python:'/'.join(here.getPhysicalPath());
+ currentCategory request/getCategories | string:;
+ currentVersion request/getCompatibility | string:any;
+ currentVersion python:test(currentVersion=='current',['Plone 3.0','Plone 2.5'],currentVersion);
+ currentVersion python:test(currentVersion=='any','',currentVersion);
+ getCategoryName nocall:view/category_name;
+ normalizeString nocall:context/@@plone/normalizeString;
+ toLocalizedTime nocall:context/@@plone/toLocalizedTime;
+ cropText nocall:context/@@plone/cropText;">
+
+ <h1 tal:content="here/title_or_id" class="documentFirstHeading">
+ Title or id
+ </h1>
+
+ <div class="feedButton" >
+ <a href="" tal:attributes="href string:${context/absolute_url}/search_rss?portal_type=LECRelease"><img
+ i18n:attributes="title title_rss_feed; alt label_rss_feed;"
+ tal:attributes="src string:$portal_url/rss.gif" src="rss.gif"
+ alt="RSS Feed" title="RSS feed of the latest releases" /></a>
+ </div>
+
+ <p class="discreet" tal:define="projectsCount python:len(catalog(portal_type = 'LECProject', path = herePath));
+ releasesCount python:len(catalog(portal_type = 'LECRelease', path = herePath))"
+ i18n:translate="help_download_currently_listing">
+ Currently listing <span i18n:name="results_projects_count" tal:replace="projectsCount" /> projects with <span i18n:name="results_releases_count" tal:replace="releasesCount" /> releases.
+ </p>
+
+ <p class="documentDescription" tal:content="here/Description">
+ Description
+ </p>
+
+ <div class="visualClear"><!-- --></div>
+
+ <tal:featured_project_wrapper tal:condition="python: here.getFeaturedProject()">
+ <dl class="portlet" style="width: 23em; float: left">
+ <dt class="portletHeader" i18n:translate="label_lec_ploneorg_featured_project">
+ Get <tal:featured_project tal:replace="python: here.getFeaturedProject().Title()"
+ i18n:name="label_lec_ploneorg_get_featured_project">
+ Featured Project </tal:featured_project>
+ for your platform
+ </dt>
+ <dd class="portletItem" style="text-align: center"
+ tal:define="project_url python: here.getFeaturedProject().absolute_url()">
+ <a tal:attributes="href project_url"><img
+ height="40" width="40" alt="Windows" src="platform_windows.gif" /><img
+ height="40" width="40" alt="Mac" src="platform_mac_os_x.gif" /><img
+ height="40" width="40" alt="Linux" src="platform_linux.gif" /></a>
+ <h3>
+ <a tal:attributes="href project_url" title="Download projects"
+ style="border-bottom: 1px solid #8CACBB"
+ i18n:attributes="title title_lec_ploneorg_get_download">
+ <span i18n:translate="label_lec_ploneorg_get_download">Download</span>&nbsp;
+ <tal:featured_project tal:replace="python: here.getFeaturedProject().Title()">Featured Project</tal:featured_project>
+ </a>
+ </h3>
+ <span class="discreet"
+ i18n:translate="label_lec_ploneorg_latest_release">Latest release:
+ <tal:latest_release tal:replace="python: here.getFeaturedProjectRelease().getId()"
+ i18n:name="title_lec_ploneorg_latest_release">
+ Latest Release
+ </tal:latest_release>
+ </span>
+ </dd>
+ </dl>
+ </tal:featured_project_wrapper>
+
+ <dl class="portlet" style="float:right; width: 23em;">
+ <dt class="portletHeader"
+ i18n:translate="heading_search_addon_packages">Search for add-on packages</dt>
+
+ <dd class="portletItem">
+ <form style="text-align: center;"
+ name="searchform" id="searchform"
+ action="/search" tal:attributes="action string:${portal_url}/search">
+
+ <label for="searchGadget"
+ class="hiddenStructure">
+ Search add-ons
+ </label>
+ <input type="hidden" name="path" tal:attributes="value python:'/'.join(here.getPhysicalPath())" />
+ <input type="hidden" name="portal_type" value="LECProject" />
+ <input name="SearchableText" type="text"
+ size="12"
+ style="font-size: 150%"
+ title="Search add-ons"
+ accesskey="accesskeys-search"
+ i18n:attributes="title label_search_addon"
+ tabindex="0" />
+
+ <input class="searchButton" name="Search"
+ style="font-size: 150%; background-position: 3px 5px; padding-left: 25px; padding-right: 10px"
+ type="submit" value="Search" i18n:attributes="value label_search_package_releases"
+ accesskey="accesskeys-search" />
+ </form>
+ </dd>
+ </dl>
+
+ <dl class="portlet" style="float:right; clear: right; width: 23em">
+
+ <dt class="portletHeader"
+ i18n:translate="heading_want_addon_package">Want to list your add-on package?</dt>
+ <dd class="portletItem" style="text-align: center">
+ <form action="createObject"
+ tal:condition="python: user.has_permission('LiboExtensionCenter: Add Project', context)">
+ <input name="type_name"
+ type="hidden"
+ value="LECProject"
+ />
+ <input class="standalone"
+ type="submit"
+ style="font-size: 110%; padding: 3px 5px 3px 26px; background-position: 10px 5px"
+ value="Add new project"
+ i18n:attributes="value label_add_new_project"
+ />
+ </form>
+
+ <form tal:define="pss modules/Products/PythonScripts/standard;
+ isAnon context/@@plone_portal_state/anonymous;"
+ tal:condition="python: not user.has_permission('Add portal content', context) and isAnon"
+ tal:attributes="action python:'%s/login_form?came_from=%s' %
+ (here.portal_url(),
+ pss.url_quote(request['URL']))">
+
+ <input class="standalone"
+ type="submit"
+ style="font-size: 110%; padding: 3px 5px 3px 26px; background-position: 10px 5px"
+ value="Log in to add your project"
+ i18n:attributes="value label_login_add_project"
+ />
+ </form>
+ </dd>
+ </dl>
+
+ <!-- <select style="float: left;"
+ onchange="window.location.href=this.options[this.selectedIndex].value">
+ <option value="">Go directly to project&hellip;</option>
+ <option tal:repeat="project here/getActiveProjects"
+ tal:content="python:project.Title[:30]"
+ tal:attributes="value project/getURL">
+ </option>
+ </select> -->
+
+
+
+ <div class="visualClear"><!----></div>
+
+ <h2 style="margin-top:1em" i18n:translate="heading_addon_package_releases">
+ Add-on Package Releases
+ </h2>
+
+ <form id="product_select" class="even" style="padding: 1em" action="#" tal:attributes="action string:${here/absolute_url}">
+ <label i18n:translate="label_show">Show</label>
+ <select name="getCategories">
+ <option value="" i18n:translate="label_all_categories">All categories</option>
+ <tal:block tal:repeat="cat here/availableCategories">
+ <option tal:define="csplit python:[s.strip() for s in cat.split('|')];
+ cid python:csplit[0]"
+ tal:content="python:csplit[1]"
+ tal:attributes="value cid;
+ selected python:test(cid==currentCategory,'selected',nothing)" />
+ </tal:block>
+ </select>
+ <label i18n:translate="label_for">for</label>
+ <select name="getCompatibility">
+ <tal:block tal:repeat="version here/getAvailableVersions">
+ <option tal:content="version"
+ tal:attributes="value version;
+ selected python:test(currentVersion==version,'selected',nothing)">
+ Plone 3.0
+ </option>
+ </tal:block>
+ <option value="any" tal:attributes="selected python:test(currentVersion=='','selected',nothing)"
+ i18n:translate="label_any_version">
+ Any version
+ </option>
+ <tal:block condition="nothing" tal:repeat="version python:catalog.uniqueValuesFor('getCompatibility')">
+ <option tal:content="version"
+ tal:attributes="value version;
+ selected python:test(currentVersion==version,'selected',nothing)">
+ Plone 3.0
+ </option>
+ </tal:block>
+ </select>
+
+ <input class="context" type="submit" name="product_search" value="Update"
+ i18n:attributes="value label_update_form_package_releases" />
+ </form>
+
+ <div tal:define="results python:catalog(getCategories=currentCategory,
+ getCompatibility=currentVersion,
+ portal_type='LECRelease',
+ sort_on='effective',
+ sort_order='reverse');
+ Batch python:modules['Products.CMFPlone'].Batch;
+ b_size python:20;b_start python:0;b_start request/b_start | b_start;
+ desc_length site_properties/search_results_description_length;
+ desc_ellipsis site_properties/ellipsis;">
+
+ <p tal:condition="not: results">
+ <strong i18n:translate="description_no_results_found">No results were found.</strong>
+ </p>
+
+ <p class="discreet" i18n:translate="help_releases_matching_criteria">
+ <span i18n:name="results_releases_matching_criteria" tal:replace="python:len(results)">234</span> releases matching your criteria, sorted with latest releases first.
+ </p>
+
+ <div tal:condition="results"
+ tal:define="batch python:Batch(results, b_size, int(b_start), orphan=1);">
+
+ <div class="project" tal:repeat="result batch">
+ <tal:entry define="obj result/getObject;
+ project python:obj.aq_parent.aq_parent;
+ project python:test(project.portal_type=='LECProject',project,obj);
+ url result/getURL;
+ projectURL project/absolute_url;
+ result_type result/portal_type;">
+
+ <div class="screenshot" tal:condition="project/logo|nothing">
+ <a href="#" tal:attributes="href projectURL"><img tal:replace="structure project/logo" /></a>
+ </div>
+
+ <div class="project_details">
+ <h3 tal:define="item_wf_state result/review_state;
+ item_wf_state_class python:'state-' + normalizeString(item_wf_state);"
+ tal:attributes="class item_wf_state_class">
+
+ <a href="#" style="border-bottom: 1px solid #8CACBB" tal:attributes="href projectURL;"
+ tal:content="result/pretty_title_or_id">Extension Project</a>
+
+ <span class="discreet" tal:content="python:toLocalizedTime(result.ModificationDate, long_format=0)">
+ Modification Date
+ </span>
+
+ </h3>
+
+ <p class="discreet"
+ tal:condition="not:currentCategory">
+ in <span tal:replace="python:', '.join([getCategoryName(id) for id in result.getCategories])" />
+ </p>
+
+ <div class="description">
+ <p tal:content="python:cropText(project.Description(), desc_length, desc_ellipsis)">
+ Project Description
+ </p>
+ <p>
+ <strong i18n:translate="label_new_this_release">New in this release:</strong> <br />
+ <span tal:content="python:cropText(result.Description, desc_length, desc_ellipsis)">
+ Release Description
+ </span>
+ </p>
+ </div>
+ </div>
+ </tal:entry>
+ </div>
+
+ <!-- Navigation -->
+ <div metal:use-macro="here/batch_macros/macros/navigation" />
+
+ </div>
+ </div>
+
+
+ <div class="visualClear"><!----></div>
+
+ <div class="poweredBy" i18n:translate="label_powered_by_ploneorg">
+ Powered by <img src="product_icon.gif" alt="Libo Extension Center's Home Page"
+ i18n:attributes="alt label_lec_homepage">
+ <a class="link-plain"
+ href="http://plone.org/products/liboextensioncenter"
+ title="Libo Extension Center's Home Page"
+ i18n:attributes="title title_lec_homepage">Libo Extension Center</a>
+ </div>
+
+ </div>
+
+</body>
+</html>
diff --git a/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/liboextensioncenter_ploneorg.pt.metadata b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/liboextensioncenter_ploneorg.pt.metadata
new file mode 100644
index 0000000..3873470
--- /dev/null
+++ b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/liboextensioncenter_ploneorg.pt.metadata
@@ -0,0 +1,2 @@
+[default]
+title= View by release
diff --git a/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/liboextensioncenter_view.pt b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/liboextensioncenter_view.pt
new file mode 100644
index 0000000..ceb1f01
--- /dev/null
+++ b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/liboextensioncenter_view.pt
@@ -0,0 +1,169 @@
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xml:lang="en"
+ lang="en"
+ xmlns:tal="http://xml.zope.org/namespaces/tal"
+ xmlns:metal="http://xml.zope.org/namespaces/metal"
+ metal:use-macro="context/main_template/macros/master"
+ xmlns:i18n="http://xml.zope.org/namespaces/i18n"
+ i18n:domain="liboextensioncenter">
+
+<head>
+ <metal:css fill-slot="style_slot">
+ <style type="text/css" media="all"
+ tal:content="string:@import url($portal_url/liboextensioncenter.css);"></style>
+ </metal:css>
+</head>
+
+<body>
+
+ <div metal:fill-slot="main"
+ tal:define="view context/@@extensioncenter_view">
+
+ <h1 tal:content="context/title_or_id" class="documentFirstHeading">
+ Title or id
+ </h1>
+
+ <div class="feedButton" >
+ <a href="" tal:attributes="href view/rss_url">
+ <img i18n:attributes="title title_rss_feed; alt label_rss_feed;"
+ tal:attributes="src string:$portal_url/rss.gif"
+ src="rss.gif"
+ alt="RSS Feed"
+ title="RSS feed of the latest releases" />
+ </a>
+ </div>
+
+ <p class="documentDescription"
+ tal:content="context/Description">
+ Description.
+ </p>
+
+ <form>
+ <select style="float: right; clear: right"
+ onchange="window.location.href=this.options[this.selectedIndex].value">
+ <option value="" i18n:translate="label_go_directly_project">Go directly to project&hellip;</option>
+ <option tal:repeat="project view/active_projects"
+ tal:content="python:project.Title[:30]"
+ tal:attributes="value project/getURL">
+ </option>
+ </select>
+ </form>
+
+ <form action="createObject"
+ tal:condition="view/can_add_project">
+ <input name="type_name"
+ type="hidden"
+ value="LECProject"
+ />
+ <input class="standalone"
+ type="submit"
+ value="Add New Extension Project"
+ i18n:attributes="value label_add_new_extension_project"
+ />
+ </form>
+
+ <form action="createObject"
+ tal:condition="context/@@plone_portal_state/anonymous">
+
+ <input name="type_name"
+ type="hidden"
+ value="LECProject"
+ />
+ <input class="standalone"
+ type="submit"
+ value="Log in to add Extension Project"
+ i18n:attributes="value"
+ />
+ </form>
+
+ <p class="discreet"
+ style="text-align: right; clear: both;"
+ i18n:translate="label_currently_listing_projects_releases">
+ Currently listing <span i18n:name="label_project_count" tal:replace="view/project_count" /> projects
+ with <span i18n:name="label_release_count" tal:replace="view/release_count" /> releases.
+ </p>
+
+
+ <p class="discreet" i18n:translate="help_latest_releases_each_category">
+ The latest releases in each category. To see all projects in a specific
+ category, click "Show all".
+ </p>
+
+ <div tal:repeat="category view/categories">
+ <dl class="portlet portletThirdWidth">
+ <dt class="portletHeader">
+ <tal:syndicate condition="context/portal_syndication/isSiteSyndicationAllowed">
+ <a class="feedButton" href="" tal:attributes="href category/rss_url">
+ <img i18n:attributes="title title_rss_feed; alt label_rss_feed;"
+ tal:attributes="src string:$portal_url/rss.gif"
+ src="rss.gif"
+ alt="RSS"
+ title="RSS feed for the latest releases in this category" />
+ </a>
+ </tal:syndicate>
+ <a href=""
+ tal:content="category/name"
+ tal:attributes="href string:${context/absolute_url}/by-category/${category/id}"
+ i18n:translate="">
+ Category heading
+ </a>
+ </dt>
+ <tal:releases tal:define="releases category/releases"
+ tal:condition="nocall:releases">
+
+ <tal:list repeat="release releases">
+
+ <dd class="portletItem"
+ tal:define="oddrow repeat/release/odd"
+ tal:attributes="class python:test(oddrow, 'portletItem even', 'portletItem odd')">
+ <a href=""
+ tal:attributes="href release/parent_url;
+ title release/description;
+ class string:state-${release/review_state}">
+ <img tal:replace="structure context/product_icon.gif" />
+ <span tal:replace="release/title">Project</span>
+ <span class="portletItemDetails"
+ tal:content="python:context.toLocalizedTime(release['date'])">May 5</span>
+
+ </a>
+ </dd>
+ </tal:list>
+
+ <tal:nolist condition="not:nocall:releases">
+ <dd class="portletItem odd">
+ <span class="discreet" i18n:translate="no_releases_found">
+ No releases made in this category yet
+ </span>
+ </dd>
+ </tal:nolist>
+
+ <dd class="portletFooter">
+ <a href="" title="Show all the projects in this category"
+ tal:attributes="href string:${context/absolute_url}/by-category/${category/id}"
+ i18n:attributes="title title_lec_show_all_projects">
+ <span i18n:translate="label_lec_show_all_projects">Show all </span>
+ <span tal:content="category/num_projects" />
+ <span i18n:translate="label_lec_show_all_projects_category"> projects in this category&#8230;</span>
+ </a>
+ </dd>
+ </tal:releases>
+ </dl>
+
+ <div class="visualClear" tal:condition="python: repeat['category'].number() % 3 == 0"><!----></div>
+ </div>
+
+ <div class="visualClear"><!----></div>
+
+ <div class="poweredBy">
+ <span i18n:translate="label_powered_by">Powered by </span>
+ <a class="link-plain" href="http://libreoffice.org"
+ title="The homepage of LibreOffice"
+ i18n:attributes="title title_lec_homepage">
+ <span i18n:translate="label_powered_by_lec">the LibreOffice community</span>
+ </a>
+ </div>
+
+ </div>
+
+</body>
+</html>
diff --git a/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/liboextensioncenter_view.pt.metadata b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/liboextensioncenter_view.pt.metadata
new file mode 100644
index 0000000..a7f5165
--- /dev/null
+++ b/LiboExtensionWebsite/am.LiboExtensionCenter/am/LiboExtensionCenter/skins/liboextensioncenter/liboextensioncenter_view.pt.metadata
@@ -0,0 +1,2 @@
+[default]
+title= View by topic