source: trunk/SharedMetadata.py @ 414

Revision 414, 7.9 KB checked in by vahur, 13 years ago (diff)

closes #487 spent 15m

Line 
1# Copyright 2006 by the LeMill Team (see AUTHORS)
2#
3# This file is part of LeMill.
4#
5# LeMill is free software; you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published by
7# the Free Software Foundation; either version 2 of the License, or
8# (at your option) any later version.
9#
10# LeMill is distributed in the hope that it will be useful,
11# but WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13# GNU General Public License for more details.
14#
15# You should have received a copy of the GNU General Public License
16# along with LeMill; if not, write to the Free Software
17# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
18
19
20#These are common pieces of schema for content types
21from Products.Archetypes.public import *
22from FieldsWidgets import WYSIWYMWidget, WYSIWYMField, TagsField, TagsWidget, CopyrightWidget, Age_rangeWidget
23from config import LICENSES
24
25bodytext = Schema((
26    WYSIWYMField('bodyText',
27                 accessor="getBodyText",
28                 mutator = "setBodyText",
29                 index='ZCTextIndex:schema',
30                 searchable = True,
31                 widget=WYSIWYMWidget(label = "Body text",
32                                      label_msgid = "label_body_text",
33                                      description = "Write the actual text content here.",
34                                      description_msgid = "help_body_text",
35                                      i18n_domain = "lemill",
36                                      ),
37                ),
38))
39
40description = Schema((
41    StringField('description',
42        index="ZCTextIndex:schema",
43        searchable=True,
44        schemata="metadata",
45        widget=TextAreaWidget(
46            label="Description",
47            label_msgid="label_description",
48            description="Write a short description here",
49            description_msgid="desc_description",
50            i18n_domain="lemill"),
51    )
52))
53
54no_description = Schema((
55    StringField('description',
56        searchable=False,
57        schemata = "metadata",
58        widget = TextAreaWidget(
59            visible={'view':'invisible','edit':'invisible'}
60        ),
61    ),
62))
63
64language_schema = Schema((
65    StringField(
66            'language',
67            index='FieldIndex:schema',
68            schemata="metadata",
69            accessor="Language",
70            default_method ='defaultLanguage',
71            vocabulary='getLanguagelist',
72            widget=SelectionWidget(
73                label='Language',
74                label_msgid="label_language",
75                description="Select the language used in this content",
76                description_msgid="help_language",
77                i18n_domain="lemill"
78                ),
79        ),
80))
81
82license_schema = Schema((
83   TextField('rights',
84       schemata="metadata",
85       default = "CreativeCommons",
86       vocabulary=DisplayList((LICENSES)),
87       widget=CopyrightWidget(
88           visible={'edit':'invisible'}
89           ),
90       ),
91))
92
93# Overwrite some Archetypes ExtensibleMetadata.py field definitions to make them go away.
94lemill_metadata_mods = Schema((
95   StringField('allowDiscussion',
96       default='0',
97       widget=SelectionWidget(
98           visible={'view':'invisible','edit':'invisible'}
99           ),
100       ),
101   LinesField('subject',
102       searchable=False,
103       widget=KeywordWidget(
104           visible={'view':'invisible','edit':'invisible'}
105           ),
106       ),
107   LinesField('contributors',
108       widget=LinesWidget(
109           visible={'view':'invisible','edit':'invisible'}
110           ),
111       ),
112))
113
114age_group = Schema((
115    StringField('age_group',
116        index="KeywordIndex:schema",
117        widget=Age_rangeWidget(
118            label="Typical Age Range",
119            label_msgid="label_age_range",
120            description="Enter the lowest and highest suitable age (eg. '12-18'). If no lower or higher limit exists, leave that field empty.",
121            description_msgid="desc_age_range",
122            i18n_domain="lemill"
123        ),
124        schemata="metadata"
125    ),
126))
127
128tags= Schema((
129   TagsField('tags',
130        index="KeywordIndex:schema",
131        accessor="getTags",
132        searchable=True,
133        widget=TagsWidget(
134            label="Tags",
135            label_msgid="label_tags",
136            description="Enter descriptive tags for this resource, separated by a comma.",
137            description_msgid="desc_tags",
138            i18n_domain="lemill"
139        ),
140        schemata="metadata",
141    )
142))
143
144parentVersion = Schema((
145    StringField('parentVersion',
146        required = False,
147        searchable = True,
148        accessor = 'getParentVersion',
149        mutator = 'setParentVersion',
150        widget = StringWidget(
151            visible = {'view':'invisible', 'edit':'invisible'},
152            ),
153        )
154))
155
156coverImage = Schema((
157    ImageField('coverImage',
158               schemata="metadata",
159               required=False,
160               accessor='getCoverImage',
161               mutator='setCoverImage',
162               original_size=(160,120),
163               widget = ImageWidget(label='Cover image',
164                                    label_msgid='cover_image',
165                                    description="The cover image is used as a thumbnail for this resource.",
166                                    description_msgid="desc_cover_image",
167                                    i18n_domain='lemill',
168                                    visible={'view':'invisible','edit':'invisible'},
169                                    ),
170               ),
171    BooleanField('hasCoverImage',
172                default=False,
173                index="FieldIndex:schema",
174                accessor='getHasCoverImage',
175                mutator='setHasCoverImage',
176                widget = BooleanWidget(
177                    visible = {'view':'invisible', 'edit':'invisible'},
178                    ),
179                )
180
181
182))
183
184author_schema = Schema((
185    LinesField('creators',
186              schemata="metadata",
187              accessor='getAuthorsNames',
188              widget = StringWidget(
189                  visible = {'view':'visible', 'edit':'invisible'},
190                  label='Creators',
191                  label_msgid='label_creators',
192                  ),
193              )
194))
195
196contentFile = Schema((
197    FileField('file',
198              #allowable_content_type = (...),
199              accessor='getFile',
200              mutator='setFile',
201              widget=FileWidget(label="Contents",
202                                label_msgid="label_piece_file",
203                                description="Upload the file with the contents",
204                                description_msgid="desc_piece_file",
205                                i18n_domain="lemill",
206                                show_content_type = True,
207                                #visible = {'edit' : 'visible', 'view' : 'invisible' }
208                                ),
209              ),
210))
211
212sourceFile = Schema((
213    FileField('source',
214              #allowable_content_type = (...),
215              widget=FileWidget(label="Source file",
216                                label_msgid="label_piece_source_file",
217                                description="Upload the source file which has the contents in an easily editable format",
218                                description_msgid="desc_piece_source_file",
219                                i18n_domain="lemill",
220                                show_content_type = True,
221                                visible = {'edit' : 'invisible', 'view' : 'invisible' }
222                                ),
223              ),
224))
225
226audioFile = Schema((
227    FileField('audio',
228        accessor='getAudioFile',
229        mutator='setAudioFile',
230        widget=FileWidget(label="Audio recording",
231            label_msgid="label_material_audio_recording",
232            description="An audio recording of the presentation",
233            description_msgid="desc_material_audio_recording",
234            i18n_domain="lemill"
235            ),
236        ),
237))
238
Note: See TracBrowser for help on using the repository browser.