class IOfficialDoc(model.Schema):
    """ Marker interface and Dexterity Python Schema for Official Document
    """

    fieldset(_(u'Related Echelon'), fields=[
        'relatedEchelon',
    ])

    relatedEchelon = RelationChoice(title=_(u"Related Echelon"),
                                    required=False,
                                    source=CatalogSource(Type='Echelon'))

    title = schema.TextLine(
        title=_(u"Official Document Title"),
        required=True,
    )

    docWorkflow = schema.TextLine(
        title=_(u'Official Document Workflow.'),
        required=False,
    )

    workflowStatus = schema.TextLine(
        title=_(u'Workflow Status.'),
        required=False,
    )

    docHeader = schema.TextLine(
        title=_(u'Official Document Header.'),
        required=True,
    )

    docSN = schema.TextLine(
        title=_(u'Official Document Serial No.'),
        required=True,
    )

    docDate = schema.Date(
        title=_(u"Official Document Date."),
        required=True,
    )

    recipient = schema.TextLine(
        title=_(u'Recipient'),
        required=True,
    )

    detail_1 = schema.TextLine(
        title=_(u'Official Document Detail 1'),
        required=False,
    )

    detail_2 = schema.TextLine(
        title=_(u'Official Document Detail 2'),
        required=False,
    )

    detail_3 = schema.TextLine(
        title=_(u'Official Document Detail 3'),
        required=False,
    )

    detail_4 = schema.TextLine(
        title=_(u'Official Document Detail 4'),
        required=False,
    )

    detail_5 = schema.TextLine(
        title=_(u'Official Document Detail 5'),
        required=False,
    )

    detail_6 = schema.TextLine(
        title=_(u'Official Document Detail 6'),
        required=False,
    )

    detail_7 = schema.TextLine(
        title=_(u'Official Document Detail 7'),
        required=False,
    )

    detail_8 = schema.TextLine(
        title=_(u'Official Document Detail 8'),
        required=False,
    )

    detail_9 = schema.TextLine(
        title=_(u'Official Document Detail 9'),
        required=False,
    )

    detail_10 = schema.TextLine(
        title=_(u'Official Document Detail 10'),
        required=False,
    )
Exemple #2
0
class IProblemTable(model.Schema):
    fieldset(
        _('Basic Text'),
        fields=['description_header', 'description_text', 'description_img'])
    description_header = schema.Text(
        title=_(u'description header'),
        required=True,
    )

    description_text = schema.Text(
        title=_(u'description text'),
        required=True,
    )

    description_img = namedfile.NamedBlobImage(
        title=_(u'description Image'),
        required=True,
    )

    fieldset(_('General Problem'),
             fields=[
                 'problem_people', 'problem_machine', 'problem_materials',
                 'problem_method', 'problem_EC'
             ])
    problem_people = schema.Text(
        title=_(u'problem_people'),
        required=True,
    )

    problem_machine = schema.Text(
        title=_(u'problem_machine'),
        required=True,
    )

    problem_materials = schema.Text(
        title=_(u'problem_materials'),
        required=True,
    )

    problem_method = schema.Text(
        title=_(u'problem_method'),
        required=True,
    )

    problem_EC = schema.Text(
        title=_(u'problem_EC'),
        required=True,
    )

    fieldset(_('Smart Problem'),
             fields=[
                 'smart_people', 'smart_machine', 'smart_materials',
                 'smart_method', 'smart_EC'
             ])
    smart_people = schema.Text(
        title=_(u'smart_people'),
        required=True,
    )

    smart_machine = schema.Text(
        title=_(u'smart_machine'),
        required=True,
    )

    smart_materials = schema.Text(
        title=_(u'smart_materials'),
        required=True,
    )

    smart_method = schema.Text(
        title=_(u'smart_method'),
        required=True,
    )

    smart_EC = schema.Text(
        title=_(u'smart_EC'),
        required=True,
    )
Exemple #3
0
class IActa(form.Schema):
    """ ACTA """

    fieldset('acta',
             label=_(u'Tab acta'),
             fields=['title', 'horaInici', 'horaFi', 'llocConvocatoria',
                     'ordenDelDia', 'enllacVideo']
             )

    fieldset('assistents',
             label=_(u'Assistents'),
             fields=['membresConvocats', 'membresConvidats', 'llistaExcusats', 'llistaNoAssistens']
             )

    dexteritytextindexer.searchable('title')
    title = schema.TextLine(
        title=_PMF(u'label_title', default=u'Title'),
        required=True
    )

    horaInici = schema.Datetime(
        title=_(u"Session start time"),
        required=False,
    )

    horaFi = schema.Datetime(
        title=_(u"Session end time"),
        required=False,
    )

    llocConvocatoria = schema.TextLine(
        title=_(u"Session location"),
        required=False,
    )

    directives.widget(membresConvocats=WysiwygFieldWidget)
    dexteritytextindexer.searchable('membresConvocats')
    membresConvocats = schema.Text(
        title=_(u"Assistants"),
        description=_(u"Assistants help"),
        required=False,
    )

    directives.widget(membresConvidats=WysiwygFieldWidget)
    dexteritytextindexer.searchable('membresConvidats')
    membresConvidats = schema.Text(
        title=_(u"Invited members"),
        description=_(u"Invited members help"),
        required=False,
    )

    directives.widget(llistaExcusats=WysiwygFieldWidget)
    dexteritytextindexer.searchable('llistaExcusats')
    llistaExcusats = schema.Text(
        title=_(u"Excused members"),
        description=_(u"Excused members help"),
        required=False,
    )

    directives.widget(llistaNoAssistens=WysiwygFieldWidget)
    dexteritytextindexer.searchable('llistaNoAssistens')
    llistaNoAssistens = schema.Text(
        title=_(u"No assistents"),
        description=_(u"No assistents help"),
        required=False,
    )

    directives.widget(ordenDelDia=WysiwygFieldWidget)
    dexteritytextindexer.searchable('ordenDelDia')
    ordenDelDia = schema.Text(
        title=_(u"Session order"),
        description=_(u"Session order description"),
        required=False,
    )

    enllacVideo = schema.TextLine(
        title=_(u"Video link"),
        description=_(u"If you want to add a video file, not a url, there is a trick, you must add an Audio Type and leave this field empty."),
        required=False,
    )
Exemple #4
0
class ISettings(Interface):
    """
    Controlpanel fields.
    """

    fieldset(_(u'settings_fieldset_server', default=u'Server'),
             fields=[
                 'sync_to_ldap', 'ldap_server_uri', 'ldap_service_user',
                 'ldap_service_pass'
             ])

    sync_to_ldap = schema.Bool(
        title=_(u'settings_sync_to_ldap_title', default=u'LDAP Syncing'),
        description=_(
            u'settings_sync_to_ldap_description',
            default=
            u'If enabled, the CRM will attempt an LDAP connection on sync events.'
        ),  # noqa
        required=False,
        default=False,
    )

    ldap_server_uri = schema.TextLine(
        title=_(u'settings_ldap_server_uri_title', default=u'LDAP Server URI'),
        default=u'ldap://127.0.0.1',
        required=False,
    )

    ldap_service_user = schema.TextLine(
        title=_(u'settings_ldap_service_user_title',
                default=u'LDAP Service User'),
        required=False,
        default=u'cn=admin,dc=example,dc=com',
    )

    ldap_service_pass = schema.Password(
        title=_(u'settings_ldap_service_pass_title',
                default=u'LDAP Service Password'),
        required=False,
    )

    fieldset(_(u'settings_fieldset_dn', default=u'DN'),
             fields=['users_dn', 'groups_dn', 'accounts_dn', 'archives_dn'])

    users_dn = schema.TextLine(
        title=_(u'settings_users_dn_title', default=u'Users DN'),
        description=_(
            u'settings_users_dn_description',
            default=u'Include the users DN. e.g. ou=users,dc=example,dc=com'
        ),  # noqa
        required=False,
        default=u'ou=users,dc=example,dc=com',
    )

    groups_dn = schema.TextLine(
        title=_(u'settings_groups_dn_title', default=u'Groups DN'),
        description=_(
            u'settings_groups_dn_description',
            default=u'Include the groups DN. e.g. ou=groups,dc=example,dc=com'
        ),  # noqa
        required=False,
        default=u'ou=groups,dc=example,dc=com',
    )

    accounts_dn = schema.TextLine(
        title=_(u'settings_accounts_dn_title', default=u'Accounts DN'),
        description=_(
            u'settings_accounts_dn_description',
            default=
            u'Include the accounts DN. e.g. ou=accounts,dc=example,dc=com'
        ),  # noqa
        required=False,
        default=u'ou=accounts,dc=example,dc=com',
    )

    archives_dn = schema.TextLine(
        title=_(u'settings_archives_dn_title', default=u'Archives DN'),
        description=_(
            u'settings_archives_dn_description',
            default=
            u'Include the archives DN. e.g. ou=archives,dc=example,dc=com'
        ),  # noqa
        required=False,
        default=u'ou=archives,dc=example,dc=com',
    )

    fieldset(_(u'settings_fieldset_mapping', default=u'Mapping'),
             fields=[
                 'ldap_field_mapping_contact', 'ldap_field_mapping_account',
                 'ldap_objectclass_mapping'
             ])

    ldap_field_mapping_contact = schema.List(
        title=_(u'settings_ldap_field_mapping_contact_title',
                default=u'Contact Attribute Mapping'),
        description=_(
            u'settings_ldap_field_mapping_contact_description',
            default=
            u'Map Plone fields to their corresponding LDAP attributes. Plone|LDAP'
        ),  # noqa
        value_type=schema.TextLine(),
        default=[
            'title|cn', 'email|mail', 'firstname|givenname', 'lastname|sn'
        ],
        required=False,
    )

    ldap_field_mapping_account = schema.List(
        title=_(u'settings_ldap_field_mapping_account_title',
                default=u'Account Attribute Mapping'),
        description=_(
            u'settings_ldap_field_mapping_account_description',
            default=
            u'Map Plone fields to their corresponding LDAP attributes. Plone|LDAP'
        ),  # noqa
        value_type=schema.TextLine(),
        default=['title|cn', 'billing_email|mail', 'ceo|givenname', 'type|sn'],
        required=False,
    )

    ldap_objectclass_mapping = schema.List(
        title=_(u'settings_ldap_objectclass_mapping_title',
                default=u'Content-Type to objectClass Mapping'),
        description=_(
            u'settings_ldap_objectclass_mapping_description',
            default=u'Map Plone Content-Type to an LDAP objectClass. Plone|LDAP'
        ),  # noqa
        value_type=schema.TextLine(),
        default=[
            'Group|posixGroup', 'Account|inetOrgPerson',
            'Contact|inetOrgPerson'
        ],
        required=False,
    )

    fieldset(_(u'settings_fieldset_other', default=u'Other'),
             fields=['manual_ldap_actions', 'ldap_archiving'])

    manual_ldap_actions = schema.Bool(
        title=_(u'settings_manual_ldap_actions_title',
                default=u'Manual LDAP Actions'),
        description=_(
            u'settings_manual_ldap_actions_description',
            default=u'Enable manual LDAP controls in the actions menu.'
        ),  # noqa
        required=False,
        default=False,
    )

    ldap_archiving = schema.Bool(
        title=_(u'settings_ldap_archiving_title', default=u'LDAP Archiving'),
        description=_(
            u'settings_ldap_archiving_description',
            default=
            u'If enabled, duplicate LDAP entries will be archived instead of deleted.'
        ),  # noqa
        required=False,
        default=False,
    )
