Пример #1
0
class IResource(form.Schema, IImageScaleTraversable):
    """
    Publications, Training Materials, Videos and more
    """

    dexteritytextindexer.searchable('title')
    title = schema.TextLine(title=u'Name', description=u'Name of resource.')

    dexteritytextindexer.searchable('description')
    description = schema.Text(title=u'Description',
                              description=u'Brief description '
                              'of resource.')
    resource_type = schema.Choice(title=_(u'Type'),
                                  vocabulary="sinarngo.resource.types")

    dexteritytextindexer.searchable('details')
    form.widget(details="plone.app.z3cform.wysiwyg.WysiwygFieldWidget")
    details = schema.Text(
        title=_(u"Details"),
        required=False,
    )

    attachment_1 = NamedFile(title=_(u'Attachment 1'), required=False)

    attachment_2 = NamedFile(title=_(u'Attachment 2'), required=False)

    attachment_3 = NamedFile(title=_(u'Attachment 2'), required=False)

    url = schema.TextLine(title=_(u'URL'), required=False)
Пример #2
0
class ILocucio(form.Schema):

    title = schema.Choice(
        title=_(u"Idioma"),
        vocabulary=
        u"plone.app.multilingual.vocabularies.AllContentLanguageVocabulary",
        required=True,
    )

    nom_formula = schema.Text(
        title=_(u"Nom de la fórmula en l'idioma triat"),
        description=_(
            u"Escriu el nom de la fórmula en l'idioma indicat al desplegable"),
        required=False,
    )

    locucio = schema.Text(
        title=_(u"Locució"),
        description=_(u"Escriu la locució de la fórmula"),
        required=True,
    )

    audio = NamedFile(
        title=_(u"Audio"),
        description=_(u"Arxiu d\'audio que conta la locucio"),
        required=False,
    )
Пример #3
0
class IAddProtocolo(IBaseProtocolo):

    situacao_id = schema.Choice(
        title=_(u'Situação'),
        description=_(u'Selecione a situação inicial do protocolo.'),
        vocabulary='il.spdo.situacao-inicial-vocab')

    form.widget(origem=AutocompleteMultiFieldWidget)
    origem = schema.List(
        title=_(u'Origem'),
        description=_(u'Selecione uma ou mais pessoas de origem do protocolo.'),
        value_type=schema.Choice(vocabulary='il.spdo.pessoa-vocab'))

    form.widget(destino=AutocompleteMultiFieldWidget)
    destino = schema.List(
        title=_(u'Destino'),
        description=_(u'Selecione uma ou mais pessoas de destino do protocolo.'),
        value_type=schema.Choice(vocabulary='il.spdo.pessoa-vocab'))

    observacao = schema.Text(
        title=_(u'Observação'),
        description=_(u'Informe qualquer observação que seja necessária.'),
        required=False)

    if ENABLE_FLASH_MULTIFILE:
        form.widget(anexos=MultiFileFieldWidget)
    anexos = schema.List(
        title=_(u'Anexos'),
        description=_(u'Adicione anexos ao protocolo (opcional).'),
        required=False,
        value_type=NamedFile())
Пример #4
0
class ITaula(form.Schema):

    directives.languageindependent('temes')
    temes = RelationList(
        title=u"Temes",
        default=[],
        value_type=RelationChoice(
            title=_(u"Temes als que pertany la taula de símbols"),
            source=ObjPathSourceBinder(object_provides=ITema.__identifier__)),
        required=False,
    )

    directives.languageindependent('taula')
    taula = schema.Text(
        title=_(u"Taula de símbols"),
        description=_(u"Escriu la taula de símbols en Tex"),
        required=True,
    )

    directives.languageindependent('audio')
    audio = NamedFile(
        title=_(u"Audio"),
        description=_(u"Arxiu d\'audio que conta la locució"),
        required=False,
    )
Пример #5
0
class IDataTableBehavior(model.Schema):
    """
    """

    #fieldset('Settings',
    #    fields=['pagelenght',
    #            'pagelenghts',
    #            'table']
    #)

    csv_file = NamedFile(
        title=_(u"Please upload CSV file"),
        required=True,
    )

    #pagelenght = schema.Int(
    #    title=_(u'Page Length'),
    #    default=25,
    #    min=5,
    #)

    #pagelenghts = schema.Text(
    #    title=_(u'Page Length'),
    #
    #)

    directives.widget(table=DataTableFieldWidget)
    #directives.mode(table='hidden')
    table = schema.TextLine(
        title=_(u"List items"),
        required=False,
    )
