def finalizeATCTSchema(schema, folderish=False, moveDiscussion=True): """Finalizes an ATCT type schema to alter some fields for the event type. This had to be overrided - cwarner """ schema.moveField('relatedItems', pos='bottom') if folderish: schema['relatedItems'].widget.visible['edit'] = 'invisible' schema.moveField('excludeFromNav', after='allowDiscussion') if moveDiscussion: schema.moveField('allowDiscussion', after='relatedItems') schema.moveField('event_Subtitle', after='title') schema.moveField('event_Image', after='event_Subtitle') schema.moveField('event_Image_caption', after='event_Image') # Categorization if schema.has_key('subject'): schema.changeSchemataForField('subject', 'tags') if schema.has_key('relatedItems'): schema.changeSchemataForField('relatedItems', 'tags') if schema.has_key('location'): schema.changeSchemataForField('location', 'default') schema.moveField('location', after='event_Speaker') if schema.has_key('language'): schema.changeSchemataForField('language', 'default') # Dates if schema.has_key('effectiveDate'): schema.changeSchemataForField('effectiveDate', 'default') schema.moveField('effectiveDate', after='event_EndDateTime') if schema.has_key('expirationDate'): schema.changeSchemataForField('expirationDate', 'default') schema.moveField('expirationDate', after='effectiveDate') if schema.has_key('creation_date'): schema.changeSchemataForField('creation_date', 'dates') if schema.has_key('modification_date'): schema.changeSchemataForField('modification_date', 'dates') # Ownership if schema.has_key('creators'): schema.changeSchemataForField('creators', 'organizers') if schema.has_key('contributors'): schema.changeSchemataForField('contributors', 'organizers') if schema.has_key('rights'): schema.changeSchemataForField('rights', 'organizers') # Settings if schema.has_key('allowDiscussion'): schema.changeSchemataForField('allowDiscussion', 'options') if schema.has_key('excludeFromNav'): schema.changeSchemataForField('excludeFromNav', 'options') if schema.has_key('nextPreviousEnabled'): schema.changeSchemataForField('nextPreviousEnabled', 'options') schema['description'].widget.visible['edit'] = 'invisible' schemata.marshall_register(schema) return schema
def finalize_simplelayout_schema(schema, folderish=False, moveDiscussion=True): finalizeATCTSchema(schema,folderish,moveDiscussion) # Categorization if schema.has_key('subject'): schema.changeSchemataForField('subject', 'settings') if schema.has_key('relatedItems'): schema.changeSchemataForField('relatedItems', 'settings') if schema.has_key('location'): schema.changeSchemataForField('location', 'settings') schema['location'].widget.visible = -1 if schema.has_key('language'): schema.changeSchemataForField('language', 'settings') schema['language'].widget.visible = -1 # Dates if schema.has_key('effectiveDate'): schema.changeSchemataForField('effectiveDate', 'default') if schema.has_key('expirationDate'): schema.changeSchemataForField('expirationDate', 'default') if schema.has_key('creation_date'): schema.changeSchemataForField('creation_date', 'settings') if schema.has_key('modification_date'): schema.changeSchemataForField('modification_date', 'settings') # Ownership if schema.has_key('creators'): schema.changeSchemataForField('creators', 'settings') if schema.has_key('contributors'): schema.changeSchemataForField('contributors', 'settings') schema['contributors'].widget.visible = -1 if schema.has_key('rights'): schema.changeSchemataForField('rights', 'settings') schema['rights'].widget.visible = -1 # Settings if schema.has_key('allowDiscussion'): schema.changeSchemataForField('allowDiscussion', 'settings') if schema.has_key('excludeFromNav'): schema.changeSchemataForField('excludeFromNav', 'settings') if schema.has_key('nextPreviousEnabled'): schema.changeSchemataForField('nextPreviousEnabled', 'settings') schema['nextPreviousEnabled'].widget.visible = -1 marshall_register(schema) #set permissions for settings schemata settings_fields = [schema[key] for key in schema.keys() if schema[key].schemata == 'settings'] for field in settings_fields: field.write_permission = ManagePortal return schema
def finalizeATCTSchema(schema, folderish=False, moveDiscussion=True): """Finalizes an ATCT type schema to alter some fields for the event type. This had to be overrided - cwarner """ schema.moveField("relatedItems", pos="bottom") if folderish: schema["relatedItems"].widget.visible["edit"] = "invisible" schema.moveField("excludeFromNav", after="allowDiscussion") if moveDiscussion: schema.moveField("allowDiscussion", after="relatedItems") schema.moveField("event_Subtitle", after="title") schema.moveField("event_Image", after="event_Subtitle") schema.moveField("event_Image_caption", after="event_Image") # Categorization if schema.has_key("subject"): schema.changeSchemataForField("subject", "tags") if schema.has_key("relatedItems"): schema.changeSchemataForField("relatedItems", "tags") if schema.has_key("location"): schema.changeSchemataForField("location", "default") if schema.has_key("language"): schema.changeSchemataForField("language", "default") # Dates if schema.has_key("effectiveDate"): schema.changeSchemataForField("effectiveDate", "default") schema.moveField("effectiveDate", after="event_EndDateTime") if schema.has_key("expirationDate"): schema.changeSchemataForField("expirationDate", "default") schema.moveField("expirationDate", after="effectiveDate") if schema.has_key("creation_date"): schema.changeSchemataForField("creation_date", "dates") if schema.has_key("modification_date"): schema.changeSchemataForField("modification_date", "dates") # Ownership if schema.has_key("creators"): schema.changeSchemataForField("creators", "organizers") if schema.has_key("contributors"): schema.changeSchemataForField("contributors", "organizers") if schema.has_key("rights"): schema.changeSchemataForField("rights", "organizers") # Settings if schema.has_key("allowDiscussion"): schema.changeSchemataForField("allowDiscussion", "options") if schema.has_key("excludeFromNav"): schema.changeSchemataForField("excludeFromNav", "options") if schema.has_key("nextPreviousEnabled"): schema.changeSchemataForField("nextPreviousEnabled", "options") schemata.marshall_register(schema) return schema
def finalizeATCTSchema(schema, tag_default=True, related_item_default=True, exclude_from_nav_default=True): """Finalizes an ATCT type schema to alter some fields """ field = 'subject' if field in schema and tag_default: schema.changeSchemataForField(field, 'default') field = 'relatedItems' if field in schema and related_item_default: schema.changeSchemataForField(field, 'default') field = 'excludeFromNav' if field in schema and exclude_from_nav_default: schema.changeSchemataForField(field, 'default') marshall_register(schema) return schema
def finalizeATCTSchema(schema, tag_default=True, related_item_default=True, exclude_from_nav_default=True): """Finalizes an ATCT type schema to alter some fields """ field = 'subject' if field in schema and tag_default: schema.changeSchemataForField(field, 'default') field = 'relatedItems' if field in schema and related_item_default: schema.changeSchemataForField(field, 'default') field = 'excludeFromNav' if field in schema and exclude_from_nav_default: schema.changeSchemataForField(field, 'default') marshall_register(schema) return schema
def finalizeSchema(schema, disableRelated=False, moveDiscussion=True, moveThemeTag=True): """Finalizes an ATCT type schema to alter some fields """ schema.moveField('relatedItems', pos='bottom') if disableRelated: schema['relatedItems'].widget.visible['edit'] = 'invisible' else: schema['relatedItems'].widget.visible['edit'] = 'visible' schema.moveField('relatedItems', after='text') if moveThemeTag: schema.moveField('themes', before='relatedItems') if moveDiscussion: schema['allowDiscussion'].schemata = 'metadata' schema.moveField('allowDiscussion', after='relatedItems') marshall_register(schema) return schema
def finalizeSchema(schema, disableRelated=False, moveDiscussion=True, moveThemeTag=True): """Finalizes an ATCT type schema to alter some fields """ schema.moveField('relatedItems', pos='bottom') if disableRelated: schema['relatedItems'].widget.visible['edit'] = 'invisible' else: schema['relatedItems'].widget.visible['edit'] = 'visible' schema.moveField('relatedItems', after='text') if moveThemeTag: schema.moveField('themes', before='relatedItems') if moveDiscussion: schema['allowDiscussion'].schemata = 'metadata' schema.moveField('allowDiscussion', after='relatedItems') marshall_register(schema) return schema
def finalize_recensio_schema(schema, review_type="review"): """Custom replacement for schemata.finalizeATCTSchema Move fields to the correct schemata and hide fields we don't need """ if review_type in ["presentation", "presentation_online", "presentation_article_review", "presentation_collection"]: # Presentations only have one author schema["reviewAuthors"].allow_reorder = False schema["reviewAuthors"].allow_insert = False schema["reviewAuthors"].allow_delete = False schema["reviewAuthors"].widget.label = _(u"label_presentation_authors") # Rename the schemata for presentations presented = "presented_text" if review_type == "presentation_online": presented = "presented_resource" schema_field_names = [i.getName() for i in schema.fields()] for field_name in schema_field_names: if schema[field_name].schemata == "review": schema.changeSchemataForField(field_name, "presentation") elif schema[field_name].schemata == "presentation": pass else: schema.changeSchemataForField(field_name, presented) if field_name in ["pageStart", "pageEnd"]: # TODO: remove after running scripts/migrate_page_start_end.py schema[field_name].widget.visible={ "view":"hidden", "edit":"hidden"} # Third schemata for presentations with assocatied publications if review_type in ["presentation_article_review", "presentation_collection"]: if review_type == "presentation_article_review": associated_publication = "associated_journal" else: associated_publication = "associated_edited_volume" for field_name in schema_field_names: if field_name in ["issn", "isbn", "titleCollectedEdition", "heading_information_journal", "titleJournal", "shortnameJournal", "editorsCollectedEdition", "yearOfPublication", "officialYearOfPublication", "volumeNumber", "issueNumber", "series", "seriesVol", "pages", "placeOfPublication", "publisher", "idBvb"]: schema.changeSchemataForField(field_name, associated_publication) schema["uri"].widget.visible["edit"] = "visible" schema.changeSchemataForField("uri", presented) multiselect_description = _("description_ctrl_for_multiple", default=u"Mit gedrückter Strg-Taste können mehrere Zeilen gleichzeitig ausgewählt werden.") schema["ddcSubject"].widget.label = _(u"Subject classification") schema["ddcSubject"].widget.description= multiselect_description schema['ddcTime'].widget.label = _(u"Time classification") schema["ddcTime"].widget.description= multiselect_description schema['ddcPlace'].widget.label = _(u"Regional classification") schema["ddcPlace"].widget.description= multiselect_description # fill in the review author first name and last name by default # schema['reviewAuthorLastname'].default_method = "get_user_lastname" # schema['reviewAuthorFirstname'].default_method = "get_user_firstname" schema['languageReview'].widget.label = _( u"Language(s) of presentation") if review_type == "presentation_online": schema['languageReviewedText'].widget.label = _( u"Language(s) of presented resource") else: schema['languageReviewedText'].widget.label = _( u"Language(s) of presented work") # Note: The characterLimit validator checks the portal_type to # see if it should be applied or not. Setting it here didn't # seem to work elif review_type in ["review_monograph", "review_journal"]: schema.changeSchemataForField('licence', 'review') hidden_fields = ["allowDiscussion", "contributors", "creators", "description", "description", "effectiveDate", "excludeFromNav", "expirationDate", "generatedPdf", "id", "language", "location", "recensioID", "rights", "relatedItems", "reviewAuthorLastname", "reviewAuthorFirstname"] for field in hidden_fields: schema[field].widget.condition = 'python:False' schemata.marshall_register(schema)