class IHOAHouseReWalkInspection(form.Schema):
    """
    """
    fieldset('roof',
        label=u'Roof',
        description=u'',
        fields=['title',
                'inspection_datetime',
                'passed_datetime',
                'inspected_by_first',
                'inspected_by_second',
                'roof_cond_remains',
                'roof_action_required',
                'roof_text',
                'roof_rewalk_text',
                'roof_image',
                'roof_rewalk_image']
    )

    form.mode(title='hidden')
    title = schema.TextLine(
        title=_(u"Title"),
    )

    form.mode(inspection_datetime='hidden')
    inspection_datetime = schema.Datetime(
        title=_(u'First Inspection Datetime'),
        description=_(u''),
        required=False,
    )

    form.mode(passed_datetime='hidden')
    passed_datetime = schema.Datetime(
        title=_(u'Secondary Inspection Datetime'),
        description=_(u''),
        required=False,
    )

    form.mode(inspected_by_first='hidden')
    inspected_by_first = schema.TextLine(
        title=_(u"Primary Inspection By"),
        required=False,
    )

    form.mode(inspected_by_second='hidden')
    inspected_by_second = schema.TextLine(
        title=_(u"Secondary Inspection By"),
        required=False,
    )

    form.widget(roof_cond_remains=RadioFieldWidget)
    roof_cond_remains = schema.Choice(
        title=_(u'Roof Condition Remains?'),
        description=_(u''),
        source=SimpleVocabulary([SimpleTerm(value=True,
                                            title=u"Yes"),
                                 SimpleTerm(value=False,
                                            title=U"No")]),
        required=False,
    )

    form.mode(roof_action_required='display')
    roof_action_required = schema.Choice(
        title=_(u'Roof Required Action'),
        description=_(u''),
        vocabulary=REQUIRED_ACTION_VOCABULARY,
        required=False,
    )

    form.mode(roof_text='display')
    roof_text = schema.Text(
        title=_(u"Roof Issue"),
        description=_(u"Comments included in letter and email. 50 character limit"),
        required=False,
        max_length=50,
    )

    roof_rewalk_text = schema.Text(
        title=_(u"Roof Reinspect Issue"),
        description=_(u"Comments included in letter and email. 50 character limit"),
        required=False,
        max_length=50,
    )

    form.mode(roof_image='display')
    roof_image = NamedBlobImage(
        title=_(u"Roof Photo"),
        description=_(u""),
        required=False,
    )

    roof_rewalk_image = NamedBlobImage(
        title=_(u"Roof Re-walk Photo"),
        description=_(u""),
        required=False,
    )

    fieldset('gutters',
        label=u'Gutters',
        description=u'',
        fields=['gutters_cond_remains',
                'gutters_action_required',
                'gutters_text',
                'gutters_rewalk_text',
                'gutters_image',
                'gutters_rewalk_image']
    )

    form.widget(gutters_cond_remains=RadioFieldWidget)
    gutters_cond_remains = schema.Choice(
        title=_(u'Gutter Condition Remains?'),
        description=_(u''),
        source=SimpleVocabulary([SimpleTerm(value=True,
                                            title=u"Yes"),
                                 SimpleTerm(value=False,
                                            title=U"No")]),
        required=False,
    )

    form.mode(gutters_action_required='display')
    gutters_action_required = schema.Choice(
        title=_(u'Gutters Required Action'),
        description=_(u''),
        vocabulary=REQUIRED_ACTION_VOCABULARY,
        required=False,
    )

    form.mode(gutters_text='display')
    gutters_text = schema.Text(
        title=_(u"Gutters Issue"),
        description=_(u"Comments included in letter and email. 50 character limit"),
        required=False,
        max_length=50,
    )

    gutters_rewalk_text = schema.Text(
        title=_(u"Gutters Reinspect Issue"),
        description=_(u"Comments included in letter and email. 50 character limit"),
        required=False,
        max_length=50,
    )

    form.mode(gutters_image='display')
    gutters_image = NamedBlobImage(
        title=_(u"Gutters Photo"),
        description=_(u""),
        required=False,
    )

    gutters_rewalk_image = NamedBlobImage(
        title=_(u"Gutters Re-walk Photo"),
        description=_(u""),
        required=False,
    )

    fieldset('exterior_paint',
        label=u'Exterior Paint',
        description=u'',
        fields=['exterior_paint_cond_remains',
                'exterior_paint_action_required',
                'exterior_paint_text',
                'exterior_paint_rewalk_text',
                'exterior_paint_image',
                'exterior_paint_rewalk_image']
    )

    form.widget(exterior_paint_cond_remains=RadioFieldWidget)
    exterior_paint_cond_remains = schema.Choice(
        title=_(u'Exterior Paint Condition Remains?'),
        description=_(u''),
        source=SimpleVocabulary([SimpleTerm(value=True,
                                            title=u"Yes"),
                                 SimpleTerm(value=False,
                                            title=U"No")]),
        required=False,
    )

    form.mode(exterior_paint_action_required='display')
    exterior_paint_action_required = schema.Choice(
        title=_(u'Exterior Paint Required Action'),
        description=_(u''),
        vocabulary=REQUIRED_ACTION_VOCABULARY,
        required=False,
    )

    form.mode(exterior_paint_text='display')
    exterior_paint_text = schema.Text(
        title=_(u"Exterior Paint Issue"),
        description=_(u"Comments included in letter and email. 50 character limit"),
        required=False,
        max_length=50,
    )

    exterior_paint_rewalk_text = schema.Text(
        title=_(u"Exterior Paint Reinspect Issue"),
        description=_(u"Comments included in letter and email. 50 character limit"),
        required=False,
        max_length=50,
    )

    form.mode(exterior_paint_image='display')
    exterior_paint_image = NamedBlobImage(
        title=_(u"Exterior Paint Photo"),
        description=_(u""),
        required=False,
    )

    exterior_paint_rewalk_image = NamedBlobImage(
        title=_(u"Exterior Paint Re-walk Photo"),
        description=_(u""),
        required=False,
    )

    fieldset('decks',
        label=u'Decks',
        description=u'',
        fields=['decks_cond_remains',
                'decks_action_required',
                'decks_text',
                'decks_rewalk_text',
                'decks_image',
                'decks_rewalk_image']
    )

    form.widget(decks_cond_remains=RadioFieldWidget)
    decks_cond_remains = schema.Choice(
        title=_(u'Decks Condition Remains?'),
        description=_(u''),
        source=SimpleVocabulary([SimpleTerm(value=True,
                                            title=u"Yes"),
                                 SimpleTerm(value=False,
                                            title=U"No")]),
        required=False,
    )

    form.mode(decks_action_required='display')
    decks_action_required = schema.Choice(
        title=_(u'Decks Required Action'),
        description=_(u''),
        vocabulary=REQUIRED_ACTION_VOCABULARY,
        required=False,
    )

    form.mode(decks_text='display')
    decks_text = schema.Text(
        title=_(u"Decks Issue"),
        description=_(u"Comments included in letter and email. 50 character limit"),
        required=False,
        max_length=50,
    )

    decks_rewalk_text = schema.Text(
        title=_(u"Decks Reinspect Issue"),
        description=_(u"Comments included in letter and email. 50 character limit"),
        required=False,
        max_length=50,
    )

    form.mode(decks_image='display')
    decks_image = NamedBlobImage(
        title=_(u"Decks Photo"),
        description=_(u""),
        required=False,
    )

    decks_rewalk_image = NamedBlobImage(
        title=_(u"Decks Re-walk Photo"),
        description=_(u""),
        required=False,
    )

    fieldset('entry_way',
        label=u'Entry Way',
        description=u'',
        fields=['entry_way_cond_remains',
                'entry_way_action_required',
                'entry_way_text',
                'entry_way_rewalk_text',
                'entry_way_image',
                'entry_way_rewalk_image']
    )

    form.widget(entry_way_cond_remains=RadioFieldWidget)
    entry_way_cond_remains = schema.Choice(
        title=_(u'Entry Way Condition Remains?'),
        description=_(u''),
        source=SimpleVocabulary([SimpleTerm(value=True,
                                            title=u"Yes"),
                                 SimpleTerm(value=False,
                                            title=U"No")]),
        required=False,
    )

    form.mode(entry_way_action_required='display')
    entry_way_action_required = schema.Choice(
        title=_(u'Entry Way Required Action'),
        description=_(u''),
        vocabulary=REQUIRED_ACTION_VOCABULARY,
        required=False,
    )

    form.mode(entry_way_text='display')
    entry_way_text = schema.Text(
        title=_(u"Entry Way Issue"),
        description=_(u"Comments included in letter and email. 50 character limit"),
        required=False,
        max_length=50,
    )

    entry_way_rewalk_text = schema.Text(
        title=_(u"Entry Way Reinspect Issue"),
        description=_(u"Comments included in letter and email. 50 character limit"),
        required=False,
        max_length=50,
    )

    form.mode(entry_way_image='display')
    entry_way_image = NamedBlobImage(
        title=_(u"Entry Way Photo"),
        description=_(u""),
        required=False,
    )

    entry_way_rewalk_image = NamedBlobImage(
        title=_(u"Entry Way Re-walk Photo"),
        description=_(u""),
        required=False,
    )

    fieldset('paved_surfaces',
        label=u'Paved Surfaces',
        description=u'',
        fields=['paved_surfaces_cond_remains',
                'paved_surfaces_action_required',
                'paved_surfaces_text',
                'paved_surfaces_rewalk_text',
                'paved_surfaces_image',
                'paved_surfaces_rewalk_image']
    )

    form.widget(paved_surfaces_cond_remains=RadioFieldWidget)
    paved_surfaces_cond_remains = schema.Choice(
        title=_(u'Paved Surfaces Condition Remains?'),
        description=_(u''),
        source=SimpleVocabulary([SimpleTerm(value=True,
                                            title=u"Yes"),
                                 SimpleTerm(value=False,
                                            title=U"No")]),
        required=False,
    )

    form.mode(paved_surfaces_action_required='display')
    paved_surfaces_action_required = schema.Choice(
        title=_(u'Paved Surfaces Required Action'),
        description=_(u''),
        vocabulary=REQUIRED_ACTION_VOCABULARY,
        required=False,
    )

    form.mode(paved_surfaces_text='display')
    paved_surfaces_text = schema.Text(
        title=_(u"Paved Surfaces Issue"),
        description=_(u"Comments included in letter and email. 50 character limit"),
        required=False,
        max_length=50,
    )

    paved_surfaces_rewalk_text = schema.Text(
        title=_(u"Paved Surfaces Reinspect Issue"),
        description=_(u"Comments included in letter and email. 50 character limit"),
        required=False,
        max_length=50,
    )

    form.mode(paved_surfaces_image='display')
    paved_surfaces_image = NamedBlobImage(
        title=_(u"Paved Surfaces Photo"),
        description=_(u""),
        required=False,
    )

    paved_surfaces_rewalk_image = NamedBlobImage(
        title=_(u"Paved Surfaces Re-walk Photo"),
        description=_(u""),
        required=False,
    )

    fieldset('landscaping',
        label=u'Landscaping',
        description=u'',
        fields=['landscaping_cond_remains',
                'landscaping_action_required',
                'landscaping_text',
                'landscaping_rewalk_text',
                'landscaping_image',
                'landscaping_rewalk_image']
    )

    form.widget(landscaping_cond_remains=RadioFieldWidget)
    landscaping_cond_remains = schema.Choice(
        title=_(u'Landscaping Condition Remains?'),
        description=_(u''),
        source=SimpleVocabulary([SimpleTerm(value=True,
                                            title=u"Yes"),
                                 SimpleTerm(value=False,
                                            title=U"No")]),
        required=False,
    )

    form.mode(landscaping_action_required='display')
    landscaping_action_required = schema.Choice(
        title=_(u'Landscaping Required Action'),
        description=_(u''),
        vocabulary=REQUIRED_ACTION_VOCABULARY,
        required=False,
    )

    form.mode(landscaping_text='display')
    landscaping_text = schema.Text(
        title=_(u"Landscaping Issue"),
        description=_(u"Comments included in letter and email. 50 character limit"),
        required=False,
        max_length=50,
    )

    landscaping_rewalk_text = schema.Text(
        title=_(u"Landscaping Reinspect Issue"),
        description=_(u"Comments included in letter and email. 50 character limit"),
        required=False,
        max_length=50,
    )

    form.mode(landscaping_image='display')
    landscaping_image = NamedBlobImage(
        title=_(u"Landscaping Photo"),
        description=_(u""),
        required=False,
    )

    landscaping_rewalk_image = NamedBlobImage(
        title=_(u"Landscaping Re-walk Photo"),
        description=_(u""),
        required=False,
    )

    fieldset('general_maintenance',
        label=u'General Maintenance',
        description=u'',
        fields=['general_maintenance_cond_remains',
                'general_maintenance_action_required',
                'general_maintenance_text',
                'general_maintenance_rewalk_text',
                'general_maintenance_image',
                'general_maintenance_rewalk_image']
    )

    form.widget(general_maintenance_cond_remains=RadioFieldWidget)
    general_maintenance_cond_remains = schema.Choice(
        title=_(u'General Maintenance Condition Remains?'),
        description=_(u''),
        source=SimpleVocabulary([SimpleTerm(value=True,
                                            title=u"Yes"),
                                 SimpleTerm(value=False,
                                            title=U"No")]),
        required=False,
    )

    form.mode(general_maintenance_action_required='display')
    general_maintenance_action_required = schema.Choice(
        title=_(u'General Maintenance Required Action'),
        description=_(u''),
        vocabulary=REQUIRED_ACTION_VOCABULARY,
        required=False,
    )

    form.mode(general_maintenance_text='display')
    general_maintenance_text = schema.Text(
        title=_(u"General Maintenance Issue"),
        description=_(u""),
        required=False,
        max_length=50,
    )

    general_maintenance_rewalk_text = schema.Text(
        title=_(u"General Maintenance Reinspect Issue"),
        description=_(u"Comments included in letter and email. 50 character limit"),
        required=False,
        max_length=50,
    )

    form.mode(general_maintenance_image='display')
    general_maintenance_image = NamedBlobImage(
        title=_(u"General Maintenance Photo"),
        description=_(u""),
        required=False,
    )

    general_maintenance_rewalk_image = NamedBlobImage(
        title=_(u"General Maintenance Re-walk Photo"),
        description=_(u""),
        required=False,
    )

    form.mode(redirect_assignments='hidden')
    redirect_assignments = schema.TextLine(title=_(u"Redirect Assignments"),
                                           required=False)

    @invariant
    def confirmAction(data):
        context = data.__context__
        context_state = api.content.get_state(obj=context)
        for fieldset_id in IHOAHOUSEINSPECTION_FIELDSETS:
            if hasattr(data, '%s_text' % fieldset_id):
                if getattr(data, '%s_text' % fieldset_id):
                    action_required = getattr(data, '%s_action_required' % fieldset_id)
                    if not action_required:
                        error_keys = fieldset_id.split('_')
                        error_str = ' '.join(error_keys)
                        raise Invalid(_(u"You must provide a required action for %s." % error_str))
            if hasattr(data, '%s_action_required' % fieldset_id):
                if getattr(data, '%s_action_required' % fieldset_id):
                    failure_text = getattr(data, '%s_text' % fieldset_id)
                    if not failure_text:
                        error_keys = fieldset_id.split('_')
                        error_str = ' '.join(error_keys)
                        raise Invalid(_(u"You must provide a description of the issue if action is required for: %s." % error_str))

    @invariant
    def conditionPerists(data):
        context = data.__context__
        context_state = api.content.get_state(obj=context)
        if context_state in ['failed_final', 'remedied']:
            for fieldset_id in IHOAHOUSEINSPECTION_FIELDSETS:
                if hasattr(data, '%s_cond_remains' % fieldset_id):
                    if getattr(data, '%s_cond_remains' % fieldset_id):
                        rewalk_txt = getattr(data, '%s_rewalk_text' % fieldset_id)
                        rewalk_image = getattr(data, '%s_rewalk_image' % fieldset_id)
                        if not rewalk_txt:
                            error_keys = fieldset_id.split('_')
                            error_str = ' '.join(error_keys)
                            raise Invalid(_(u"You must provide an a reason the condition persists for %s." % error_str))
                        if not rewalk_image:
                            error_keys = fieldset_id.split('_')
                            error_str = ' '.join(error_keys)
                            raise Invalid(_(u"You must provide an a photo of the condition for %s." % error_str))

    @invariant
    def verifyCondition(data):
        context = data.__context__
        context_state = api.content.get_state(obj=context)
        if context_state in ['failed_final', 'remedied']:
            for fieldset_id in IHOAHOUSEINSPECTION_FIELDSETS:
                if hasattr(data, '%s_cond_remains' % fieldset_id):
                    initial_text = getattr(data, '%s_text' % fieldset_id)
                    if initial_text and not getattr(data, '%s_cond_remains' % fieldset_id):
                        error_keys = fieldset_id.split('_')
                        error_str = ' '.join(error_keys)
                        raise Invalid(_(u"You must provide an image for %s." % error_str))

    @invariant
    def imagesRequired(data):
        context = data.__context__
        context_state = api.content.get_state(obj=context)

        for fieldset_id in IHOAHOUSEINSPECTION_FIELDSETS:
            if context_state == 'failed_initial':
                if getattr(data, '%s_text' % fieldset_id):
                    image = getattr(data, '%s_image' % fieldset_id)
                    if not image:
                        error_keys = fieldset_id.split('_')
                        error_str = ' '.join(error_keys)
                        raise Invalid(_(u"You must provide an image for %s." % error_str))
            if context_state == 'failed_final':
                if getattr(data, '%s_rewalk_text' % fieldset_id):
                    image = getattr(data, '%s_rewalk_image' % fieldset_id)
                    if not image:
                        error_keys = fieldset_id.split('_')
                        error_str = ' '.join(error_keys)
                        raise Invalid(_(u"You must provide an image for %s." % error_str))