Пример #6
0
class IDocument(form.Schema, IImageScaleTraversable):
    """
    Document
    """

    dexteritytextindexer.searchable('title')
    title = schema.TextLine(
        title=_(u"Title"),
        required=False,
    )

    dexteritytextindexer.searchable('multifile')
    write_permission(multifile='cmf.ReviewPortalContent')
    read_permission(multifile='cmf.ReviewPortalContent')
    # multifile = NamedBlobFile(
    #     title=_(u"Document"),
    #     description=_(u"Please attach a file"),
    #     required=False,
    #     )

    form.widget(multifile=MultiFileFieldWidget)
    multifile = schema.List(
        title=_(u"Document"),
        required=False,
        value_type=NamedFile(),
    )
    pass
Пример #7
0
class ITestSchema(form.Schema):

    foo = schema.TextLine(title=u'Foo', )

    test_file = NamedFile(title=u'File', )

    test_date = schema.Date(title=u'test_date', )

    fancy_text = RichText(title=u"Fancy text", )
Пример #8
0
class IImportFormSchema(model.Schema):

    file = NamedFile(title=_(u'File'))

    encoding = schema.Choice(
        title=_(u'Encoding'),
        vocabulary=encodings,
        default='utf-8',
    )
Пример #9
0
class ITypeProfileImport(Interface):
    """ Fields for a zip import form
    """

    profile_file = NamedFile(
        title=_(u'Type profiles archive file'),
        required=True,
    )

    @invariant
    def isGoodImportFile(data):
        nfile = getattr(data, 'profile_file', None)
        if nfile is None:
            # let required validator handle this
            return None
        try:
            archive = ZipFile(StringIO(data.profile_file.data), 'r')
        except BadZipfile:
            raise Invalid(
                _(u"Error: The file submitted must be a zip archive."),
            )
        name_list = archive.namelist()
        for fname in name_list:
            if fname == 'types.xml':
                continue
            if os.path.dirname(fname) != 'types' \
               or os.path.splitext(fname)[1] != '.xml':
                raise Invalid(
                    _(u"Error: The file submitted must be a zip archive "
                      u"containing only type profile information.")
                )

        # check XML for basic integrity
        with archive.open('types.xml', 'rU') as f:
            source = f.read()
            root = etree.fromstring(source)
            if root.tag != 'object':
                raise Invalid(_(u'types.xml in archive is invalid.'))

        # check against existing types; don't allow overwrites
        site = getSite()
        existing_types = getToolByName(site, 'portal_types').listContentTypes()
        for element in root.getchildren():
            if element.tag == 'object':
                attribs = element.attrib
                if not attribs['meta_type'] == 'Dexterity FTI':
                    raise Invalid(_(
                        'Types in archive must be only Dexterity types.'
                    ),)
                if attribs['name'] in existing_types:
                    msg = (
                        u'One or more types in the import archive is an '
                        u'existing type. Delete "%s" if you '
                        u'really wish to replace it.'
                    )
                    raise Invalid(_(msg, attribs['name']), )
Пример #10
0
class IBoaPraticaForm(form.Schema):

    title = schema.TextLine(
        title=u"Título",
        required=True,
    )

    directives.widget(esfera='z3c.form.browser.radio.RadioFieldWidget')
    esfera = schema.Choice(title=u"Essa prática é esfera",
                           required=True,
                           vocabulary="mpdg.govbr.observatorio.EsferaPratica")

    uf = schema.Choice(
        title=u"UF",
        description=u"Selecione o seu Estado.",
        required=False,
        vocabulary="brasil.estados",
    )

    orgparticipantes = schema.TextLine(
        title=u"Órgãos participantes",
        description=
        u"Se a prática estiver relacionada a algum órgão de governo, favor informar no campo abaixo",
        required=False,
    )

    # categoria = schema.Choice(
    #     title=u"Assunto",
    #     vocabulary="liberiun.govcontent.CategoriasBoaPratica")

    directives.widget(
        description='plone.app.z3cform.wysiwyg.WysiwygFieldWidget')
    description = schema.Text(
        title=u"Descrição",
        required=False,
    )

    # Subject = Keywords(
    #     title=u'Tags',
    #     required=False,)

    directives.widget(sitesrelacionados=
                      'collective.z3cform.datagridfield.DataGridFieldFactory')
    sitesrelacionados = schema.List(title=u"Sites relacionados",
                                    value_type=DictRow(title=u"tablerow",
                                                       schema=ITableRowSchema),
                                    required=False)

    anexo = NamedFile(
        title=u"Anexo",
        description=u'É obrigatório a inclusão de pelo menos um anexo.',
        required=True)
