Exemplo n.º 1
0
def update_item_schema(baseSchema):

    specificSchema = Schema((TextField(
        name='bourgmestreObservations',
        widget=RichWidget(
            label_msgid="PloneMeeting_bourgmestreObservations",
            description_msgid="bourgmestre_observations_descr",
            condition="python: here.attributeIsUsed('bourgmestreObservations')",
            rows=20,
            label='BourgmestreObservations',
            i18n_domain='PloneMeeting',
        ),
        default_content_type="text/html",
        read_permission=
        "PloneMeeting: Write item MeetingManager reserved fields",
        searchable=False,
        allowable_content_types=('text/html', ),
        default_output_type="text/x-html-safe",
        optional=True,
        write_permission=
        "PloneMeeting: Write item MeetingManager reserved fields",
    ), ), )

    completeItemSchema = baseSchema + specificSchema.copy()
    return completeItemSchema
Exemplo n.º 2
0
def update_meeting_schema(baseSchema):
    specificSchema = Schema((DataGridField(
        name='sections',
        widget=DataGridField._properties['widget'](
            description="Commissions",
            description_msgid="commissions_descr",
            condition=
            "python: here.portal_type in ('MeetingCouncil', 'MeetingZCouncil')",
            columns={
                'name_section':
                SelectColumn("Commission name",
                             vocabulary="listSections",
                             col_description="Select the commission name."),
                'date_section':
                Column("Commission date",
                       col_description="Enter valid from date, "
                       "use following format : DD/MM/YYYY."),
            },
            label='Commissions',
            label_msgid='MeetingSeraing_label_commissions',
            i18n_domain='PloneMeeting',
        ),
        allow_oddeven=True,
        write_permission="Modify portal content",
        columns=('name_section', 'date_section'),
        allow_empty_rows=False,
    ), ), )

    completeSchema = baseSchema + specificSchema.copy()

    baseSchema[
        'notes'].widget.description_msgid = "MeetingSeraing_descr_meeting_notes"
    baseSchema[
        'notes'].widget.label_msgid = "MeetingSeraing_msgid_meeting_notes"
    return completeSchema
Exemplo n.º 3
0
def update_item_schema(baseSchema):

    specificSchema = Schema(
        (

            #specific field for Mons added possibility to BudgetImpactReviewer to "validate item"
            BooleanField(
                name='validateByBudget',
                widget=BooleanField._properties['widget'](
                    condition="python: here.attributeIsUsed('budgetInfos') and (\
                            here.portal_membership.getAuthenticatedMember().has_role('MeetingBudgetImpactReviewer', \
                            here) or here.portal_membership.getAuthenticatedMember().has_role(' \
                            MeetingExtraordinaryBudget', here) or here.portal_plonemeeting.isManager(here))",
                    label='ValidateByBudget',
                    label_msgid='MeetingMons_label_validateByBudget',
                    description='Validate By Budget Impact Reviwer',
                    description_msgid='MeetingMons_descr_validateByBudget',
                    i18n_domain='PloneMeeting',
                ),
            ), ), )

    baseSchema['description'].widget.label = "projectOfDecision"
    baseSchema['description'].widget.label_msgid = "projectOfDecision_label"
    baseSchema['motivation'].widget.description_msgid = "item_motivation_descr"
    baseSchema['observations'].write_permission = "Modify portal content"

    completeItemSchema = baseSchema + specificSchema.copy()
    return completeItemSchema
Exemplo n.º 4
0
def update_meeting_schema(baseSchema):
    specificSchema = Schema((
        IntegerField(
            name='meetingNumberInParliamentaryTerm',
            default=-1,
            widget=IntegerField._properties['widget'](
                label='Meetingnumberinparliamentaryterm',
                label_msgid=
                'MeetingAndenne_label_meetingNumberInParliamentaryTerm',
                i18n_domain='PloneMeeting',
            ),
            write_permission="Manage portal",
        ),
        TextField(
            name='postObservations',
            allowable_content_types=('text/html', ),
            widget=RichWidget(
                condition="python: here.showObs('postObservations')",
                rows=15,
                label='Postobservations',
                label_msgid='MeetingAndenne_label_postObservations',
                i18n_domain='PloneMeeting',
            ),
            default_content_type="text/html",
            default_output_type="text/x-html-safe",
            optional=True,
        ),
    ), )

    completeMeetingSchema = baseSchema + specificSchema.copy()
    completeMeetingSchema.moveField('postObservations', after='observations')

    return completeMeetingSchema
Exemplo n.º 5
0
def update_meeting_schema(baseSchema):
    specificSchema = Schema((), )

    baseSchema['assembly'].widget.description_msgid = "assembly_meeting_descr"

    completeSchema = baseSchema + specificSchema.copy()
    return completeSchema
Exemplo n.º 6
0
def update_item_schema(baseSchema):

    specificSchema = Schema((), )

    ContactSchema = baseSchema + specificSchema.copy()

    # remove fax field
    ContactSchema.delField('fax')

    return ContactSchema
Exemplo n.º 7
0
def update_group_schema(baseSchema):
    specificSchema = Schema(
        (BooleanField(name='usePrevalidation',
                      widget=BooleanField._properties['widget'](
                          label='Useprevalidation',
                          label_msgid='MeetingAndenne_label_usePrevalidation',
                          i18n_domain='PloneMeeting',
                      ),
                      default=False), ), )

    completeGroupSchema = baseSchema + specificSchema.copy()

    return completeGroupSchema