class IBoosterProposalForm(form.Schema):
    """
    Uses IBoosterClub Schema
    """
    fieldset('booster_club_information',
             label=u'Booster Club Information',
             fields=['title', 'booster_organization'])

    title = schema.TextLine(title=_(u"Club Name"), )

    booster_organization = schema.TextLine(title=_(u"LWHS Organization"), )

    fieldset('officer_information',
             label=u'Officer Information',
             description=getOfficerDescription,
             fields=[
                 'club_president',
                 'club_secretary',
                 'club_treasurer',
             ])

    club_president = schema.Choice(
        title=_(u"President"),
        vocabulary=u'docent.group.Booster_Members',
    )

    club_secretary = schema.Choice(
        title=_(u"Secretary"),
        vocabulary=u'docent.group.Booster_Members',
    )

    club_treasurer = schema.Choice(
        title=_(u"Treasurer"),
        vocabulary=u'docent.group.Booster_Members',
    )

    fieldset('advisor_information',
             label=u'Advisor Information',
             description=u'',
             fields=[
                 'club_advisor',
             ])

    club_advisor = schema.Choice(
        title=_(u"LWHS Advisor"),
        vocabulary=u'docent.group.Advisors',
    )

    # fieldset('agreement_upload',
    #     label=u'File',
    #     description=u'<p>1) We still need the paper form completed and uploaded.  Please download the Agreement.</p>'
    #                 u'<p>2) Once completed, please upload the form.</p>',
    #     fields=['agreement_file',]
    # )
    #
    # agreement_file = NamedBlobFile(
    #     title=_(u"File"),
    # )

    fieldset(
        'financial_information',
        label=u'Financial Information',
        description=u'All booster clubs must satisfy the following criteria:',
        fields=[
            'dedicated_checking', 'review_officers', 'review_revenue',
            'review_officer_one', 'review_officer_two'
        ])

    dedicated_checking = schema.Bool(title=_(
        u'1. Maintain a dedicated checking account (opened within 30 days of club approval).'
    ),
                                     description=_(u''),
                                     constraint=validateAccept)

    review_officers = schema.Bool(
        title=_(u'2. Two officers review expenditures.'),
        description=_(u''),
        constraint=validateAccept)

    review_revenue = schema.Bool(title=_(u'3. Two officers review revenues.'),
                                 description=_(u''),
                                 constraint=validateAccept)

    review_officer_one = schema.Choice(
        title=_(u"4. Review Officer One."),
        description=_(
            u"Select the name of of your first review officer. It must match one of "
            u"your club officers."),
        vocabulary=u'docent.group.Booster_Members',
        required=True,
    )

    review_officer_two = schema.Choice(
        title=_(u"5. Review Officer Two."),
        description=_(
            u"Select the name of of your second review officer. It must match one of "
            u"your club officers."),
        vocabulary=u'docent.group.Booster_Members',
        required=True,
    )

    fieldset(
        'agreement_confirmation',
        label=u'Agreement',
        description=_(
            u'I understand and agree to abide by the membership agreement and '
            u'financial reporting requirements'),
        fields=[
            'agreement_bool',
        ])

    agreement_bool = schema.Bool(
        title=_(u'I agree'),
        constraint=validateAccept,
    )

    @invariant
    def officerInvariant(data):
        if data.club_president == data.club_secretary:
            raise Invalid(
                _(u"The club president and secretary cannot be the same individual."
                  ))

    @invariant
    def reviewerInvariant(data):
        if data.review_officer_one == data.review_officer_two:
            raise Invalid(
                _(u"The reviewing officers cannot be the same people."))
        club_officers = [
            data.club_president, data.club_secretary, data.club_treasurer
        ]
        if data.review_officer_one not in club_officers:
            raise Invalid(_(u"Reviewing officer one must a club officer."))
        if data.review_officer_two not in club_officers:
            raise Invalid(_(u"Reviewing officer two must a club officer."))