class IImportSchema(form.Schema):
    """Define fields used on the form."""

    #TODO: need to get rid of "Keep existing file" etc. It's confusing
    # suspect this is the wrong field type
    import_file = NamedFile(
        title=_(
            "import_field_import_file_title",  # nopep8
            default=u"CSV metadata to import"),
        description=_(
            "import_field_import_file_description",  # nopep8
            default=
            u"CSV file containing rows for each content to create or update"),
        required=False)
    #    form.widget('header_mapping', NamedFileFieldWidget)
    header_mapping = schema.List(
        title=_(u'Header Mapping'),
        description=_(
            u"For Import any matching headers in your CSV will be mapped to "
            u"these fields. If Header is not found then the data will be ignored."
            u" For export, the internal fields will be exported to the "
            u" header names listed."),
        value_type=DictRow(title=u"tablerow", schema=IMappingRow),
        missing_value={},
        required=False)

    primary_key = schema.Choice(
        title=_(
            "import_field_primary_key_title",  # nopep8
            default=u"Test if content exists using"),
        description=_(
            "import_field_primary_key_description",
            default=
            u"Field with unique id to use to check if content already exists.  "
            u"Ignored for export."
            "Normally 'Short Name' or 'Path'."),
        source=fields_list,  #TODO: should be index not fieldname
        required=True,
        default=u"id")
    object_type = schema.Choice(
        title=_(
            "import_field_object_type_title",  # nopep8
            default=u"If not found"),
        description=_(
            "import_field_object_type_description",
            default=
            u"If content can't be found then Create, Skip or Stop at that row. "
            u"For rich media such as Videos, upload first. Ignored for "
            u"export."),
        source=if_not_found_list,
        required=True)
Пример #12
0
class IImportParams(Interface):
    """ Management form to import xliff """

    html_compatibility = schema.Bool(
        title=u'HTML compatibility mode',
        description=_(
            u'Select this option if your files are messed up with HTML code '
            u'in between due to incorrect XLIFF file handling by the '
            u'translators.'),
        required=False,
        default=False,
    )

    xliff_file = NamedFile(title=u'Xliff file (plain or zip)', required=True)
Пример #13
0
class IAddAnexo(IBaseFormSchema):

    form.mode(protocolo_id='hidden')
    protocolo_id = schema.Int(
        title=_(u'ID do Protocolo'),
        description=_(u'Identificador do Protocolo.'),
        defaultFactory=getProtocoloId,
        required=False)

    if ENABLE_FLASH_MULTIFILE:
        form.widget(anexos=MultiFileFieldWidget)
    anexos = schema.List(
        title=_(u'Anexos'),
        description=_(u'Adicione anexos ao protocolo.'),
        value_type=NamedFile())