Exemplo n.º 8
0
def update_item_schema(baseSchema):
    specificSchema = Schema((
        TextField(
            name='internalCommunication',
            widget=RichWidget(
                condition="python: here.portal_plonemeeting.isManager(here)",
                description="InternalCommunication",
                description_msgid="item_internalCommunication_descr",
                label='InternalCommunication',
                label_msgid='PloneMeeting_label_internalCommunication',
                i18n_domain='PloneMeeting',
            ),
            optional=True,
            default_content_type="text/html",
            allowable_content_types=('text/html', ),
            default_output_type="text/x-html-safe",
        ),
        ReferenceField(
            name='strategicAxis',
            keepReferencesOnCopy=True,
            widget=ReferenceBrowserWidget(
                description="StrategicAxis",
                description_msgid="item_strategicAxis_descr",
                condition="python: here.attributeIsUsed('strategicAxis')",
                allow_search=True,
                allow_browse=False,
                startup_directory_method="classifierStartupDirectory",
                force_close_on_insert=False,
                restrict_browsing_to_startup_directory=True,
                base_query="classifierBaseQuery",
                show_results_without_query=True,
                label='StrategicAxis',
                label_msgid='PloneMeeting_label_strategicAxis',
                i18n_domain='PloneMeeting',
            ),
            multiValued=True,
            relationship="ItemStrategicAxis",
            allowed_types=('MeetingCategory', ),
            optional=True,
        ),
    ))

    baseSchema[
        'detailedDescription'].widget.description = "DetailedDescriptionMethode"
    baseSchema[
        'detailedDescription'].widget.description_msgid = "detailedDescription_item_descr"
    completeItemSchema = baseSchema + specificSchema.copy()
    completeItemSchema.moveField('strategicAxis', after='detailedDescription')
    return completeItemSchema
Exemplo n.º 9
0
def update_meetingconfig_schema(baseSchema):
    specificSchema = Schema((LinesField(
        name='transitionsReinitializingTakenOverBy',
        default=[],
        widget=InAndOutWidget(
            label='TransitionsReinitializingTakenOverBy',
            label_msgid=
            'MeetingSeraing_label_transitions_reinitializing_taken_over_by',
            i18n_domain='PloneMeeting',
        ),
        write_permission=WriteRiskyConfig,
        vocabulary='listEveryItemTransitions',
    ), ), )
    completeSchema = baseSchema + specificSchema.copy()
    return completeSchema
Exemplo n.º 10
0
def update_config_schema(baseSchema):
    specificSchema = Schema((BooleanField(
        name='initItemDecisionIfEmptyOnDecide',
        default=True,
        widget=BooleanField._properties['widget']
        (description="InitItemDecisionIfEmptyOnDecide",
         description_msgid="init_item_decision_if_empty_on_decide",
         label='Inititemdecisionifemptyondecide',
         label_msgid='MeetingCommunes_label_initItemDecisionIfEmptyOnDecide',
         i18n_domain='PloneMeeting'),
        write_permission=WriteRiskyConfig,
    ), ), )

    completeConfigSchema = baseSchema + specificSchema.copy()
    return completeConfigSchema
Exemplo n.º 11
0
def update_config_schema(baseSchema):
    specificSchema = Schema((
        IntegerField(
            name='lastMeetingNumberInParliamentaryTerm',
            default=0,
            widget=IntegerField._properties['widget'](
                description="LastMeetingNumberInParliamentaryTerm",
                description_msgid=
                "last_meeting_number_in_parliamentary_term_descr",
                label='Lastmeetingnumberinparliamentaryterm',
                label_msgid=
                'MeetingAndenne_label_lastMeetingNumberInParliamentaryTerm',
                i18n_domain='PloneMeeting',
            ),
            write_permission=WriteRiskyConfig,
        ),
        BooleanField(
            name='useSubCategories',
            default=False,
            widget=BooleanField._properties['widget'](
                description="UseSubCategories",
                description_msgid="use_sub_categories_descr",
                label='Usesubcategories',
                label_msgid='MeetingAndenne_label_useSubCategories',
                i18n_domain='PloneMeeting'),
            write_permission=WriteRiskyConfig,
        ),
        LinesField(
            name='selectableAssociatedGroups',
            widget=MultiSelectionWidget(
                size=20,
                description="SelectableAssociatedGroups",
                description_msgid="selectable_associated_groups_descr",
                label='Selectableassociatedgroups',
                label_msgid='MeetingAndenne_label_selectableAssociatedGroups',
                i18n_domain='PloneMeeting',
            ),
            schemata="advices",
            multiValued=1,
            vocabulary='listSelectableAssociatedGroups',
            enforceVocabulary=True,
            write_permission=WriteRiskyConfig,
        ),
    ), )

    completeConfigSchema = baseSchema + specificSchema.copy()
    return completeConfigSchema
Exemplo n.º 12
0
def update_config_schema(baseSchema):

    specificSchema = Schema(
        (
            # field for defining title that will be used for item created in the Council
            DataGridField(
                # very strange bug when using a field name ending with 'References'...
                name='archivingRefs',
                widget=DataGridField._properties['widget'](
                    description="ArchivingRefs",
                    description_msgid="archiving_refs_descr",
                    columns={
                        'row_id':
                        Column("Archiving reference row id", visible=False),
                        'code':
                        Column("Archiving reference code"),
                        'label':
                        Column("Archiving reference label"),
                        'restrict_to_groups':
                        MultiSelectColumn(
                            "Archiving reference restrict to selected groups",
                            vocabulary="listActiveOrgsForArchivingRefs"),
                        'active':
                        SelectColumn("Archiving reference active?",
                                     vocabulary="listBooleanVocabulary",
                                     default='1'),
                    },
                    label='ArchivingRefs',
                    label_msgid='MeetingLiege_label_archivingRefs',
                    i18n_domain='PloneMeeting',
                    visible={
                        'view': 'invisible',
                    }),
                allow_oddeven=True,
                default=(),
                # do not use 'finance_advice' column for now, replaced (definitively?)
                # by field 'financeAdvice'
                columns=('row_id', 'code', 'label', 'restrict_to_groups',
                         'active'),
                allow_empty_rows=False,
                write_permission=WriteRiskyConfig,
            ), ), )

    completeConfigSchema = baseSchema + specificSchema.copy()
    return completeConfigSchema
