70 lines
2.7 KiB
Python
70 lines
2.7 KiB
Python
""" RevuesDePresse Class """
|
|
|
|
import os
|
|
|
|
from interfaces import IRevuesDePresse
|
|
from zope.interface import implements
|
|
from Products.Archetypes.public import *
|
|
|
|
|
|
schema = BaseSchema + Schema((
|
|
TextField('description',
|
|
widget=RichWidget(description_msgid="desc_folder",
|
|
description="The description of the presse reviews folder.",
|
|
label_msgid="label_folder",
|
|
label="Description",
|
|
i18n_domain = "revuesdepresse",
|
|
rows=15)),
|
|
StringField('pressreviewsbaseurl',
|
|
widget=StringWidget(description="Base URL of press reviews",
|
|
description_msgid="desc_pressreviewsbaseurl",
|
|
label_msgid="label_pressreviewsbaseurl",
|
|
label="Press Reviews Base URL",
|
|
i18n_domain = "revuesdepresse"),
|
|
required=1,
|
|
searchable=0),
|
|
StringField('pressreviewspath',
|
|
widget=StringWidget(description="Path to server directory with press reviews",
|
|
description_msgid="desc_pressreviewspath",
|
|
label_msgid="label_pressreviewspath",
|
|
label="Press Reviews Path",
|
|
i18n_domain = "revuesdepresse"),
|
|
required=1,
|
|
searchable=0),
|
|
))
|
|
|
|
class RevuesDePresse(BaseContent):
|
|
|
|
implements(IRevuesDePresse)
|
|
|
|
schema = schema
|
|
_at_rename_after_creation = True
|
|
|
|
def getTodayLink(self):
|
|
if not self.pressreviewsbaseurl[-1] == '/':
|
|
self.pressreviewsbaseurl += '/'
|
|
return self.pressreviewsbaseurl + 'revue.PDF'
|
|
|
|
def getAllLinks(self):
|
|
'''Return a list of tuples (url, label)'''
|
|
if not self.pressreviewsbaseurl[-1] == '/':
|
|
self.pressreviewsbaseurl += '/'
|
|
filenames = os.listdir(self.pressreviewspath)
|
|
def cmp_filenames(x, y):
|
|
if len(x) != 18:
|
|
return -1
|
|
if len(y) != 18:
|
|
return 1
|
|
return cmp((y[10:14], y[8:10], y[6:8]), (x[10:14], x[8:10], x[6:8]))
|
|
filenames.sort(cmp_filenames)
|
|
all_links = []
|
|
for filename in filenames:
|
|
if not os.path.splitext(filename)[-1].lower() == '.pdf':
|
|
continue
|
|
url = self.pressreviewsbaseurl + filename
|
|
label = '%s/%s/%s' % (filename[6:8], filename[8:10], filename[10:14])
|
|
all_links.append((url, label))
|
|
return all_links
|
|
|
|
registerType(RevuesDePresse)
|