Пример #14
0
class IIcalendarImportSettings(Interface):

    event_type = schema.Choice(
        title=_('ical_import_event_type_title', default=u'Event Type'),
        description=_(
            'ical_import_event_type_desc',
            default=u"Content type of the event, which is created when "
                    u"importing icalendar resources."),
        vocabulary='plone.app.event.EventTypes',
        required=True
    )

    ical_url = schema.URI(
        title=_('ical_import_url_title', default=u'Icalendar URL'),
        description=_(
            'ical_import_url_desc',
            default=u"URL to an external icalendar resource file."),
        required=False
    )

    ical_file = NamedFile(
        title=_('ical_import_file_title', default=u"Icalendar File"),
        description=_(
            'ical_import_file_desc',
            default=u"Icalendar resource file, if no URL is given."),
        required=False
    )

    sync_strategy = schema.Choice(
        title=_(
            'ical_import_sync_strategy_title',
            default=u"Synchronization Strategy"
        ),
        description=_(
            'ical_import_sync_strategy_desc',
            default=u"""Defines how to synchronize:
1) "Keep newer": Import, if the imported event is modified after the existing
   one.
2) "Keep mine": On conflicts, just do nothing.
3) "Keep theirs": On conflicts, update the existing event with the external
   one.
4) "No Syncing": Don't synchronize but import events and create new ones, even
    if they already exist. For each one, create a new sync_uid."""),
        vocabulary='plone.app.event.SynchronizationStrategies',
        required=True,
        default=base.SYNC_KEEP_NEWER
    )
Пример #15
0
class ICOPItem(form.Schema, IImageScaleTraversable):
    """
    COP Item
    """
    form.widget(blog_body=WysiwygFieldWidget)
    blog_body = schema.Text(title=u"Body")

    write_permission(multifile='cmf.ReviewPortalContent')
    read_permission(multifile='cmf.ReviewPortalContent')
    form.widget(multifile=MultiFileFieldWidget)
    multifile = schema.List(
        title=_(u"File Attachment"),
        required=False,
        value_type=NamedFile(),
    )

    pass
Пример #16
0
class IDXItemSchema(Schema):

    bool_field = schema.Bool(title=u'Bool Field', default=False)
    choice_field = schema.Choice(title=u'Choice Field', vocabulary=COLORS)
    date_field = schema.Date(title=u'Date Field')
    datetime_field = schema.Datetime(title=u'Datetime Field')
    decimal_field = schema.Decimal(title=u'Float Field')
    dottedname_field = schema.URI(title=u'DottedName Field')
    file_field = NamedFile(title=u'File Field')
    float_field = schema.Float(title=u'Float Field')
    image_field = NamedImage(title=u'Image Field')
    list_field = schema.List(title=u'List Field')
    richtext_field = RichText(title=u'Rich Text Field')
    text_field = schema.Text(title=u'Text Field')
    time_field = schema.Time(title=u'Time Field')
    timedelta_field = schema.Timedelta(title=u'Timedelta Field')
    uri_field = schema.URI(title=u'URI Field')
Пример #17
0
    def setUp(self):
        from plone.app.z3cform.widget import FileUploadWidget

        self.request = TestRequest(environ=
        {'HTTP_ACCEPT_LANGUAGE': 'en', 'REQUEST_METHOD': 'POST', 'files[]': None})
        alsoProvides(self.request, IFormLayer)
        self.widget = FileUploadWidget(self.request)
        self.field = List(__name__='files',
                     value_type=NamedFile())
        alsoProvides(self.field, IField)
        self.context = DummyContext()
        self.widget.context = self.context
        self.field.interface = Interface
        provideAdapter(datamanager.AttributeField)
        self.widget.field = self.field
        self.form = Mock()
        directlyProvides(self.form, IAddForm)
Пример #18
0
class IIcalendarImportSettings(Interface):

    event_type = schema.Choice(
        title=_(u'Event Type'),
        vocabulary='plone.app.event.EventTypes',
        required=True
    )

    ical_url = schema.URI(
        title=_(u'Icalendar URL'),
        required=False
    )

    ical_file = NamedFile(
        title=_(u"Icalendar File"),
        required=False
    )
Пример #19
0
class IZipImport(Interface):
    """ Fields for a zip import form
    """

    zip_file = NamedFile(
        title=_(u'Ambidexterity archive file'),
        required=True,
    )

    @invariant
    def isGoodImportFile(data):  # NOQA
        nfile = getattr(data, 'zip_file', None)
        if nfile is None:
            # let required validator handle this
            return None
        if not zipfile.is_zipfile(StringIO(data.zip_file.data)):
            raise Invalid(
                _(u"Error: The file submitted must be a zip archive."), )