Exemplo n.º 13
0
class EEARelationsTool(UniqueObject, OrderedBaseFolder):
    """ Local utility to store and customize possible content types relations
    """
    implements(IRelationsTool)

    meta_type = "EEARelationsTool"

    id_field = OrderedBaseFolderSchema['id'].copy()
    id_field.mode = 'r'
    title_field = OrderedBaseFolderSchema['title'].copy()
    title_field.mode = 'r'

    manage_options = OrderedBaseFolder.manage_options

    schema = OrderedBaseFolderSchema + Schema((
        id_field,
        title_field,
    ), )
Exemplo n.º 14
0
class DepictionTool(UniqueObject, OrderedBaseFolder):
    """ Local utility to store and customize content-types generic thumbnails
    """
    implements(IDepictionTool)

    meta_type = portal_type = 'DepictionTool'

    id_field = OrderedBaseFolderSchema['id'].copy()
    id_field.mode = 'r'
    title_field = OrderedBaseFolderSchema['title'].copy()
    title_field.mode = 'r'

    manage_options = OrderedBaseFolder.manage_options

    schema = OrderedBaseFolderSchema + Schema((
        id_field,
        title_field,
    ), )
Exemplo n.º 15
0
class ATRefnode(BaseContent):
    """A simple archetype for testing references. It can point to itself"""

    schema = BaseSchema.copy() + Schema((
        ReferenceField('relatedItems',
                       relationship='relatesTo',
                       multiValued=True,
                       isMetadata=True,
                       languageIndependent=False,
                       index='KeywordIndex',
                       referencesSortable=True,
                       keepReferencesOnCopy=True,
                       write_permission=ModifyPortalContent,
                       widget=ReferenceWidget(label=u'label_related_items',
                                              description='',
                                              visible={
                                                  'edit': 'visible',
                                                  'view': 'invisible'
                                              })),  # make it a list
    ))
Exemplo n.º 16
0
def update_config_schema(baseSchema):

    specificSchema = Schema((TextField(
        name='assemblyPolice',
        allowable_content_types=('text/plain', ),
        widget=TextAreaWidget(
            description="AssemblyPolice",
            description_msgid="assembly_police_descr",
            label='AssemblyPolice',
            label_msgid='PloneMeeting_label_assemblyPolice',
            i18n_domain='PloneMeeting',
        ),
        default_content_type='text/plain',
        schemata="assembly_and_signatures",
        write_permission="PloneMeeting: Write harmless config",
    ), ), )

    completeConfigSchema = baseSchema + specificSchema.copy()
    completeConfigSchema.moveField('assemblyPolice', after='assemblyStaves')
    return completeConfigSchema
Exemplo n.º 17
0
        class TestAT(BaseContent):

            schema = BaseContent.schema.copy() + Schema(
                (StringField(
                    'allowed_field',
                    vocabulary_factory='plone.app.vocabularies.PortalTypes',
                    write_permission='View'),
                 StringField(
                     'disallowed_field',
                     vocabulary_factory='plone.app.vocabularies.PortalTypes',
                     write_permission='View management screens'),
                 StringField(
                     'default_field',
                     vocabulary_factory='plone.app.vocabularies.PortalTypes'),
                 StringField(
                     'allowed_widget_vocab',
                     write_permission='View',
                     widget=AjaxSelectWidget(
                         vocabulary='plone.app.vocabularies.PortalTypes'),
                 )))
Exemplo n.º 18
0
def update_muser_schema(baseSchema):
    specificSchema = Schema((
        DateTimeField(
            name='start_date_function',
            widget=DateTimeField._properties['widget'](
                label='start_date_function',
                label_msgid='MeetingAndenne_label_start_date_function',
                i18n_domain='PloneMeeting',
            ),
            searchable=True,
            required=False),
        DateTimeField(name='end_date_function',
                      widget=DateTimeField._properties['widget'](
                          label='end_date_function',
                          label_msgid='MeetingAndenne_label_end_date_function',
                          i18n_domain='PloneMeeting',
                      ),
                      searchable=True,
                      required=False),
    ), )

    completeUserSchema = baseSchema + specificSchema.copy()
    return completeUserSchema
Exemplo n.º 19
0
def update_meeting_schema(baseSchema):

    specificSchema = Schema((
        TextField(
            name='assemblyPolice',
            allowable_content_types="text/plain",
            optional=True,
            widget=TextAreaWidget(
                condition=
                "python: 'assemblyPolice' in here.shownAssemblyFields()",
                label='Assemblypolice',
                label_msgid='meeting_assemblyPolice',
                i18n_domain='PloneMeeting',
            ),
            default_output_type="text/html",
            default_method="getDefaultAssemblyPolice",
            default_content_type="text/plain",
        ),
        TextField(
            name='assemblyPrivacySecretAbsents',
            allowable_content_types="text/plain",
            optional=True,
            widget=TextAreaWidget(
                condition=
                "python: 'assemblyPrivacySecretAbsents' in here.shownAssemblyFields()",
                label='Assemblyprivacysecretabsents',
                label_msgid='PloneMeeting_label_assemblyPrivacySecretAbsents',
                i18n_domain='PloneMeeting',
            ),
            default_output_type="text/html",
            default_content_type="text/plain",
        ),
    ), )

    completeMeetingSchema = baseSchema + specificSchema.copy()
    return completeMeetingSchema