class IExtraCredits(model.Schema):
    """Class to create CAPS Petition for Excess Credits"""

    title = schema.TextLine(
        title=(u'First and Last Name'),
        description=(u'Please enter your First and Last Name'),
        required=True,
        constraint=name_check_constraint,
    )

    email = schema.TextLine(
        title=(u'Email Address'),
        required=True,
        constraint=email_constraint,
    )

    emplID = schema.TextLine(
        title=(u'Empl ID'),
        description=(u'Enter your CUNYFirst Empl ID'),
        required=True,
        min_length=8,
        max_length=8,
    )

    cellPhoneNumber = schema.TextLine(
        title=(u'Phone Number (Cell)'),
        required=False,
    )

    homePhoneNumber = schema.TextLine(
        title=(u'Phone Number (Home)'),
        required=False,
    )

    address = schema.TextLine(
        title=(u'Address'),
        description=(u'Enter your home address, including apartment number'),
        required=True,
    )

    city = schema.TextLine(
        title=(u'City'),
        required=True,
    )

    zipCode = schema.TextLine(
        title=(u'Zip Code'),
        description=(u'Enter your 5 digit zip code'),
        required=True,
        min_length=5,
        max_length=10,
    )

    birthday = schema.Date(title=(u'Date of Birth'), required=True)

    # Data grid for semester and year
    form.widget(semesterInfo=DataGridFieldFactory)
    # form.widget['semesterInfo'].allow_insert = False
    semesterInfo = schema.List(
        title=(u'Semester'),
        value_type=DictRow(title=(u'Semester and Year'), schema=ISemester),
        required=False,
    )

    form.widget(coursesDropped=DataGridFieldFactory)
    coursesDropped = schema.List(
        title=(u'Courses'),
        value_type=DictRow(title=(u'Courses to be withdrawn from'),
                           schema=ICourses),
        required=False,
    )

    studentStatement = field.NamedBlobFile(
        title=(u'Personal Statement'),
        description=
        (u'Be sure to include a plan detailing how you will manage this courseload'
         ),
        required=True,
    )

    transcript = field.NamedBlobFile(
        title=(u'Transcript'),
        description=(u'Petitions without transcripts will not be considered'),
        required=True)

    supportingDocument = field.NamedBlobFile(
        title=(u'Supporting Document'),
        description=(u'Upload any supporting documentation here'),
        required=False,
    )

    additionalDocuments = field.NamedBlobFile(
        title=(u'Additional Documents'),
        description=(u'Upload additional supporting documentation here'),
        required=False,
    )

    # Create new fieldset for Committee Approval Field
    directives.fieldset('Staff Only', fields=[
        'committeeApproval',
    ])

    # Permissions-dependent field for Committee to see who has
    # note each member's 'vote' on a specific petition
    permission.read_permission(committeeApproval='cmf.ModifyPortalContent')
    permission.write_permission(committeeApproval='cmf.ModifyPortalContent')
    form.widget(committeeApproval=DataGridFieldFactory)
    committeeApproval = schema.List(
        title=(u'Committee Member Votes'),
        value_type=DictRow(title=(u'Please enter your name and vote'),
                           schema=ICommitteeVote),
        # required=True,
    )
class IGradeChange(model.Schema):
    """Class to create Grade Appeal schema"""

    title = schema.TextLine(
        title=(u'Name'),
        description=(u'Please enter your First and Last Name'),
        required=True,
        constraint=name_check_constraint,
    )

    petitionReason = schema.Choice(
        title=(u'Reason for Peition'),
        values=[
            (u"Select One"),
            (u"Extension INC"),
            (u"Grade Appeal"),
            (u"Grade Change"),
            (u"Other")
            ],
        required=True,
        constraint=choice_constraint
    )

    email = schema.TextLine(
        title=(u'Email Address'),
        required=True,
        constraint=email_constraint,
    )

    emplID = schema.TextLine(
        title=(u'Empl ID'),
        description=(u'Enter your CUNYFirst Empl ID'),
        required=True,
        min_length=8,
        max_length=8,
    )

    cellPhoneNumber = schema.TextLine(
        title=(u'Phone Number (Cell)'),
        required=False,
    )

    homePhoneNumber = schema.TextLine(
        title=(u'Phone Number (Home)'),
        required=False,
    )

    address = schema.TextLine(
        title=(u'Address'),
        description=(u'Enter your home address, including apartment number'),
        required=True,
    )

    city = schema.TextLine(
        title=(u'City'),
        required=True,
    )

    zipCode = schema.TextLine(
        title=(u'Zip Code'),
        description=(u'Enter your 5 digit zip code'),
        required=True,
        min_length=5,
        max_length=9,
    )

    birthday = schema.Date(
        title=(u'Date of Birth'),
        required=True
    )

    # Data grid for semester and year
    form.widget(semesterInfo=DataGridFieldFactory)
    semesterInfo = schema.List(
        title=(u'For what semester'),
        value_type=DictRow(title=(u'Semester and Year'), schema=ISemester),
        required=False,
    )

    courseNumSection = schema.TextLine(
        title=_(u'Course Number and Section'),
        description=(u'Ex: CHEM 101'),
        required=True,
    )

    professor = schema.TextLine(
        title=(u'Course Instructor'),
        description=(u'Instructor of the afforementioned course'),
        required=True,
    )

    studentStatement = field.NamedBlobFile(
        title=(u'Personal Statement'),
        required=True,
    )

    supportingDocument = field.NamedBlobFile(
        title=(u'Supporting Document'),
        description=(u'Upload any supporting documentation here'),
        required=False,
    )

    # Create new fieldset for Committee Approval Field
    directives.fieldset(
        'Staff Only',
        fields=[
            'committeeApproval',
            ]
        )

    # Permissions-dependent field for Committee to see who has
    # note each member's 'vote' on a specific petition
    permission.read_permission(committeeApproval='cmf.ModifyPortalContent')
    permission.write_permission(committeeApproval='cmf.ModifyPortalContent')
    form.widget(committeeApproval=DataGridFieldFactory)
    committeeApproval = schema.List(
        title=(u'Committee Member Votes'),
        value_type=DictRow(
            title=(u'Please enter your name and vote'),
            schema=ICommitteeVote
            ),
        # required=True,
    )
Exemple #9
0
class IPatientSchema(model.Schema):
    """Patient Content
    """

    directives.omitted("title")
    title = schema.TextLine(title=u"Title", required=False)

    directives.omitted("description")
    description = schema.Text(title=u"Description", required=False)

    # contact fieldset
    fieldset("contact", label=u"Contact", fields=["email", "phone", "mobile"])

    # address fieldset
    fieldset("address",
             label=u"Address",
             fields=["city", "zipcode", "address", "country"])

    # Default

    mrn = schema.TextLine(
        title=_(u"label_patient_mrn", default=u"Medical Record #"),
        description=_(u"Patient Medical Record Number"),
        required=True,
    )

    patient_id = schema.TextLine(
        title=_(u"label_patient_id", default=u"ID"),
        description=_(u"Unique Patient ID"),
        required=False,
    )

    firstname = schema.TextLine(
        title=_(u"label_patient_firstname", default=u"Firstname"),
        description=_(u"Patient firstname"),
        required=False,
    )

    lastname = schema.TextLine(
        title=_(u"label_patient_lastname", default=u"Lastname"),
        description=_(u"Patient lastname"),
        required=False,
    )

    gender = schema.Choice(
        title=_(u"label_patient_gender", default=u"Gender"),
        description=_(u"Patient gender"),
        source="senaite.patient.vocabularies.gender",
        default="",
        required=True,
    )

    # Contact

    email = schema.TextLine(
        title=_(u"label_patient_email", default=u"Email"),
        description=_(u"Patient email address"),
        required=False,
    )

    phone = schema.TextLine(
        title=_(u"label_patient_phone", default=u"Phone"),
        description=_(u"Patient phone number"),
        required=False,
    )

    mobile = schema.TextLine(
        title=_(u"label_patient_mobile", default=u"Mobile"),
        description=_(u"Patient mobile phone number"),
        required=False,
    )

    # Address

    address = schema.Text(
        title=_(u"label_patient_address", default=u"Address"),
        description=_(u"Patient address"),
        required=False,
    )

    city = schema.TextLine(
        title=_(u"label_patient_city", default=u"City"),
        description=_(u"Patient city"),
        required=False,
    )

    zipcode = schema.TextLine(
        title=_(u"label_patient_zipcode", default=u"ZIP"),
        description=_(u"Patient ZIP Code"),
        required=False,
    )

    country = schema.Choice(
        title=_(u"label_patient_country", default=u"Country"),
        description=_(u"Patient country"),
        source="senaite.patient.vocabularies.country",
        required=False,
    )

    directives.widget("birthdate",
                      DatetimeWidget,
                      datepicker_nofuture=True,
                      show_time=False)
    birthdate = DatetimeField(
        title=_(u"label_patient_birthdate", default=u"Birthdate"),
        description=_(u"Patient birthdate"),
        required=False,
    )

    @invariant
    def validate_mrn(data):
        """Checks if the patient MRN # is unique
        """
        # https://community.plone.org/t/dexterity-unique-field-validation
        context = getattr(data, "__context__", None)
        if context is not None:
            if context.mrn == data.mrn:
                # nothing changed
                return

        patient = patient_api.get_patient_by_mrn(data.mrn,
                                                 full_object=False,
                                                 include_inactive=True)
        if patient:
            raise Invalid(_("Patient Medical Record # must be unique"))

    @invariant
    def validate_patient_id(data):
        """Checks if the patient ID is unique
        """
        pid = data.patient_id

        # field is not required
        if not pid:
            return

        # https://community.plone.org/t/dexterity-unique-field-validation
        context = getattr(data, "__context__", None)
        if context is not None:
            if context.patient_id == pid:
                # nothing changed
                return

        query = {
            "portal_type": "Patient",
            "patient_id": pid,
            "is_active": True,
        }

        patient = patient_api.patient_search(query)

        if patient:
            raise Invalid(_("Patient ID must be unique"))

    @invariant
    def validate_email(data):
        """Checks if the email is correct
        """
        if not data.email:
            return
        if not is_valid_email_address(data.email):
            raise Invalid(_("Patient email is invalid"))
Exemple #10
0
class IHomePage(Schema):
    """Marker for homepage schema"""

    # Download

    fieldset('Download',
             label=u'Download',
             fields=[
                 'download_title',
                 'download_text',
                 'download_button_text',
                 'download_url',
                 'download_below_button_text',
             ])
    download_title = schema.TextLine(
        title=u"Title",
        required=True,
    )
    download_text = RichText(
        title=u"Text",
        required=True,
    )
    download_button_text = schema.TextLine(
        title=u"Button text",
        required=True,
    )
    download_url = schema.URI(
        title=u"Download URL",
        required=True,
    )
    download_below_button_text = RichText(
        title=u"Text below download button",
        required=True,
    )

    # Events

    fieldset('Events',
             label=u'Events',
             fields=[
                 'event_title',
                 'event_text',
                 'event_page',
             ])
    event_title = schema.TextLine(
        title=u"Title",
        required=True,
    )
    event_text = RichText(
        title=u"Text",
        required=True,
    )
    event_page = RelationChoice(
        title=u"Events page",
        vocabulary="plone.app.vocabularies.Catalog",
        required=True,
    )

    # Community

    fieldset('Community',
             label=u'Community',
             fields=[
                 'community_title',
                 'community_text',
                 'community_page',
             ])
    community_title = schema.TextLine(
        title=u"Title",
        required=True,
    )
    community_text = RichText(
        title=u"Text",
        required=True,
    )
    community_page = RelationChoice(
        title=u"Community page",
        vocabulary="plone.app.vocabularies.Catalog",
        required=False,
    )

    # Sponsors

    fieldset('Sponsors',
             label=u'Sponsors',
             fields=[
                 'sponsor_title',
                 'sponsor_text',
                 'sponsor_page',
             ])
    sponsor_title = schema.TextLine(
        title=u"Title",
        required=True,
    )
    sponsor_text = RichText(
        title=u"Text",
        required=True,
    )
    sponsor_page = RelationChoice(
        title=u"Sponsor page",
        vocabulary="plone.app.vocabularies.Catalog",
        required=True,
    )