Пример #20
0
 def test_filesize(self):
     # original value in patrimoine : 30000000
     file = NamedFile()
     file.data = "0" * 30000000
     self.patrimoine.fichier_pdf = NamedBlobFile(data=file.data,
                                                 filename=u"bigfile.pdf")
     self.assertTrue(fileSize(self.patrimoine.fichier_pdf))
     file = NamedFile()
     file.data = "0" * 30000001
     self.patrimoine.fichier_pdf = NamedBlobFile(data=file.data,
                                                 filename=u"bigfile.pdf")
     with self.assertRaises(InvalidFileSizeError):
         self.assertRaises(InvalidFileSizeError,
                           fileSize(self.patrimoine.fichier_pdf))
Пример #21
0
class IAddTramite(IBaseFormSchema):

    form.mode(protocolo_id='hidden')
    protocolo_id = schema.Int(
        title=_(u'ID do Protocolo'),
        description=_(u'Identificador do Protocolo.'),
        defaultFactory=getProtocoloId,        
        required=False)

    areas = schema.List(
        title=_(u'Área'),
        description=_(u'Área para qual o protocolo deve tramitar. Selecione mais de uma área para realizar tramitação por cópia.'),
        value_type=schema.Choice(vocabulary='il.spdo.areas-vocab'))

    despacho = schema.Text(
        title=_(u'Despacho'),
        description=_(u'Despacho que descreve as ações que devem ser tormadas para a tramitação prosseguir.'),
        required=False)

    if ENABLE_FLASH_MULTIFILE:
        form.widget(anexos=MultiFileFieldWidget)
    anexos = schema.List(
        title=_(u'Anexos'),
        description=_(u'Adicione anexos ao protocolo (opcional).'),
        required=False,
        value_type=NamedFile())

    @interface.invariant
    def verifyFluxo(tramite):
        if not tramite.protocolo_id:
            raise interface.Invalid(_(u'O parâmetro protocolo_id não foi informado.'))
        if not tramite.areas:
            raise interface.Invalid(_(u'O parâmetro areas não foi informado.'))
        sc = getUtility(ISecurityChecker)
        if not sc.check('fluxo_rigoroso', protocolo_id=tramite.protocolo_id, areas=tramite.areas):
            raise interface.Invalid(_(u'Não é possível tramitar esse protocolo para as áreas escolhidas. O fluxo de tramitação definido para o tipo de protocolo e documento não é flexível.'))
Пример #22
0
class IImportSchema(form.Schema):
    xls_file = NamedFile(title=_(u"XLS file"))
Пример #23
0
class IEventsDirectoryItem(IDirectoryItem):
    """Extends the seantis.dir.IDirectoryItem."""

    submitter = TextLine(
        title=_(u'Submitter Name'),
        required=False,
    )

    submitter_email = Email(
        title=_(u'Submitter Email'),
        required=False,
    )

    searchable('short_description')
    short_description = Text(title=_(u'Short Description'),
                             description=_(u'Up to 140 characters'),
                             required=True,
                             max_length=140)

    searchable('long_description')
    long_description = Text(title=_(u'Long Description'), required=False)

    image = NamedImage(title=_(u'Image'), required=False)

    attachment_1 = NamedFile(title=_(u'Attachment 1'), required=False)

    attachment_2 = NamedFile(title=_(u'Attachment 2'), required=False)

    searchable('locality')
    locality = TextLine(title=_(u'Locality'), required=False)

    searchable('street')
    street = TextLine(title=_(u'Street'), required=False)

    searchable('housenumber')
    housenumber = TextLine(title=_(u'Housenumber'), required=False)

    searchable('zipcode')
    zipcode = TextLine(title=_(u'Zipcode'), required=False)

    searchable('town')
    town = TextLine(title=_(u'Town'), required=False)

    searchable('location_url')
    location_url = Website(title=_(u'Location Website'), required=False)

    searchable('event_url')
    event_url = Website(title=_(u'Event Website'), required=False)

    searchable('organizer')
    organizer = TextLine(title=_(u'Organizer'), required=False)

    searchable('contact_name')
    contact_name = TextLine(title=_(u'Contact Name'), required=False)

    searchable('contact_email')
    contact_email = Email(title=_(u'Contact Email'), required=False)

    searchable('contact_phone')
    contact_phone = TextLine(title=_(u'Contact Phone'), required=False)

    searchable('prices')
    prices = Text(title=_(u'Prices'), required=False)

    searchable('registration')
    registration = Website(title=_(u'Ticket / Registration Website'),
                           required=False)