Exemplo n.º 20
0
schema = BikaSchema.copy() + Schema((
    ComputedField(
        'RequestID',
        expression='here.getRequestID()',
        widget=ComputedWidget(visible=True, ),
    ),
    FileField(
        'AttachmentFile',
        widget=FileWidget(label=_("Attachment"), ),
    ),
    ReferenceField(
        'AttachmentType',
        required=0,
        allowed_types=('AttachmentType', ),
        relationship='AttachmentAttachmentType',
        widget=ReferenceWidget(label=_("Attachment Type"), ),
    ),
    StringField(
        'ReportOption',
        searchable=True,
        vocabulary="ATTACHMENT_REPORT_OPTIONS",
        widget=SelectionWidget(
            label=_("Report Options"),
            checkbox_bound=0,
            format='select',
            visible=True,
            default='a',
        ),
    ),
    StringField(
        'AttachmentKeys',
        searchable=True,
        widget=StringWidget(label=_("Attachment Keys"), ),
    ),
    DateTimeField(
        'DateLoaded',
        required=1,
        default_method='current_date',
        widget=DateTimeWidget(label=_("Date Loaded"), ),
    ),
    ComputedField(
        'AttachmentTypeUID',
        expression=
        "context.getAttachmentType().UID() if context.getAttachmentType() else ''",
        widget=ComputedWidget(visible=False, ),
    ),
    ComputedField(
        'ClientUID',
        expression='here.aq_parent.UID()',
        widget=ComputedWidget(visible=False, ),
    ),
))
Exemplo n.º 21
0
class ECQBaseAnswer(BaseContent):
    """ A basic answer. The actual text has to be supplied by the candidate.
    """

    # This prevents the Questions from showing up as a portal content type
    global_allow = False

    schema = BaseSchema.copy() + Schema((
        StringField(
            name='title',
            required=1,
            searchable=0,
            default='Answer',
            accessor='Title',
            widget=StringWidget(
                label_msgid='label_title',
                visible={
                    'view': 'invisible',
                    'edit': 'invisible'
                },
                i18n_domain='plone',
            ),
        ),
        StringField(
            name='answerkey',
            required=1,
            searchable=0,
            default='',
            accessor='Answerkey',
            mode='r',
            widget=StringWidget(
                label_msgid='label_title',
                visible={'view': 'visible'},
                i18n_domain=config.I18N_DOMAIN,
            ),
        ),
    ))

    # Use a custom page template for viewing.
    actions = ({
        'id': 'view',
        'action': 'string:${object_url}/ecq_baseanswer_view',
    }, )

    meta_type = 'ECQBaseAnswer'  # zope type name
    portal_type = meta_type  # plone type name
    archetype_name = 'Base Answer'  # friendly type name

    content_icon = 'ecq_answer.png'

    letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

    security = ClassSecurityInfo()

    security.declarePrivate('manage_afterAdd')

    def manage_afterAdd(self, item, container):
        retVal = BaseContent.manage_afterAdd(self, item, container)
        self.syncResults('add')
        return retVal

    security.declarePrivate('manage_beforeDelete')

    def manage_beforeDelete(self, item, container):
        retVal = BaseContent.manage_beforeDelete(self, item, container)
        self.syncResults('delete')
        return retVal

    def Answerkey(self):
        return self.letters[self.contentValues(filter={
            'portal_type': self.portal_type
        }).index(self)]

    def Title(self):
        return self.archetype_name
Exemplo n.º 22
0
schema = Schema((
    TextField(
        name='introduction',
        searchable=True,
        required_for_published=False,
        required=False,
        allowable_content_types=('text/html',),
        default_content_type="text/html",
        default_output_type="text/x-html-safe",
        widget=RichWidget(
            label="Introduction",
            description="Introduction of GIS Map Application",
            label_msgid='EEAContentTypes_label_introduction',
            i18n_domain='eea',
        ),
    ),
    TextField(
        name='embed',
        languageIndependent=True,
        searchable=True,
        required_for_published=False,
        required=False,
        allowable_content_types=('text/html',),
        default_content_type="text/html",
        default_output_type="text/x-html-safe",
        widget=TextAreaWidget(
            label="Embed code",
            description=("Tableau embed code should be pasted here."),
            label_msgid='EEAContentTypes_label_embed',
            i18n_domain='eea',),
        ),

    ImageField('image',
               required=False,
               languageIndependent=True,
               storage=AnnotationStorage(migrate=True),
               swallowResizeExceptions= \
                   zconf.swallowImageResizeExceptions.enable,
               pil_quality=zconf.pil_config.quality,
               pil_resize_algo=zconf.pil_config.resize_algo,
               max_size=zconf.ATImage.max_image_dimension,
               sizes=None,
               validators=(('isNonEmptyFile', V_REQUIRED),
                           ('imageMinSize', V_REQUIRED)),
               widget=ImageWidget(
                   description='High-res preview image ' \
                               '(at least FHD 1920x1080). ' \
                               'If the image is removed, a new image will ' \
                               'automatically be created after saving',
                   label='Preview image',
                   show_content_type=False, )
               ),

    TextField(
        name='body',
        searchable=True,
        required_for_published=False,
        required=False,
        allowable_content_types=('text/html',),
        default_content_type="text/html",
        default_output_type="text/x-html-safe",
        widget=RichWidget(
            label="More information",
            description=("Description of methodology "
                         "and calculations behind this."),
            label_msgid='EEAContentTypes_label_body',
            i18n_domain='eea',
            ),
        ),
))
Exemplo n.º 23
0
#
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
################################################################################