Exemple #11
0
class IMailer(IAction):
    """A form action adapter that will e-mail form input."""

    directives.write_permission(
        recipient_name=config.EDIT_ADDRESSING_PERMISSION)
    directives.read_permission(recipient_name=MODIFY_PORTAL_CONTENT)
    recipient_name = zope.schema.TextLine(
        title=_(u"label_formmailer_recipient_fullname",
                default=u"Recipient's full name"),
        description=_(
            u"help_formmailer_recipient_fullname",
            default=u"The full name of the recipient of the mailed form.",
        ),
        default=u"",
        missing_value=u"",
        required=False,
    )

    directives.write_permission(
        recipient_email=config.EDIT_ADDRESSING_PERMISSION)
    directives.read_permission(recipient_email=MODIFY_PORTAL_CONTENT)
    recipient_email = Email(
        title=_(u"label_formmailer_recipient_email",
                default=u"Recipient's e-mail address"),
        description=_(
            u"help_formmailer_recipient_email",
            default=u"The recipients e-mail address.",
        ),
        required=False,
    )
    fieldset(
        u"addressing",
        label=_("Addressing"),
        fields=[
            "to_field", "cc_recipients", "bcc_recipients", "replyto_field"
        ],
    )
    directives.write_permission(to_field=config.EDIT_ADDRESSING_PERMISSION)
    directives.read_permission(to_field=MODIFY_PORTAL_CONTENT)
    to_field = zope.schema.Choice(
        title=_(u"label_formmailer_to_extract",
                default=u"Extract Recipient From"),
        description=_(
            u"help_formmailer_to_extract",
            default=u"Choose a form field from which you wish to extract "
            u"input for the To header. If you choose anything other "
            u'than "None", this will override the "Recipient\'s " '
            u"e-mail address setting above. Be very cautious about "
            u"allowing unguarded user input for this purpose.",
        ),
        required=False,
        vocabulary="easyform.Fields",
    )

    directives.write_permission(
        cc_recipients=config.EDIT_ADDRESSING_PERMISSION)
    directives.read_permission(cc_recipients=MODIFY_PORTAL_CONTENT)
    cc_recipients = zope.schema.Text(
        title=_(u"label_formmailer_cc_recipients", default=u"CC Recipients"),
        description=_(
            u"help_formmailer_cc_recipients",
            default=u"E-mail addresses which receive a carbon copy.",
        ),
        default=u"",
        missing_value=u"",
        required=False,
    )

    directives.write_permission(
        bcc_recipients=config.EDIT_ADDRESSING_PERMISSION)
    directives.read_permission(bcc_recipients=MODIFY_PORTAL_CONTENT)
    bcc_recipients = zope.schema.Text(
        title=_(u"label_formmailer_bcc_recipients", default=u"BCC Recipients"),
        description=_(
            u"help_formmailer_bcc_recipients",
            default=u"E-mail addresses which receive a blind carbon copy.",
        ),
        default=u"",
        missing_value=u"",
        required=False,
    )

    directives.write_permission(replyto_field=config.EDIT_TECHNICAL_PERMISSION)
    directives.read_permission(replyto_field=MODIFY_PORTAL_CONTENT)
    replyto_field = zope.schema.Choice(
        title=_(u"label_formmailer_replyto_extract",
                default=u"Extract Reply-To From"),
        description=_(
            u"help_formmailer_replyto_extract",
            default=u"Choose a form field from which you wish to extract "
            u"input for the Reply-To header. NOTE: You should "
            u"activate e-mail address verification for the "
            u"designated field.",
        ),
        required=False,
        vocabulary="easyform.Fields",
    )
    fieldset(
        u"message",
        label=PMF("Message"),
        fields=[
            "msg_subject",
            "subject_field",
            "body_pre",
            "body_post",
            "body_footer",
            "showAll",
            "showFields",
            "includeEmpties",
            "sendCSV",
            "sendXML",
        ],
    )
    directives.read_permission(msg_subject=MODIFY_PORTAL_CONTENT)
    msg_subject = zope.schema.TextLine(
        title=_(u"label_formmailer_subject", default=u"Subject"),
        description=_(
            u"help_formmailer_subject",
            default=u""
            u"Subject line of message. This is used if you "
            u"do not specify a subject field or if the field "
            u"is empty.",
        ),
        default=u"Form Submission",
        missing_value=u"",
        required=False,
    )

    directives.write_permission(subject_field=config.EDIT_ADVANCED_PERMISSION)
    directives.read_permission(subject_field=MODIFY_PORTAL_CONTENT)
    subject_field = zope.schema.Choice(
        title=_(u"label_formmailer_subject_extract",
                default=u"Extract Subject From"),
        description=_(
            u"help_formmailer_subject_extract",
            default=u""
            u"Choose a form field from which you wish to extract "
            u"input for the mail subject line.",
        ),
        required=False,
        vocabulary="easyform.Fields",
    )
    directives.read_permission(body_pre=MODIFY_PORTAL_CONTENT)
    directives.widget("body_pre", TextAreaWidget)

    body_pre = RichText(
        title=_(u"label_formmailer_body_pre", default=u"Body (prepended)"),
        description=_(
            u"help_formmailer_body_pre",
            default=u"Text prepended to fields listed in mail-body",
        ),
        default=u"",
        missing_value=u"",
        default_mime_type="text/x-web-intelligent",
        allowed_mime_types=("text/x-web-intelligent", ),
        output_mime_type="text/x-html-safe",
        required=False,
    )
    directives.read_permission(body_post=MODIFY_PORTAL_CONTENT)
    directives.widget("body_post", TextAreaWidget)
    body_post = RichText(
        title=_(u"label_formmailer_body_post", default=u"Body (appended)"),
        description=_(
            u"help_formmailer_body_post",
            default=u"Text appended to fields listed in mail-body",
        ),
        default=u"",
        missing_value=u"",
        default_mime_type="text/x-web-intelligent",
        allowed_mime_types=("text/x-web-intelligent", ),
        output_mime_type="text/x-html-safe",
        required=False,
    )
    directives.read_permission(body_footer=MODIFY_PORTAL_CONTENT)
    directives.widget("body_footer", TextAreaWidget)
    body_footer = RichText(
        title=_(u"label_formmailer_body_footer", default=u"Body (signature)"),
        description=_(
            u"help_formmailer_body_footer",
            default=u"Text used as the footer at "
            u"bottom, delimited from the body by a dashed line.",
        ),
        default=u"",
        missing_value=u"",
        default_mime_type="text/x-web-intelligent",
        allowed_mime_types=("text/x-web-intelligent", ),
        output_mime_type="text/x-html-safe",
        required=False,
    )

    directives.read_permission(showAll=MODIFY_PORTAL_CONTENT)
    showAll = zope.schema.Bool(
        title=_(u"label_mailallfields_text", default=u"Include All Fields"),
        description=_(
            u"help_mailallfields_text",
            default=u""
            u"Check this to include input for all fields "
            u"(except label and file fields). If you check "
            u"this, the choices in the pick box below "
            u"will be ignored.",
        ),
        default=True,
        required=False,
    )

    directives.read_permission(showFields=MODIFY_PORTAL_CONTENT)
    showFields = zope.schema.List(
        title=_(u"label_mailfields_text", default=u"Show Responses"),
        description=_(
            u"help_mailfields_text",
            default=u"Pick the fields whose inputs you'd like to include in "
            u"the e-mail.",
        ),
        unique=True,
        required=False,
        value_type=zope.schema.Choice(vocabulary="easyform.Fields"),
    )

    directives.read_permission(includeEmpties=MODIFY_PORTAL_CONTENT)
    includeEmpties = zope.schema.Bool(
        title=_(u"label_mailEmpties_text", default=u"Include Empties"),
        description=_(
            u"help_mailEmpties_text",
            default=u""
            u"Check this to include titles "
            u"for fields that received no input. Uncheck "
            u"to leave fields with no input out of the e-mail.",
        ),
        default=True,
        required=False,
    )

    directives.read_permission(sendCSV=MODIFY_PORTAL_CONTENT)
    sendCSV = zope.schema.Bool(
        title=_(u"label_sendCSV_text", default=u"Send CSV data attachment"),
        description=_(
            u"help_sendCSV_text",
            default=u""
            u"Check this to send a CSV file "
            u"attachment containing the values "
            u"filled out in the form.",
        ),
        default=False,
        required=False,
    )

    directives.read_permission(sendXML=MODIFY_PORTAL_CONTENT)
    sendXML = zope.schema.Bool(
        title=_(u"label_sendXML_text", default=u"Send XML data attachment"),
        description=_(
            u"help_sendXML_text",
            default=u""
            u"Check this to send an XML file "
            u"attachment containing the values "
            u"filled out in the form.",
        ),
        default=False,
        required=False,
    )

    fieldset(u"template",
             label=PMF("Template"),
             fields=["body_pt", "body_type"])
    directives.write_permission(body_pt=config.EDIT_TALES_PERMISSION)
    directives.read_permission(body_pt=MODIFY_PORTAL_CONTENT)
    body_pt = zope.schema.Text(
        title=_(u"label_formmailer_body_pt", default=u"Mail-Body Template"),
        description=_(
            u"help_formmailer_body_pt",
            default=u"This is a Zope Page Template used for rendering of "
            u"the mail-body. You don't need to modify it, but if you "
            u"know TAL (Zope's Template Attribute Language) have "
            u"the full power to customize your outgoing mails.",
        ),
        defaultFactory=default_mail_body,
        missing_value=u"",
    )

    directives.write_permission(body_type=config.EDIT_ADVANCED_PERMISSION)
    directives.read_permission(body_type=MODIFY_PORTAL_CONTENT)
    body_type = zope.schema.Choice(
        title=_(u"label_formmailer_body_type", default=u"Mail Format"),
        description=_(
            u"help_formmailer_body_type",
            default=u"Set the mime-type of the mail-body. Change this "
            u"setting only if you know exactly what you are doing. "
            u"Leave it blank for default behaviour.",
        ),
        default=u"html",
        vocabulary="easyform.MimeList",
    )
    fieldset(u"headers",
             label=_("Headers"),
             fields=["xinfo_headers", "additional_headers"])
    directives.widget(xinfo_headers=CheckBoxFieldWidget)
    directives.write_permission(xinfo_headers=config.EDIT_TECHNICAL_PERMISSION)
    directives.read_permission(xinfo_headers=MODIFY_PORTAL_CONTENT)
    xinfo_headers = zope.schema.List(
        title=_(u"label_xinfo_headers_text", default=u"HTTP Headers"),
        description=_(
            u"help_xinfo_headers_text",
            default=u""
            u"Pick any items from the HTTP headers that "
            u"you'd like to insert as X- headers in the message.",
        ),
        unique=True,
        required=False,
        default=[u"HTTP_X_FORWARDED_FOR", u"REMOTE_ADDR", u"PATH_INFO"],
        missing_value=[u"HTTP_X_FORWARDED_FOR", u"REMOTE_ADDR", u"PATH_INFO"],
        value_type=zope.schema.Choice(vocabulary="easyform.XinfoHeaders"),
    )
    directives.write_permission(
        additional_headers=config.EDIT_TECHNICAL_PERMISSION)
    directives.read_permission(additional_headers=MODIFY_PORTAL_CONTENT)
    additional_headers = zope.schema.List(
        title=_(u"label_formmailer_additional_headers",
                default=u"Additional Headers"),
        description=_(
            u"help_formmailer_additional_headers",
            default=u"Additional e-mail-header lines. Only use "
            u"RFC822-compliant headers.",
        ),
        unique=True,
        required=False,
        value_type=zope.schema.TextLine(title=_(u"extra_header",
                                                default=u"${name} Header",
                                                mapping={u"name": u"HTTP"})),
    )

    fieldset(
        u"overrides",
        label=_("Overrides"),
        fields=[
            "subjectOverride",
            "senderOverride",
            "recipientOverride",
            "ccOverride",
            "bccOverride",
        ],
    )

    directives.write_permission(subjectOverride=config.EDIT_TALES_PERMISSION)
    directives.read_permission(subjectOverride=MODIFY_PORTAL_CONTENT)
    subjectOverride = zope.schema.TextLine(
        title=_(u"label_subject_override_text", default=u"Subject Expression"),
        description=_(
            u"help_subject_override_text",
            default=u"A TALES expression that will be evaluated to override "
            u"any value otherwise entered for the e-mail subject "
            u"header. Leave empty if unneeded. Your expression "
            u"should evaluate as a string. PLEASE NOTE: errors in "
            u"the evaluation of this expression will cause an error "
            u"on form display.",
        ),
        required=False,
        default=u"",
        missing_value=u"",
        constraint=isTALES,
    )

    directives.write_permission(senderOverride=config.EDIT_TALES_PERMISSION)
    directives.read_permission(senderOverride=MODIFY_PORTAL_CONTENT)
    senderOverride = zope.schema.TextLine(
        title=_(u"label_sender_override_text", default=u"Sender Expression"),
        description=_(
            u"help_sender_override_text",
            default=u"A TALES expression that will be evaluated to override "
            u'the "From" header. Leave empty if unneeded. '
            u"Your expression should evaluate as a string. "
            u"PLEASE NOTE: errors in the evaluation of this "
            u"expression will cause an error on form display.",
        ),
        required=False,
        default=u"",
        missing_value=u"",
        constraint=isTALES,
    )

    directives.write_permission(recipientOverride=config.EDIT_TALES_PERMISSION)
    directives.read_permission(recipientOverride=MODIFY_PORTAL_CONTENT)
    recipientOverride = zope.schema.TextLine(
        title=_(u"label_recipient_override_text",
                default=u"Recipient Expression"),
        description=_(
            u"help_recipient_override_text",
            default=u"A TALES expression that will be evaluated to override "
            u"any value otherwise entered for the recipient "
            u"e-mail address. You are strongly cautioned against using"
            u"unvalidated data from the request for this purpose. "
            u"Leave empty if unneeded. Your expression should "
            u"evaluate as a string. PLEASE NOTE: errors in the "
            u"evaluation of this expression will cause "
            u"an error on form display.",
        ),
        required=False,
        default=u"",
        missing_value=u"",
        constraint=isTALES,
    )

    directives.write_permission(ccOverride=config.EDIT_TALES_PERMISSION)
    directives.read_permission(ccOverride=MODIFY_PORTAL_CONTENT)
    ccOverride = zope.schema.TextLine(
        title=_(u"label_cc_override_text", default=u"CC Expression"),
        description=_(
            u"help_cc_override_text",
            default=u"A TALES expression that will be evaluated to override "
            u"any value otherwise entered for the CC list. You are "
            u"strongly cautioned against using unvalidated data from "
            u"the request for this purpose. Leave empty if unneeded. "
            u"Your expression should evaluate as a sequence of "
            u"strings. PLEASE NOTE: errors in the evaluation of this "
            u"expression will cause an error on form display.",
        ),
        required=False,
        default=u"",
        missing_value=u"",
        constraint=isTALES,
    )

    directives.write_permission(bccOverride=config.EDIT_TALES_PERMISSION)
    directives.read_permission(bccOverride=MODIFY_PORTAL_CONTENT)
    bccOverride = zope.schema.TextLine(
        title=_(u"label_bcc_override_text", default=u"BCC Expression"),
        description=_(
            u"help_bcc_override_text",
            default=u"A TALES expression that will be evaluated to override "
            u"any value otherwise entered for the BCC list. "
            u"You are strongly cautioned against using "
            u"unvalidated data from the request for this purpose. "
            u"Leave empty if unneeded. Your expression should "
            u"evaluate as a sequence of strings. PLEASE NOTE: errors "
            u"in the evaluation of this expression will cause "
            u"an error on form display.",
        ),
        required=False,
        default=u"",
        missing_value=u"",
        constraint=isTALES,
    )
