source: products/quintagroup.plonegooglesitemaps/trunk/quintagroup/plonegooglesitemaps/content/newsextender.py @ 3152

Last change on this file since 3152 was 3152, checked in by zidane, 13 years ago

fixes pep8

  • Property svn:eol-style set to native
File size: 3.1 KB
RevLine 
[2402]1from zope.component import adapts
2from zope.interface import implements
3from archetypes.schemaextender.field import ExtensionField
4from archetypes.schemaextender.interfaces import ISchemaExtender
5
6from Products.Archetypes.public import SelectionWidget
[2420]7from Products.Archetypes.public import StringWidget
[2402]8from Products.Archetypes.public import MultiSelectionWidget
9from Products.Archetypes.public import LinesField
10from Products.Archetypes.public import StringField
11from Products.Archetypes.public import DisplayList
12
[2746]13from quintagroup.plonegooglesitemaps.interfaces import INewsSitemapProvider
14
[3152]15
[2402]16class ExtendableStringField(ExtensionField, StringField):
17    """An extendable string field."""
18
[3152]19
[2402]20class ExtendableLinesField(ExtensionField, LinesField):
21    """An extendable string field."""
22
[2420]23access_lst = ["Subscription", "Registration"]
[3152]24genres_lst = ["PressRelease", "Satire", "Blog", "OpEd", "Opinion", \
25              "UserGenerated"]
[2402]26
[3152]27
[2402]28class NewsExtender(object):
[2746]29    adapts(INewsSitemapProvider)
[2402]30    implements(ISchemaExtender)
31
32    fields = [
33        ExtendableStringField("gsm_access",
34            accessor="gsm_access",
[3152]35            vocabulary=DisplayList(zip(["", ] + access_lst, \
36                                   ["Open access", ] + access_lst)),
[2411]37            default="",
[2402]38            schemata="GoogleSitemap",
[3152]39            widget=SelectionWidget(
[2402]40                label="Access",
[3152]41                description="Specifies whether an article is available to " \
42                    "all readers (in case of the emtpy field, or only to " \
43                    "those with a free or paid membership to your site.",
[2402]44                format="radio"),
45        ),
[2419]46        ExtendableLinesField("gsm_genres",
[2402]47            accessor="gsm_genres",
48            vocabulary=DisplayList(zip(genres_lst, genres_lst)),
49            schemata="GoogleSitemap",
[2411]50            default=(),
[3152]51            widget=MultiSelectionWidget(
[2402]52                label="Genres",
53                description="Select one or more properties for an article, " \
54                    "namely, whether it is a press release, a blog post, an " \
[3152]55                    "opinion, an op-ed piece, user-generated content, " \
56                    "or satire.",
[2402]57                format="checkbox"),
58        ),
[2420]59        ExtendableStringField("gsm_stock",
60            accessor="gsm_stock",
61            default="",
62            schemata="GoogleSitemap",
[3152]63            widget=StringWidget(
[2420]64                label="Stock Tickers",
65                description="A comma-separated list of up to 5 stock tickers "\
[3152]66                    "of the companies, mutual funds, or other financial " \
67                    "entities that are the main subject of the article. " \
68                    "Relevant primarily for business articles. Each ticker " \
69                    "must be prefixed by the name of its stock exchange, " \
70                    "and must match its entry in Google Finance. " \
71                    "For example, \"NASDAQ:AMAT\" (but not \"NASD:AMAT\"), " \
72                    "or \"BOM:500325\" (but not \"BOM:RIL\").",
[2420]73                size=70),
74        ),
[2402]75    ]
76
77    def __init__(self, context):
78        self.context = context
79
80    def getFields(self):
81        return self.fields
Note: See TracBrowser for help on using the repository browser.