from Products.Archetypes.tests.attestcase import ATTestCase
from Products.Archetypes.atapi import BaseSchema, BaseContent, Schema, \
    StringField, registerType, process_types, listTypes
from Products.Archetypes.config import PKG_NAME
from Products.Archetypes.VariableSchemaSupport import VariableSchemaSupport

schema = BaseSchema
schema1 = BaseSchema + Schema((StringField('additionalField'), ))


class Dummy(VariableSchemaSupport, BaseContent):
    schema = schema


class VarSchemataTest(ATTestCase):
    def afterSetUp(self):
        registerType(Dummy, 'Archetypes')
        content_types, constructors, ftis = process_types(
            listTypes(), PKG_NAME)

    def test_variableschema(self):
        self.folder.dummy = Dummy(oid='dummy')
        dummy = self.folder.dummy
Exemplo n.º 24
0
ATSimpleIntCriterionSchema = ATBaseCriterionSchema + Schema((
    IntegerField(
        'value',
        required=1,
        mode="rw",
        write_permission=ChangeTopics,
        accessor="Value",
        mutator="setValue",
        default=None,
        widget=IntegerWidget(label=_(u'label_int_criteria_value',
                                     default=u'Value'),
                             description=_(u'help_int_criteria_value',
                                           default=u'An integer number.')),
    ),
    IntegerField(
        'value2',
        required=0,
        mode="rw",
        write_permission=ChangeTopics,
        accessor="Value2",
        mutator="setValue2",
        default=None,
        widget=IntegerWidget(
            label=_(u'label_int_criteria_value2', default=u'Second Value'),
            description=_(
                u'help_int_criteria_value2',
                default=u'An integer number used as the maximum value if '
                u'the between direction is selected.')),
    ),
    StringField(
        'direction',
        required=0,
        mode="rw",
        write_permission=ChangeTopics,
        default='',
        vocabulary=DirectionOperations,
        enforceVocabulary=1,
        widget=SelectionWidget(
            label=_(u'label_int_criteria_direction', default=u'Direction'),
            description=_(
                u'help_int_criteria_direction',
                default=u'Specify whether you want to find values lesser '
                u'than, greater than, equal to, or between the chosen '
                u'value(s).')),
    ),
))
Exemplo n.º 25
0
from Products.validation.config import validation
from Products.validation import V_REQUIRED

LOG = logging.getLogger('ATCT')

validation.register(
    MaxSizeValidator('checkFileMaxSize', maxsize=zconf.ATFile.max_file_size))

ATFileSchema = ATContentTypeSchema.copy() + Schema(
    (FileField('file',
               required=True,
               primary=True,
               searchable=True,
               languageIndependent=True,
               storage=AnnotationStorage(migrate=True),
               validators=(('isNonEmptyFile', V_REQUIRED),
                           ('checkFileMaxSize', V_REQUIRED)),
               widget=FileWidget(
                   description='',
                   label=_(u'label_file', default=u'File'),
                   show_content_type=False,
               )), ),
    marshall=PrimaryFieldMarshaller())

# Title is pulled from the file name if we don't specify anything,
# so it's not strictly required, unlike in the rest of ATCT.
ATFileSchema['title'].required = False

finalizeATCTSchema(ATFileSchema)