Exemple #12
0
class ITeacher(model.Schema):
    """ Marker interface and Dexterity Python Schema for Teacher
    """

    title = schema.TextLine(
        title=_(u"Teacher Name."),
        required=True,
    )

    activation = schema.Bool(
        title=_(u"Activation"),
        default=True,
        required=True,
    )

    isMember = schema.Bool(
        title=_(u"Is Member"),
        default=False,
        required=True,
    )

    idCardNo = schema.TextLine(
        title=_(u"Id Card Number."),
        required=True,
    )

    teacherSN = schema.TextLine(
        title=_(u"Teacher Serial Number."),
        required=False,
    )

    birthday = schema.Date(
        title=_(u"Birthday"),
        required=False,
    )

    homePhone = schema.TextLine(
        title=_(u"Home Phone Number."),
        required=False,
    )

    cellPhone = schema.TextLine(
        title=_(u"Cell Phone Number."),
        required=False,
    )

    fax = schema.TextLine(
        title=_(u"Fax Number."),
        required=False,
    )

    email = schema.TextLine(
        title=_(u"Email."),
        required=False,
    )

    idCardAddr = schema.TextLine(
        title=_(u"ID Card Address."),
        required=False,
    )

    contactAddr = schema.TextLine(
        title=_(u"Contact Address."),
        required=False,
    )

    edu_1 = schema.TextLine(
        title=_(u"Education 1."),
        required=False,
    )

    dep_1 = schema.TextLine(
        title=_(u"Department 1."),
        required=False,
    )

    degree_1 = schema.TextLine(
        title=_(u"Degree 1."),
        required=False,
    )

    gradYear_1 = schema.Int(
        title=_(u"Graduation Year 1."),
        min=1900,
        max=2100,
        required=False,
    )

    gradMonth_1 = schema.Int(
        title=_(u"Graduation Month 1."),
        min=1,
        max=12,
        required=False,
    )

    edu_2 = schema.TextLine(
        title=_(u"Education 2."),
        required=False,
    )

    dep_2 = schema.TextLine(
        title=_(u"Department 2."),
        required=False,
    )

    degree_2 = schema.TextLine(
        title=_(u"Degree 2."),
        required=False,
    )

    gradYear_2 = schema.Int(
        title=_(u"Graduation Year 2."),
        min=1900,
        max=2100,
        required=False,
    )

    gradMonth_2 = schema.Int(
        title=_(u"Graduation Month 2."),
        min=1,
        max=12,
        required=False,
    )

    edu_3 = schema.TextLine(
        title=_(u"Education 3."),
        required=False,
    )

    dep_3 = schema.TextLine(
        title=_(u"Department 3."),
        required=False,
    )

    degree_3 = schema.TextLine(
        title=_(u"Degree 3."),
        required=False,
    )

    gradYear_3 = schema.Int(
        title=_(u"Graduation Year 3."),
        min=1900,
        max=2100,
        required=False,
    )

    gradMonth_3 = schema.Int(
        title=_(u"Graduation Month 3."),
        min=1,
        max=12,
        required=False,
    )

    serviceUnit = schema.TextLine(
        title=_(u"Service Unit"),
        required=False,
    )

    serviceDep = schema.TextLine(
        title=_(u"Service Department"),
        required=False,
    )

    currentJob = schema.TextLine(
        title=_(u"Current Job"),
        required=False,
    )

    startWorkDate = schema.Date(
        title=_(u"Start Work Date"),
        required=False,
    )

    unitPhone = schema.TextLine(
        title=_(u"Unit Phone"),
        required=False,
    )

    personExp = schema.Text(
        title=_(u"Person Experience"),
        required=False,
    )

    license = schema.Text(
        title=_(u"Person License"),
        required=False,
    )

    unitAddress = schema.TextLine(
        title=_(u"Service Unit Address"),
        required=False,
    )

    creatUser = schema.TextLine(
        title=_(u"Created User"),
        required=False,
    )

    fieldset(_(u'Teach Related'),
             fields=['teachSubjects', 'teachTrainingCenter'])
    teachSubjects = RelationList(
        title=_(u'Teach Subjects'),
        default=[],
        required=False,
        value_type=RelationChoice(
            title=_(u"Subject"),
            source=CatalogSource(Type='Subject',
                                 path='/cshm/resource/course_template'),
        ))

    teachTrainingCenter = RelationList(
        title=_(u'Teach Training Center'),
        default=[],
        required=False,
        value_type=RelationChoice(
            title=_(u"Training Center"),
            source=CatalogSource(Type='TrainingCenter',
                                 path='/cshm/resource/training_center'),
        ))
Exemple #13
0
class ICourse(model.Schema):
    """
    id = schema.TextLine(
        title=_(u'CoStudy Course Id'),
        required=True,
    )
    """

    title = schema.TextLine(
        title=_(u'CoStudy Course Id'),
        required=True,
    )

    form.mode(description='hidden')
    description = schema.Text(
        title=_(u'CoStudy Course Description'),
        required=False,
    )

    timeSection = schema.TextLine(
        title=_(u'Class Time Section'),
        required=False,
    )

    vMeetingRoom = schema.TextLine(
        title=_(u'Virtual Meeting Room'),
        required=False,
    )

    local_language = schema.TextLine(
        title=_(u'Local Language'),
        required=False,
    )

    teacher = RelationChoice(
        title=_(u'Teacher'),
        source=CatalogSource(portal_type='Teacher'),
        required=False,
    )

    school = RelationList(
        title=_(u'Alliance Schools'),
        value_type=RelationChoice(
            title=u"School",
            source=CatalogSource(portal_type=['School', 'Folder'])),
        required=False,
    )

    hire_school = RelationChoice(
        title=_(u'Hire School'),
        source=CatalogSource(portal_type=['School', 'Folder']),
        required=False,
    )

    studentList = schema.Text(
        title=_(u'Student List'),
        description=_(u'format: city,school_name,student_name'),
        required=False,
    )

    #    form.mode(place='hidden')
    place = schema.TextLine(
        title=_(u'Place of Study'),
        required=False,
    )

    form.mode(course_date='hidden')
    course_date = schema.TextLine(
        title=_(u'Course Date'),
        required=False,
    )

    form.mode(course_time='hidden')
    course_time = schema.TextLine(
        title=_(u'Course Time'),
        required=False,
    )

    course_outline = RichText(
        title=_(u'Course Outline'),
        required=False,
    )

    fieldset(_(u'coReading'),
             fields=[
                 'coReadingName', 'coReadingId', 'coReadingBank',
                 'coReadingAccount'
             ])
    coReadingName = schema.TextLine(
        title=_(u'Co Reading Name'),
        required=False,
    )

    coReadingId = schema.TextLine(
        title=_(u'Co Reading Id'),
        required=False,
    )

    coReadingBank = schema.TextLine(
        title=_(u'Co Reading Bank'),
        description=_(u'Bank Name and Branch Name'),
        required=False,
    )

    coReadingAccount = schema.TextLine(
        title=_(u'Co Reading Bank Account'),
        required=False,
    )
