Esempio n. 1
0
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
Esempio n. 3
0
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
Esempio n. 4
0
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
Esempio n. 5
0
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
Esempio n. 6
0
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
Esempio n. 7
0
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)