Exemplo n.º 26
0
schema = Schema((
    StringField(name='title',
                widget=StringWidget(
                    label="Email address",
                    label_msgid='EEAEnquiry_label_title',
                    i18n_domain='EEAEnquiry',
                ),
                required=True,
                accessor="Title",
                validators=(
                    'isEmail',
                    'isUnique',
                )),
    StringField(name='password',
                widget=PasswordWidget(
                    visible={'view': 'invisible'},
                    description=("Please enter a password if you want to save "
                                 "the information for future enquiries."),
                    label='Password',
                    label_msgid='EEAEnquiry_label_password',
                    description_msgid='EEAEnquiry_help_password',
                    i18n_domain='EEAEnquiry',
                ),
                required=1),
    StringField(name='sex',
                widget=SelectionWidget(
                    label="Mr/Ms",
                    label_msgid='EEAEnquiry_label_sex',
                    i18n_domain='EEAEnquiry',
                ),
                multiValued=0,
                vocabulary=('Mr', 'Ms')),
    StringField(name='firstname',
                widget=StringWidget(
                    label="First name",
                    label_msgid='EEAEnquiry_label_firstname',
                    i18n_domain='EEAEnquiry',
                ),
                required=True),
    StringField(name='lastname',
                widget=StringWidget(
                    label="Surname",
                    label_msgid='EEAEnquiry_label_lastname',
                    i18n_domain='EEAEnquiry',
                ),
                required=True),
    StringField(
        name='country',
        widget=SelectionWidget(
            label="Country",
            label_msgid='EEAEnquiry_label_country',
            i18n_domain='EEAEnquiry',
        ),
        required=True,
        vocabulary=[
            'Please select', 'Albania', 'Algeria', 'American Samoa', 'Andorra',
            'Angola', 'Anguilla', 'Antarctica', 'Antigua and Barbuda',
            'Argentina', 'Armenia', 'Aruba', 'Australia', 'Austria',
            'Azerbaijan', 'Bahamas', 'Bahrain', 'Bangladesh', 'Barbados',
            'Belarus', 'Belgium', 'Belize', 'Benin', 'Bermuda', 'Bhutan',
            'Bolivia', 'Bosnia and Herzegovina', 'Botswana', 'Bouvet Island',
            'Brazil', 'British Indian Ocean Territory', 'Brunei Darussalam',
            'Bulgaria', 'Burkina FASO', 'Burma', 'Burundi', 'Cambodia',
            'Cameroon', 'Canada', 'Canary Island', 'Cape Verde',
            'Cayman Islands', 'Central African Republic', 'Chad', 'Chile',
            'China', 'Christmas Island', 'Cocos (Keeling) Islands', 'Colombia',
            'Comoros', 'Congo', 'Congo, The Democratic Republic of the',
            'Cook Islands', 'Costa Rica', 'Cote d\'Ivoire', 'Croatia',
            'Cyprus', 'Czech Republic', 'Denmark', 'Djibouti', 'Dominica',
            'Dominican Republic', 'East Timor', 'Ecuador', 'Egypt',
            'El Salvador', 'England', 'Equatorial Guinea', 'Eritrea', 'Espana',
            'Estonia', 'Ethiopia', 'Falkland Islands', 'Faroe Islands', 'Fiji',
            'Finland', 'France', 'French Guiana', 'French Polynesia',
            'French Southern Territories', 'Gabon', 'Gambia', 'Georgia',
            'Germany', 'Ghana', 'Gibraltar', 'Great Britain', 'Greece',
            'Greenland', 'Grenada', 'Guadeloupe', 'Guam', 'Guatemala',
            'Guinea', 'Guinea-Bissau', 'Guyana', 'Haiti',
            'Heard and Mc Donald Islands', 'Honduras', 'Hong Kong', 'Hungary',
            'Iceland', 'India', 'Indonesia', 'Ireland', 'Israel', 'Italy',
            'Jamaica', 'Japan', 'Jordan', 'Kazakhstan', 'Kenya', 'Kiribati',
            'Korea, Republic of', 'Korea (South)', 'Kuwait', 'Kyrgyzstan',
            'Lao People\'s Democratic Republic', 'Latvia', 'Lebanon',
            'Lesotho', 'Liberia', 'Libya', 'Liechtenstein', 'Lithuania',
            'Luxembourg', 'Macau', 'Macedonia', 'Madagascar', 'Malawi',
            'Malaysia', 'Maldives', 'Mali', 'Malta', 'Marshall Islands',
            'Martinique', 'Mauritania', 'Mauritius', 'Mayotte', 'Mexico',
            'Micronesia, Federated States of', 'Moldova, Republic of',
            'Monaco', 'Mongolia', 'Montserrat', 'Morocco', 'Mozambique',
            'Myanmar', 'Namibia', 'Nauru', 'Nepal', 'Netherlands',
            'Netherlands Antilles', 'New Caledonia', 'New Zealand',
            'Nicaragua', 'Niger', 'Nigeria', 'Niue', 'Norfolk Island',
            'Northern Ireland', 'Northern Mariana Islands', 'Norway', 'Oman',
            'Pakistan', 'Palau', 'Panama', 'Papua New Guinea', 'Paraguay',
            'Peru', 'Philippines', 'Pitcairn', 'Poland', 'Portugal',
            'Puerto Rico', 'Qatar', 'Reunion', 'Romania', 'Russia',
            'Russian Federation', 'Rwanda', 'Saint Kitts and Nevis',
            'Saint Lucia', 'Saint Vincent and the Grenadines',
            'Samoa (Independent)', 'San Marino', 'Sao Tome and Principe',
            'Saudi Arabia', 'Scotland', 'Senegal', 'Serbia and Montenegro',
            'Seychelles', 'Sierra Leone', 'Singapore', 'Slovakia', 'Slovenia',
            'Solomon Islands', 'Somalia', 'South Africa',
            'South Georgia and the South Sandwich Islands', 'South Korea',
            'Spain', 'Sri Lanka', 'St. Helena', 'St. Pierre And Miquelon',
            'Suriname', 'Svalbard and Jan Mayen Islands', 'Swaziland',
            'Sweden', 'Switzerland', 'Tajikistan', 'Tanzania', 'Thailand',
            'Togo', 'Tokelau', 'Tonga', 'Trinidad', 'Trinidad and Tobago',
            'Tunisia', 'Turkey', 'Turkmenistan', 'Turks and Caicos Islands',
            'Tuvalu', 'Uganda', 'Ukraine', 'United Arab Emirates',
            'United Kingdom', 'United States',
            'United States Minor Outlying Islands', 'Uruguay', 'U.S.A.',
            'Uzbekistan', 'Vanuatu', 'Vatican City State (Holy See)',
            'Venezuela', 'Viet Nam', 'Virgin Islands (British)',
            'Virgin Islands (U.S.)', 'Wales', 'Wallis and Futuna Islands',
            'Western Sahara', 'Yemen', 'Zambia', 'Zimbabwe'
        ],
        enforceVocabulary=1,
        validators=(
            ExpressionValidator('''python:value != "Please select"'''), )),
    StringField(name='org',
                widget=StringWidget(
                    label="Organisation",
                    label_msgid='EEAEnquiry_label_org',
                    i18n_domain='EEAEnquiry',
                )),
    StringField(name='phone',
                widget=StringWidget(
                    label="Phone number",
                    label_msgid='EEAEnquiry_label_phone',
                    i18n_domain='EEAEnquiry',
                )),
    StringField(name='fax',
                widget=StringWidget(
                    label="Fax number",
                    label_msgid='EEAEnquiry_label_fax',
                    i18n_domain='EEAEnquiry',
                )),
    StringField(name='address',
                widget=StringWidget(
                    label='Address',
                    label_msgid='EEAEnquiry_label_address',
                    i18n_domain='EEAEnquiry',
                )),
    StringField(name='postalcode',
                widget=StringWidget(
                    label="Postal code",
                    label_msgid='EEAEnquiry_label_postalcode',
                    i18n_domain='EEAEnquiry',
                )),
    StringField(name='city',
                widget=StringWidget(
                    label='City',
                    label_msgid='EEAEnquiry_label_city',
                    i18n_domain='EEAEnquiry',
                )),
    StringField(name='region',
                widget=StringWidget(
                    description="Please enter your state or region.",
                    label='Region',
                    label_msgid='EEAEnquiry_label_region',
                    description_msgid='EEAEnquiry_help_region',
                    i18n_domain='EEAEnquiry',
                )),
    BooleanField(
        name='subscribed',
        default=True,
        widget=BooleanWidget(
            label=("I would like to receive email notifications on free to "
                   "download reports and other products published by EEA"),
            label_msgid='EEAEnquiry_label_subscribed',
            i18n_domain='EEAEnquiry',
        )),
    ReferenceField(name='enquiries',
                   widget=ReferenceWidget(
                       label='Enquiries',
                       label_msgid='EEAEnquiry_label_enquiries',
                       i18n_domain='EEAEnquiry',
                   ),
                   allowed_types=('Enquiry', ),
                   multiValued=1,
                   relationship='enquiries'),
), )
Exemplo n.º 27
0
ATEventSchema = ATContentTypeSchema.copy() + Schema((
    StringField('location',
                searchable=True,
                write_permission=ModifyPortalContent,
                widget=StringWidget(description='',
                                    label=_(u'label_event_location',
                                            default=u'Event Location'))),
    DateTimeField('startDate',
                  required=True,
                  searchable=False,
                  accessor='start',
                  write_permission=ModifyPortalContent,
                  default_method=DateTime,
                  languageIndependent=True,
                  widget=CalendarWidget(description='',
                                        label=_(u'label_event_start',
                                                default=u'Event Starts'))),
    DateTimeField('endDate',
                  required=True,
                  searchable=False,
                  accessor='end',
                  write_permission=ModifyPortalContent,
                  default_method=DateTime,
                  languageIndependent=True,
                  widget=CalendarWidget(description='',
                                        label=_(u'label_event_end',
                                                default=u'Event Ends'))),
    TextField('text',
              required=False,
              searchable=True,
              primary=True,
              storage=AnnotationStorage(migrate=True),
              validators=('isTidyHtmlWithCleanup', ),
              default_output_type='text/x-html-safe',
              widget=RichWidget(
                  description='',
                  label=_(u'label_event_announcement',
                          default=u'Event body text'),
                  rows=25,
                  allow_file_upload=zconf.ATDocument.allow_document_upload)),
    LinesField('attendees',
               languageIndependent=True,
               searchable=True,
               write_permission=ModifyPortalContent,
               widget=LinesWidget(description='',
                                  label=_(u'label_event_attendees',
                                          default=u'Attendees'))),
    StringField('eventUrl',
                required=False,
                searchable=True,
                accessor='event_url',
                write_permission=ModifyPortalContent,
                validators=('isURL', ),
                widget=StringWidget(description=_(
                    u'help_event_url',
                    default=u"Web address with more info about the event. "
                    "Add http:// for external links."),
                                    label=_(u'label_event_url',
                                            default=u'Event URL'))),
    StringField('contactName',
                required=False,
                searchable=True,
                accessor='contact_name',
                write_permission=ModifyPortalContent,
                widget=StringWidget(description='',
                                    label=_(u'label_contact_name',
                                            default=u'Contact Name'))),
    StringField('contactEmail',
                required=False,
                searchable=True,
                accessor='contact_email',
                write_permission=ModifyPortalContent,
                validators=('isEmail', ),
                widget=StringWidget(description='',
                                    label=_(u'label_contact_email',
                                            default=u'Contact E-mail'))),
    StringField('contactPhone',
                required=False,
                searchable=True,
                accessor='contact_phone',
                write_permission=ModifyPortalContent,
                validators=(),
                widget=StringWidget(description='',
                                    label=_(u'label_contact_phone',
                                            default=u'Contact Phone'))),
),
                                                    marshall=RFC822Marshaller(
                                                    ))