class IFoundationMember(Schema):
    """A foundation member"""

    fieldset(
        'Contact',
        label=u'Contact',
        fields=[
            'fname',
            'lname',
            'email',
            'address',
            'city',
            'state',
            'postalCode',
            'country',
            'organization',
        ]
    )

    fieldset(
        'Merit',
        label=u'Merit',
        fields=[
            'merit',
        ]
    )

    fieldset(
        'Survey',
        label=u'Survey',
        fields=[
            'orgsize',
            'ploneuse',
        ]
    )

    fname = schema.TextLine(
        title=_PMF(u'First name', default=u'First name'),
        required=True
    )

    lname = schema.TextLine(
        title=_PMF(u'Last name', default=u'Last name'),
        required=True
    )

    read_permission(email='ploneorg.core.foundationmember.view')
    email = schema.TextLine(
        title=_PMF(u'Email', default=u'Email'),
        required=True
    )

    read_permission(address='ploneorg.core.foundationmember.view')
    address = schema.TextLine(
        title=_PMF(u'Address', default=u'Address'),
        required=True
    )

    city = schema.TextLine(
        title=_PMF(u'City', default=u'City'),
        required=True
    )

    read_permission(state='ploneorg.core.foundationmember.view')
    state = schema.TextLine(
        title=_PMF(u'State', default=u'State'),
        required=True
    )

    read_permission(postalCode='ploneorg.core.foundationmember.view')
    postalCode = schema.TextLine(
        title=_PMF(u'Postal code', default=u'Postal code'),
        required=True
    )

    country = schema.Choice(
        title=_PMF(u'Country', default=u'Country'),
        vocabulary=country_vocabulary,
        required=True
    )

    organization = schema.TextLine(
        title=_PMF(u'Organization', default=u'Organization'),
        required=True
    )

    read_permission(merit='ploneorg.core.foundationmember.view')
    merit = RichText(
        title=_(u'Contributions'),
        description=_(u'Describe your contributions to the project.'),
        required=True
    )

    read_permission(orgsize='ploneorg.core.foundationmember.view')
    orgsize = schema.Int(
        title=_(u'Organization size'),
        description=_(
            u'Number of people in your organization. It\'s fine to estimate.'),
        required=False
    )

    read_permission(ploneuse='ploneorg.core.foundationmember.view')
    ploneuse = RichText(
        title=_(u'Plone use'),
        description=_(u'How is Plone used by your organization?'),
        required=False
    )
Exemple #15
0
class IContactDetails(model.Schema):
    """Contact details behavior"""
    form.write_permission(use_parent_address='collective.contact.core.UseParentAddress')
    fieldset(
        'contact_details',
        label=_(u'Contact details'),
        fields=CONTACT_DETAILS_FIELDS
        )
    fieldset(
        'address',
        label=_(u'Address'),
        fields=('use_parent_address',
                'parent_address') + ADDRESS_FIELDS

        )

    email = schema.TextLine(
        title=_(u"Email"),
        constraint=validateEmail,
        required=False,
        )

    phone = schema.TextLine(
        title=_(u"Phone"),
        required=False,
        constraint=validatePhone,
        )

    cell_phone = schema.TextLine(
        title=_(u"Cell phone"),
        required=False,
        )

    fax = schema.TextLine(
        title=_(u"Fax"),
        required=False,
        )

    website = schema.TextLine(
        title=_(u"Website"),
        required=False,
        )

    im_handle = schema.TextLine(
        title=_('Instant messenger handle'),
        required=False,
        )

    use_parent_address = MasterSelectBoolField(
        title=_("Use the belonging entity address"),
        slave_fields=(
            {'masterSelector': '#form-widgets-IContactDetails-use_parent_address-0, #oform-widgets-use_parent_address-0',
             'name': 'country',
             'action': 'show',
             'hide_values': 0,
             'siblings': True,
            },
            {'masterSelector': '#form-widgets-IContactDetails-use_parent_address-0, #oform-widgets-use_parent_address-0',
             'name': 'region',
             'action': 'show',
             'hide_values': 0,
             'siblings': True,
            },
            {'masterSelector': '#form-widgets-IContactDetails-use_parent_address-0, #oform-widgets-use_parent_address-0',
             'name': 'zip_code',
             'action': 'show',
             'hide_values': 0,
             'siblings': True,
            },
            {'masterSelector': '#form-widgets-IContactDetails-use_parent_address-0, #oform-widgets-use_parent_address-0',
             'name': 'city',
             'action': 'show',
             'hide_values': 0,
             'siblings': True,
            },
            {'masterSelector': '#form-widgets-IContactDetails-use_parent_address-0, #oform-widgets-use_parent_address-0',
             'name': 'number',
             'action': 'show',
             'hide_values': 0,
             'siblings': True,
            },
            {'masterSelector': '#form-widgets-IContactDetails-use_parent_address-0, #oform-widgets-use_parent_address-0',
             'name': 'street',
             'action': 'show',
             'hide_values': 0,
             'siblings': True,
            },
            {'masterSelector': '#form-widgets-IContactDetails-use_parent_address-0, #oform-widgets-use_parent_address-0',
             'name': 'additional_address_details',
             'action': 'show',
             'hide_values': 0,
             'siblings': True,
            },

            {'masterSelector': '#form-widgets-IContactDetails-use_parent_address-0, #oform-widgets-use_parent_address-0',
             'name': 'parent_address',
             'action': 'hide',
             'hide_values': 0,
             'siblings': True,
            },
        ),
        default=True,
        required=False,
    )

    parent_address = RichText(
        default_mime_type='text/html',
        output_mime_type='text/html',
        required=False,
        )
    form.mode(parent_address='display')

    country = schema.TextLine(
        title=_('Country'),
        required=False,
        )

    zip_code = schema.TextLine(
        title=_('Zip Code'),
        required=False,
        )

    city = schema.TextLine(
        title=_('City'),
        required=False,
        )

    street = schema.TextLine(
        title=_('Street'),
        required=False,
        )

    number = schema.TextLine(
        title=_('Number'),
        required=False,
        )

    region = schema.TextLine(
            title=_('Region'),
            required=False,
            )

    additional_address_details = schema.TextLine(
            title=_('Additional address details'),
            required=False,
            )
Exemple #16
0
class IFrontpage(Interface):

    text = RichText(
        title=_(u'frontpage_text_title', default=u'Text'),
        description=_(
            u'frontpage_text_description',
            default=u'Add a description below the carousel.'),  # noqa
        required=False,
    )

    show_title = schema.Bool(
        title=_(u"frontpage_show_title_title", default="Show title"),
        description=_(u'frontpage_show_title_description',
                      default=u'Enable or disable frontpage title.'),  # noqa
        required=False,
        default=True,
    )

    show_description = schema.Bool(
        title=_(u"frontpage_show_description_title",
                default="Show description"),  # noqa
        description=_(
            u'frontpage_show_description_description',
            default=u'Enable or disable frontpage description.'),  # noqa
        required=False,
        default=True,
    )

    show_text = schema.Bool(
        title=_(u"frontpage_show_text_title", default="Show text"),
        description=_(
            u'frontpage_show_text_description',
            default=u'Enable or disable text below carousel.'),  # noqa
        required=False,
        default=True,
    )

    fieldset(
        'carousel',
        label=_(u'frontpage_fieldset_carousel_label',
                default=u'Carousel'),  # noqa
        fields=('show_carousel', 'carousel_animation',
                'carousel_autoscroll'),  # noqa
    )

    show_carousel = schema.Bool(
        title=_(u"frontpage_show_carousel_title", default="Show carousel"),
        description=_(
            u'frontpage_show_carousel_description',
            default=u'Select to display a carousel on the frontpage.'),  # noqa
        required=False,
        default=True,
    )

    carousel_animation = schema.Choice(
        title=_(u'frontpage_carousel_animation_title', default=u'Animation'),
        description=_(
            u'frontpage_carousel_animation_description',
            default=u'Select a transition effect for the carousel.'),  # noqa
        vocabulary=EffectVocabulary,
        required=False,
    )

    carousel_autoscroll = schema.Int(
        title=_(u'frontpage_carousel_autoscroll_title', default=u'Autoscroll'),
        description=_(
            u'frontpage_carousel_autoscroll_description',
            default=u'Select transition delay for the carousel.'),  # noqa
        default=5000,
        required=False,
    )

    fieldset(
        'news',
        label=_(u'frontpage_fieldset_news_label', default=u'News'),
        fields=('show_news', 'limit_news', 'default_image'),
    )

    show_news = schema.Bool(
        title=_(u"frontpage_show_news_title", default="Show news"),
        description=_(
            u'frontpage_show_news_description',
            default=u'Enable to display news tiles below carousel.'),  # noqa
        required=False,
        default=True,
    )

    default_image = NamedBlobImage(
        title=_(u'frontpage_default_image_title',
                default='Default news item image'),  # noqa
        description=_(
            u'frontpage_default_image_description',
            default=u'Upload a default news item image. Recommended.'),  # noqa
        required=False,
    )

    limit_news = schema.Choice(
        title=_(u"frontpage_limit_news_title", default="Number of News items"),
        description=_(u'frontpage_limit_news_description',
                      default=u'Limit the number of displayed items.'),  # noqa
        vocabulary=NewsVocabulary,
        required=False,
        default=6,
    )
Exemple #17
0
class IHOANeighborhood(form.Schema):
    """Uses IDublinCore
    """

    street_addresses = schema.List(
        title=_(u"Street Addresses"),
        description=_(
            u"Please provide a list of street addresses for this neighborhood."
        ),
        value_type=schema.TextLine(),
    )

    city = schema.TextLine(
        title=_(u"City"),
        description=
        _(u"Please provide the city to be used with addresses in this neighborhood."
          ))

    state = schema.TextLine(
        title=_(u"State Abbreviation"),
        description=
        _(u"Please provide the state abbreviation to be used with addresses in this neighborhood."
          ))

    zipcode = schema.TextLine(
        title=_(u"Zipcode"),
        description=_(u"Which zipcode does this neighborhood use?"))

    secretary_email = Email(
        title=_(u"Executive Secretary Email"),
        description=_(u"Email address of the Executive Secretary"),
        required=True,
    )

    fieldset('initial_messages',
             label=u'Initial Inspection Messages',
             description=u'',
             fields=[
                 'initial_pass_message',
                 'initial_fail_message',
             ])

    initial_pass_message = schema.Text(
        title=_(u"Initial Passed Inspection Message"),
        description=
        _(u"This message is used for both email and postal messages to be sent."
          ),
        required=False,
    )

    initial_fail_message = schema.Text(
        title=_(u"Initial Fail Inspection Message"),
        description=
        _(u"This message is used for both email and postal messages to be sent."
          ),
        required=False,
    )

    fieldset('rewalk_messages',
             label=u'Re-walk Inspection Messages',
             description=u'',
             fields=[
                 'rewalk_pass_message',
                 'rewalk_fail_message',
             ])

    rewalk_pass_message = schema.Text(
        title=_(u"Reinspect Passed Inspection Message"),
        description=
        _(u"This message is used for both email and postal messages to be sent."
          ),
        required=False,
    )

    rewalk_fail_message = schema.Text(
        title=_(u"Reinspect Fail Message"),
        description=
        _(u"This message is used for both email and postal messages to be sent."
          ),
        required=False,
    )