Пример #24
0
class IFileSchema(form.Schema):

    form.primary('file')
    file = NamedFile(title=u'File')
class IUploadFormSchema(form.Schema):

    import_file = NamedFile(title=_('Upload CSV'))
Пример #26
0
class IFileUploadForm(interface.Interface):
    file = NamedFile(title=u"File")
Пример #27
0
class IDCATDistribution(model.Schema, IDCAT):
    """Marker interface and Dexterity Python Schema for DCATDistribution."""

    # Mandatory
    # -------------------------------------------------------------------------
    dct_title = I18NTextLine(
        required=False,
        title=i18n.LABEL_DCT_TITLE,
    )

    dct_description = I18NText(
        required=False,
        title=i18n.LABEL_DCT_DESCRIPTION,
    )

    form.widget(
        'dct_license',
        AjaxSelectAddFieldWidget,
        display_deprecated=True,
        content_type=constants.CT_DCT_LICENSEDOCUMENT,
        content_type_title=i18n.LABEL_DCT_LICENSE,
        initial_path='/licenses/',
    )
    dct_license = schema.Choice(
        description=i18n.HELP_DCT_LICENSE,
        required=False,
        title=i18n.LABEL_DCT_LICENSE,
        vocabulary='pkan.dcatapde.vocabularies.DCTLicenseDocument',
    )

    dcat_accessURL = schema.URI(
        required=False,
        title=i18n.LABEL_DCAT_ACCESSURL,
    )

    dcat_downloadURL = schema.URI(
        required=False,
        title=i18n.LABEL_DCAT_DOWNLOADURL,
    )

    local_file = NamedFile(
        required=False,
        title=i18n.LABEL_LOCAL_FILE,
    )

    read_permission(dcatde_plannedAvailability='pkan.dcatapde.Admin')
    write_permission(dcatde_plannedAvailability='pkan.dcatapde.Admin')
    dcatde_plannedAvailability = I18NText(
        required=False,
        title=i18n.LABEL_DCATDE_PLANNED_AVAILABLITY,
    )

    dcatde_licenseAttributionByText = I18NText(
        required=False,
        title=i18n.LABEL_DCATDE_LICENSEATTRIBUTIONBYTEXT,
    )

    read_permission(dcat_byteSize='pkan.dcatapde.Admin')
    write_permission(dcat_byteSize='pkan.dcatapde.Admin')
    dcat_byteSize = I18NTextLine(
        required=False,
        title=i18n.LABEL_DCAT_BYTESIZE,
    )

    read_permission(dct_conformsTo='pkan.dcatapde.Admin')
    write_permission(dct_conformsTo='pkan.dcatapde.Admin')
    form.widget(
        'dct_conformsTo',
        AjaxSelectAddFieldWidget,
        display_deprecated=True,
        content_type=constants.CT_DCT_STANDARD,
        content_type_title=i18n.LABEL_DCT_CONFORMSTO,
        initial_path='/standards/',
    )
    dct_conformsTo = schema.Choice(
        description=i18n.HELP_DCT_CONFORMSTO,
        required=False,
        title=i18n.LABEL_DCT_CONFORMSTO,
        vocabulary='pkan.dcatapde.vocabularies.DCTStandard',
    )

    form.widget(
        'dct_format',
        AjaxSelectAddFieldWidget,
        display_deprecated=True,
        content_type=constants.CT_DCT_MEDIATYPEOREXTENT,
        content_type_title=i18n.LABEL_DCT_FORMAT,
        initial_path='/formats/',
    )
    dct_format = schema.Choice(
        description=i18n.HELP_DCT_FORMAT,
        required=False,
        title=i18n.LABEL_DCT_FORMAT,
        vocabulary='pkan.dcatapde.vocabularies.DCTMediaTypeOrExtent',
    )

    read_permission(dcat_mediaType='pkan.dcatapde.Admin')
    write_permission(dcat_mediaType='pkan.dcatapde.Admin')
    form.widget(
        'dcat_mediaType',
        AjaxSelectAddFieldWidget,
        display_deprecated=True,
        content_type=constants.CT_DCT_MEDIATYPEOREXTENT,
        content_type_title=i18n.LABEL_DCAT_MEDIATYPE,
        initial_path='/formats/',
    )

    dcat_mediaType = schema.Choice(
        description=i18n.HELP_DACT_MEDIATYPE,
        required=False,
        title=i18n.LABEL_DCAT_MEDIATYPE,
        vocabulary='pkan.dcatapde.vocabularies.DCTMediaTypeOrExtent',
    )

    dct_issued = schema.Date(
        required=False,
        title=i18n.LABEL_DCT_ISSUED,
    )

    dct_modified = schema.Date(
        required=False,
        title=i18n.LABEL_DCT_MODIFIED,
        default=datetime.date.today(),
    )
Пример #28
0
class IImportCSVFormSchema(Interface):
    csv_file = NamedFile(title=_("CSV file"))
Пример #29
0
class IImportDirectorySchema(form.Schema):
    """ Define fields used on the form """
    xls_file = NamedFile(title=_(u"XLS file"), description=u'{xlshelp}')
Пример #30
0
class Ilaureando(form.Schema, IImageScaleTraversable):
    """
    studente laureando
    """

    # If you want a schema-defined interface, delete the form.model
    # line below and delete the matching file in the models sub-directory.
    # If you want a model-based interface, edit
    # models/laureando.xml to define the content type
    # and add directives here as necessary.

    laureando_name = schema.TextLine(
        title=_(u'Nome'),
        description=_(u'Inserire nome dello studente.'),
        required=True)

    laureando_surname = schema.TextLine(
        title=_(u'Cognome'),
        description=_(u'Inserire cognome dello studente.'),
        required=True)

    laureando_matricola = schema.TextLine(title=_(u'Matricola'),
                                          constraint=validatore_matricola,
                                          required=True)

    #form.read_permission(laureando_avg='laureando.privilegi_segreteria')
    form.write_permission(laureando_avg='laureando.privilegi_segreteria')
    laureando_avg = schema.Float(title=_(u'Media'), required=True)

    #form.read_permission(laureando_nlodi='laureando.privilegi_segreteria')
    #form.write_permission(laureando_nlodi='laureando.privilegi_segreteria')
    laureando_nlodi = schema.Choice(
        title=_(u'N. lodi'),
        description=_(u'Inserisci il numero di lodi.'),
        source=lista_possibili_nlodi,
        required=False)

    #form.read_permission(laureando_anno_immatricolazione='laureando.privilegi_segreteria')
    #form.write_permission(laureando_anno_immatricolazione='laureando.privilegi_segreteria')
    laureando_anno_immatricolazione = schema.Choice(
        title=_(u'Anno immatricolazione'),
        description=_(u'Seleziona anno di immatricolazione.'),
        source=years_voc,
        required=False)

    laureando_relatore = schema.Choice(
        title=_(u'Relatore'),
        description=_(u'Seleziona il relatore.'),
        source=lista_relatori,
        required=True)

    laureando_project = schema.TextLine(title=_(u'Progetto'),
                                        description=_(u'Titolo della tesi.'),
                                        required=False)

    laureando_project_description = schema.Text(
        title=_(u'Descrizione progetto'),
        description=_(u'Dettagli aggiuntivi.'),
        required=False)

    laureando_project_file = NamedFile(title=_(u'Upload della tesi.'),
                                       required=False)

    #form.read_permission(laureando_valutazione='laureando.privilegi_commissione')
    form.write_permission(
        laureando_valutazione='laureando.privilegi_commissione')
    laureando_valutazione = schema.Choice(
        title=_(u'Valutazione progetto'),
        description=_(u'Valutazione del progetto (relatore).'),
        source=lista_possibili_valutazioni,
        required=False)

    #form.omitted('laureando_voto_di_laurea')
    #form.read_permission(laureando_voto_di_laurea='laureando.privilegi_presidente')
    form.write_permission(
        laureando_voto_di_laurea='laureando.privilegi_presidente')
    laureando_voto_di_laurea = schema.Int(title=_(u'Voto di laurea'),
                                          required=False)

    #form.read_permission(laureando_lode='laureando.privilegi_presidente')
    form.write_permission(laureando_lode='laureando.privilegi_presidente')
    laureando_lode = schema.Bool(title=_(u'Lode'), required=False)