Exemplo n.º 28
0
from Products.ATContentTypes import ATCTMessageFactory as _
from Products.ATContentTypes.criteria import FIELD_INDICES
from Products.ATContentTypes.criteria import registerCriterion
from Products.ATContentTypes.criteria.base import ATBaseCriterion
from Products.ATContentTypes.criteria.schemata import ATBaseCriterionSchema
from Products.ATContentTypes.interfaces import IATTopicSearchCriterion
from Products.ATContentTypes.permission import ChangeTopics
from Products.CMFCore.permissions import View
from zope.interface import implements

ATBooleanCriterionSchema = ATBaseCriterionSchema + Schema((BooleanField(
    'bool',
    required=1,
    mode="rw",
    write_permission=ChangeTopics,
    default=None,
    widget=BooleanWidget(label=_(u'label_boolean_criteria_bool',
                                 default=u'Value'),
                         description=_(u'help_boolean_criteria_bool',
                                       default=u'True or false')),
), ))


class ATBooleanCriterion(ATBaseCriterion):
    """A boolean criterion"""

    implements(IATTopicSearchCriterion)

    security = ClassSecurityInfo()
    schema = ATBooleanCriterionSchema
    meta_type = 'ATBooleanCriterion'
Exemplo n.º 29
0
schema = BikaSchema.copy() + Schema((
    DateTimeField(
        'DateIssued',
        with_time=1,
        with_date=1,
        widget=DateTimeWidget(
            label=_("Report Date"),
            description=_("Validation report date"),
        ),
    ),
    DateTimeField(
        'DownFrom',
        with_time=1,
        with_date=1,
        widget=DateTimeWidget(
            label=_("From"),
            description=_(
                "Date from which the instrument is under validation"),
        ),
    ),
    DateTimeField(
        'DownTo',
        with_time=1,
        with_date=1,
        widget=DateTimeWidget(
            label=_("To"),
            description=_("Date until the instrument will not be available"),
        ),
    ),
    StringField('Validator',
                widget=StringWidget(
                    label=_("Validator"),
                    description=_("The analyst responsible of the validation"),
                )),
    TextField(
        'Considerations',
        default_content_type='text/plain',
        allowed_content_types=('text/plain', ),
        default_output_type="text/plain",
        widget=TextAreaWidget(
            label=_("Considerations"),
            description=_("Remarks to take into account before validation"),
        ),
    ),
    TextField(
        'WorkPerformed',
        default_content_type='text/plain',
        allowed_content_types=('text/plain', ),
        default_output_type="text/plain",
        widget=TextAreaWidget(
            label=_("Work Performed"),
            description=_(
                "Description of the actions made during the validation"),
        ),
    ),
    ReferenceField(
        'Worker',
        vocabulary='getLabContacts',
        allowed_types=('LabContact', ),
        relationship='LabContactInstrumentValidation',
        widget=ReferenceWidget(
            checkbox_bound=0,
            label=_("Performed by"),
            description=_("The person at the supplier who performed the task"),
            size=30,
            base_query={'inactive_state': 'active'},
            showOn=True,
            colModel=[{
                'columnName': 'UID',
                'hidden': True
            }, {
                'columnName': 'JobTitle',
                'width': '20',
                'label': _('Job Title')
            }, {
                'columnName': 'Title',
                'width': '80',
                'label': _('Name')
            }],
        ),
    ),
    StringField('ReportID',
                widget=StringWidget(
                    label=_("Report ID"),
                    description=_("Report identification number"),
                )),
    TextField(
        'Remarks',
        default_content_type='text/plain',
        allowed_content_types=('text/plain', ),
        default_output_type="text/plain",
        widget=TextAreaWidget(label=_("Remarks"), ),
    ),
))
Exemplo n.º 30
0
schema = Schema((
    StringField(
        name='occupation',
        validators=(
            ExpressionValidator('''python:value != "Please select"'''), ),
        widget=SelectionWidget(
            label='Occupation',
            label_msgid='EEAEnquiry_label_occupation',
            i18n_domain='EEAEnquiry',
        ),
        required=True,
        vocabulary=[
            'Please select', 'Company',
            'Government official / international organisation',
            'Information centre / library / bookstore', 'Journalist', 'Media',
            'Interest Group/NGO', 'Politician', 'Researcher', 'Student',
            'Citizen', 'Teacher (primary, secondary and tertiary)', 'N/A'
        ]),
    StringField(
        name='purpuse',
        validators=(
            ExpressionValidator('''python:value != "Please select"'''), ),
        widget=SelectionWidget(
            label="Purpose",
            label_msgid='EEAEnquiry_label_purpuse',
            i18n_domain='EEAEnquiry',
        ),
        required=True,
        vocabulary=[
            'Please select', 'Administrative case work',
            'Commercial purpose (companies)',
            'Education (primary, secondary and tertiary)',
            'Employment/ Contract opportunity', 'General interest',
            'Information dissemination (incl. bookstores)',
            'Non-commercial application',
            ('Policy-making/ public participation (incl. international '
             'institutions and NGO)'),
            'Research (incl. university assignments)', 'N/A'
        ]),
    StringField(name='title',
                widget=StringWidget(
                    label="Subject",
                    label_msgid='EEAEnquiry_label_title',
                    i18n_domain='EEAEnquiry',
                ),
                required=True,
                accessor="Title"),
    TextField(name='description',
              widget=TextAreaWidget(
                  label="Enquiry",
                  label_msgid='EEAEnquiry_label_description',
                  i18n_domain='EEAEnquiry',
              ),
              required=True,
              accessor="Description"),
    StringField(name='email',
                widget=StringWidget(
                    label="Email address",
                    label_msgid='EEAEnquiry_label_email',
                    i18n_domain='EEAEnquiry',
                ),
                required=1,
                validators=('isEmail', )),
    ReferenceField(name='enquiryRequestor',
                   widget=ReferenceWidget(
                       label='Enquiryrequestor',
                       label_msgid='EEAEnquiry_label_enquiryRequestor',
                       i18n_domain='EEAEnquiry',
                   ),
                   allowed_types=('EnquiryRequestor', ),
                   multiValued=0,
                   relationship='enquriyRequestor'),
), )