Exemple #18
0
class IProduct(model.Schema):
    fieldset(_('Product Info'), fields=['title', 'productNo', 'rating', 'cover', 'description', 'category', 'subcategory', 'relatedProduct'])
    title = schema.TextLine(
        title=_(u'Title'),
        required=True,
    )

    productNo = schema.TextLine(
        title=_(u'Product Number'),
        required=True,
    )
 
    rating = schema.Int(
        title=_(u'Rating'),
        required=True,
        default=4,
        constraint=rating_constraint,
    )

    cover = namedfile.NamedBlobImage(
        title=_(u'Cover Image'),
        required=True,
    )

    description = schema.Text(
        title=_(u'Description'),
        required=False
    )

    category = schema.TextLine(
        title=_(u'Category'),
        required=True
    )

    subcategory = schema.TextLine(
        title=_(u'Subcategory'),
        required=True
    )
    
    relatedProduct = RelationList(
        title=_(u"Related Product"),
        default=[],
        value_type=RelationChoice(
            title=_(u"Related"),
            source=CatalogSource(portal_type='Product')
        ),
        required=False,
    )

    @invariant
    def price_invariant(data):
        if data.price < data.salePrice:
            raise Invalid(_(u'The sale price is bigger than price!'))
        if data.price < data.disc_amount:
            raise Invalid(_(u'The Discount Amount is bigger than price!'))

    fieldset(_('More Info'), fields=['brand', 'productCode', 'availability', 'downloadFile', 'feature', 'specification'])
    brand = schema.TextLine(
        title=_(u'Brand'),
        required=True
    )

    productCode = schema.TextLine(
        title=_(u'Product Code'),
        required=False
    )

    availability = schema.Bool(
        title=(u'Availability'),
	default=True,
        required=False
    )

    downloadFile = namedfile.NamedBlobFile(
        title=_(u'Download File'),
        required=False,
    )

    feature = RichText(
        title=_(u'Feature'),
        required=False
    )

    specification = schema.List(
        title=_(u'specification'),
        description=_(u'ex. clockspeed:100mhz'),
        value_type=schema.TextLine(),
        required=False,
    )

    fieldset(_('Product Price'), fields=['price', 'salePrice', 'l_c_price', 'l_b_price', 'l_a_price', 'disc_amount'])
    price = schema.Int(
        title=_(u'Price'),
        description=_(u'Enter USD$'),
        required=True,
    )

    salePrice = schema.Int(
        title=_(u'Sale Price'),
        description=_(u'Enter USD$'),
        required=False
    )

    l_c_price = schema.Int(
        title=_(u'Level C Group Price'),
        description=_(u'Enter USD$'),
        required=False
    )
    
    l_b_price = schema.Int(
        title=_(u'Level B Group Price'),
        description=_(u'Enter USD$'),
        required=False
    )

    l_a_price = schema.Int(
        title=_(u'Level A Group Price'),
        description=_(u'Enter USD$'),
        required=False
    )

    disc_amount = schema.Int(
        title=_(u'Discount Amount'),
        description=_(u'Enter USD$'),
        default=0,
        min=0,
        required=False
    )

    fieldset(_('Slider'), fields=['img1', 'img2', 'img3', 'img4'])
    img1 = NamedBlobImage(
        title=_(u"Slider Image1"),
        required=False,
    )

    img2 = NamedBlobImage(
        title=_(u"Slider Image2"),
        required=False,
    )

    img3 = NamedBlobImage(
        title=_(u"Slider Image3"),
        required=False,
    )

    img4 = NamedBlobImage(
        title=_(u"Slider Image4"),
        required=False,
    )
    
    fieldset(_('Index Information'), fields=['indexCategory', 'bestSeller', 'timeLimit'])
    
    directives.widget(indexCategory=CheckBoxFieldWidget)
    indexCategory = schema.List(
        title=_(u"Index Category"),
        description=_(u'Select the classification of this product (Most View, Special, Latest)'),
        value_type=schema.Choice(
            vocabulary=categoryVocabulary,
        ),
        required=False,
    )

    bestSeller = schema.Bool(
        title=_(u"Best Seller"),
        required=False,
    )

    timeLimit = schema.Datetime(
        title=_(u'Time Limit'),
        description=_(u'If you want to set the time limit, you must put this product in the "Promotions" folder'),
        constraint=future_date,
        required=False,
    )
Exemple #19
0
class IProduct(model.Schema):
    title = schema.TextLine(
        title=_(u'Name'),
        required=True,
    )

    modelNo = schema.TextLine(
        title=_(u'Model No'),
        required=False,
    )

    beApplicable = schema.TextLine(
        title=_(u'Be Applicable'),
        required=False,
    )

    characteristic = schema.TextLine(
        title=_(u'Characteristic'),
        required=False,
    )

    description = schema.Text(
        title=_(u'Description'),
        required=False,
    )

    body = RichText(
        title=_(u'Product Description'),
        required=False,
    )

    cover = NamedBlobImage(
        title=_(u"Cover Image"),
        required=True,
    )

    category = schema.TextLine(
	title=_(u'Category'),
	required=True,
    )

    subject = schema.TextLine(
	title=_(u'Subject'),
	required=True,
    )

    fieldset(_('Slider'), fields=['img1', 'img2', 'img3', 'img4', 'img5'])
    img1 = NamedBlobImage(
        title=_(u"Slider Image1"),
        required=False,
    )

    img2 = NamedBlobImage(
        title=_(u"Slider Image2"),
        required=False,
    )

    img3 = NamedBlobImage(
        title=_(u"Slider Image3"),
        required=False,
    )

    img4 = NamedBlobImage(
        title=_(u"Slider Image4"),
        required=False,
    )

    img5 = NamedBlobImage(
        title=_(u"Slider Image5"),
        required=False,
    )
class IHOAHouse(form.Schema):
    """
    """

    fieldset('house_information',
             label=u'House Information',
             description=u'Home details',
             fields=[
                 'title',
                 'div',
                 'lot',
                 'street_number',
                 'street_address',
                 'city',
                 'state',
                 'zipcode',
                 'picture',
                 'geo_coordinates_lat',
                 'geo_coordinates_long',
                 'last_sale_date',
                 'rental',
             ])

    form.mode(title='hidden')
    title = schema.TextLine(
        title=_(u"Title"),
        required=False,
    )

    div = schema.Choice(
        title=_(u"Division Number"),
        description=_(u""),
        vocabulary=u'docent.hoa.div_numbers',
        required=False,
    )

    lot = schema.Choice(
        title=_(u"Lot Number"),
        description=_(u""),
        vocabulary=u'docent.hoa.lot_numbers',
        required=False,
    )

    street_number = schema.TextLine(title=_(u"Street Number"),
                                    description=_(u""))

    street_address = schema.Choice(
        title=_(u"Street Address"),
        description=_(u""),
        vocabulary=u'docent.hoa.street_addresses',
    )

    form.mode(city='hidden')
    city = schema.TextLine(
        title=_(u"City"),
        description=
        _(u"Please provide the city to be used with addresses in this neighborhood."
          ),
        defaultFactory=getNeighborhoodCity,
    )

    form.mode(state='hidden')
    state = schema.TextLine(
        title=_(u"State Abbreviation"),
        description=
        _(u"Please provide the state abbreviation to be used with addresses in this neighborhood."
          ),
        defaultFactory=getNeighborhoodState,
    )

    form.mode(zipcode='hidden')
    zipcode = schema.TextLine(
        title=_(u"Zipcode"),
        description=_(u"Which zipcode does this neighborhood use?"),
        defaultFactory=getNeighborhoodZipCode,
    )

    picture = NamedBlobImage(
        title=_(u"Upload an image of the home."),
        required=False,
    )

    geo_coordinates_lat = schema.TextLine(
        title=_(u"Geo Coordinates Latitude"),
        description=_(u""),
        required=False,
    )

    geo_coordinates_long = schema.TextLine(
        title=_(u"Geo Coordinates Longitude"),
        description=_(u""),
        required=False,
    )

    last_sale_date = schema.Date(
        title=_(u"Last Sale Date"),
        description=_(u""),
        required=False,
    )

    rental = schema.Bool(
        title=_(u'Is this a rental property?'),
        description=_(u''),
        required=False,
    )

    fieldset('owner_information',
             label=u'Owner Information',
             description=u'Owner details',
             fields=[
                 'owner_one',
                 'owner_two',
             ])

    owner_one = schema.Choice(
        title=_(u"Owner One"),
        description=_(u""),
        vocabulary=u'docent.hoa.home_owner',
    )

    owner_two = schema.Choice(
        title=_(u"Owner Two"),
        description=_(u""),
        vocabulary=u'docent.hoa.home_owner',
        required=False,
    )

    fieldset('resident_information',
             label=u'Resident Information',
             description=u'Resident details',
             fields=[
                 'resident_one',
                 'resident_two',
             ])

    resident_one = schema.Choice(
        title=_(u"Renter One"),
        description=_(u""),
        vocabulary=u'docent.hoa.renters',
        required=False,
    )

    resident_two = schema.Choice(
        title=_(u"Renter Two"),
        description=_(u""),
        vocabulary=u'docent.hoa.renters',
        required=False,
    )

    fieldset('property_manager',
             label=u'Propertry Manager',
             description=u'',
             fields=[
                 'property_manager',
             ])

    property_manager = schema.Choice(
        title=_(u"Property Manager"),
        description=_(u""),
        vocabulary=u'docent.hoa.property_managers',
        required=False,
    )

    @invariant
    def ownersInvariant(data):
        owner_one = data.owner_one
        owner_two = data.owner_two
        if owner_one and owner_two:
            if owner_one == owner_two:
                raise Invalid(
                    _(u"Owners One and Two cannot be the same individual."))

    @invariant
    def residentInvariant(data):
        resident_one = data.resident_one
        resident_two = data.resident_two
        if resident_one and resident_two:
            if resident_one == resident_two:
                raise Invalid(
                    _(u"Resident One and Two cannot be the same individual."))

    @invariant
    def lotInvariant(data):
        lot = data.lot
        try:
            int(lot)
        except ValueError:
            raise Invalid(_(u"Lot is not a valid number."))
        if len(lot) != 3:
            raise Invalid(
                _(u"Lot is not in the correct format (ie 045 for lot 45)"))