Commit ed338a9c authored by Roque's avatar Roque

Appstore improvements

See merge request nexedi/erp5!1454
parents b9abe7c2 2e4152f4
......@@ -22,7 +22,7 @@
</div>
</div>
<div class="panel_img">
<img class="ui-title" alt="OfficeJS" src="gadget_erp5_panel.png"/>
<img class="ui-title" alt="OfficeJS" src="officejs_logo.png"/>
</div>
</div>
</script>
......
......@@ -267,7 +267,7 @@
</item>
<item>
<key> <string>serial</string> </key>
<value> <string>983.54930.13960.61730</string> </value>
<value> <string>992.13065.39275.59033</string> </value>
</item>
<item>
<key> <string>state</string> </key>
......@@ -285,7 +285,7 @@
</tuple>
<state>
<tuple>
<float>1589291757.75</float>
<float>1625152849.26</float>
<string>UTC</string>
</tuple>
</state>
......
def rejectSoftwarePublication(software_publication):
software_publication.submit()
software_publication.reject()
return
def extractWebManifest(html_file):
html = context.Base_parseHtml(html_file)
for tag in html:
if tag[0] == 'starttag' and tag[1] == 'link' and ('rel', 'manifest') in tag[2]:
for attribute in tag[2]:
if attribute[0] == 'href':
return attribute[1]
def getBaseDirectory(namelist):
base = ""
for name in namelist:
if "/" in name:
temp_base = name.split("/")[0]
if base and base != temp_base:
base = ""
break
else:
base = temp_base
else:
base = ""
break
if base:
base += "/"
return base
portal = context.getPortalObject()
software_publication = context
if software_publication.getSimulationState() != "draft":
......@@ -6,13 +37,17 @@ if software_publication.getSimulationState() != "draft":
software_publication_line = software_publication.objectValues(
portal_type="Software Publication Line",
)[0]
software_product = software_publication_line.getResourceValue(portal_type="Software Product")
if not software_product:
rejectSoftwarePublication(software_publication)
return
portal = context.getPortalObject()
software_release = software_publication_line.getAggregateValue(portal_type="Software Release")
version = software_release.getReference()
software_release_url = software_release.getRelativeUrl()
user_login = software_publication.getSourceReference()
application_publication_section = portal.portal_categories.publication_section.application
zip_file = portal.portal_catalog.getResultValue(
......@@ -22,50 +57,25 @@ zip_file = portal.portal_catalog.getResultValue(
)
if not zip_file:
# XXX Do something?
rejectSoftwarePublication(software_publication)
return
software_release = software_publication_line.getAggregateValue(portal_type="Software Release")
from cStringIO import StringIO
import zipfile
from zipfile import BadZipfile
zipbuffer = StringIO()
zipbuffer.write(str(zip_file.getData()))
zip_reader = zipfile.ZipFile(zipbuffer)
user_login = software_publication.getSourceReference()
version = software_release.getReference()
# look for Base Directory
base = ""
for name in zip_reader.namelist():
if "/" in name:
temp_base = name.split("/")[0]
if base and base != temp_base:
base = ""
break
else:
base = temp_base
else:
base = ""
break
if base:
base += "/"
base_length = len(base)
def extractWebManifest(html_file):
html = context.Base_parseHtml(html_file)
for tag in html:
if tag[0] == 'starttag' and tag[1] == 'link' and ('rel', 'manifest') in tag[2]:
for attribute in tag[2]:
if attribute[0] == 'href':
return attribute[1]
software_release_url = software_release.getRelativeUrl()
try:
zip_reader = zipfile.ZipFile(zipbuffer)
except BadZipfile:
rejectSoftwarePublication(software_publication)
return
base_length = len(getBaseDirectory(zip_reader.namelist()))
tag = "preparing_sr_%s" % software_release_url
default_page = ""
web_manifest_url = None
for name in zip_reader.namelist():
if zip_reader.getinfo(name).file_size == 0:
continue
......@@ -89,9 +99,14 @@ for name in zip_reader.namelist():
follow_up=software_release_url,
portal_type="File",
)
try:
publication_source_category = "contributor/" + software_publication.getSource()
except TypeError:
rejectSoftwarePublication(software_publication)
return
# XX Hackish
document.setCategoryList(
document.getCategoryList() + ["contributor/" + software_publication.getSource()])
document.getCategoryList() + [publication_source_category])
if url in ("index.html", "index.htm"):
default_page = document.getRelativeUrl()
web_manifest_url = extractWebManifest(document.getData())
......
......@@ -8,16 +8,23 @@ web_document_list = portal.portal_catalog(
validation_state="submitted",
)
for web_document in web_document_list:
web_document.cancel()
software_product = context.getFollowUpValue(portal_type="Software Product")
web_site = software_product.SoftwareProduct_getRelatedWebSite()
version_web_section = None
if software_release.getReference() in web_site:
version_web_section = web_site[software_release.getReference()]
#backward compatibily
if not version_web_section and software_release.getVersion() in web_site:
version_web_section = web_site[software_release.getVersion()]
if not version_web_section:
return
version_web_section = web_site[software_release.getVersion()]
version_web_section.setCriterion('validation_state', 'cancel')
version_web_section.setTitle("Rejected " + version_web_section.getTitle())
def webSectionUpdatePredicate(current_section):
......@@ -26,5 +33,3 @@ def webSectionUpdatePredicate(current_section):
webSectionUpdatePredicate(child_section)
webSectionUpdatePredicate(version_web_section)
#version_web_section.cancel()
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment