def __call__(self): if self.schema.getName() == "IRelatedItems": fieldset = Fieldset( "correlati", label=_("correlati_label", default="Contenuti collegati"), fields=["relatedItems"], ) self.schema._Element__tagged_values[ "plone.supermodel.fieldsets"] = [fieldset] if self.schema.getName() == "IEventBasic": fieldset = Fieldset( "date_e_orari", label=_("date_e_orari_label", default="Date e orari"), fields=["start", "end", "whole_day", "open_end", "sync_uid"], ) self.schema._Element__tagged_values[ "plone.supermodel.fieldsets"] = [fieldset] if self.schema.getName() == "IEventRecurrence": fieldset = Fieldset( "date_e_orari", label=_("date_e_orari_label", default="Date e orari"), fields=["recurrence"], ) self.schema._Element__tagged_values[ "plone.supermodel.fieldsets"] = [fieldset]
class IGeolocationDefaults(Interface): street = TextLine( title=_("Via"), required=False, default="Via Liszt, 21", ) zip_code = TextLine( title=_("CAP"), required=False, default="00144", ) city = TextLine( title=_("Città"), required=False, default="Roma", ) country = TextLine( title=_("Nazione"), required=False, default="{'title': 'Italia','token': '380',}", ) geolocation = TextLine( title=_("Coordinate"), required=True, default="{'latitude': 41.8337833,'longitude': 12.4677863,}", )
class ILuoghiCorrelatiEvento(model.Schema): """ Events have a differente fieldset for this field """ luoghi_correlati = RelationList( title=_("luoghi_correlati_label", default="Luoghi correlati"), description=_( "luoghi_correlati_event_help", default="Seleziona una lista di luoghi citati. Se il luogo " "dell'evento non è presente sul sito, inserisci le sue " "informazioni nei campi seguenti.", ), default=[], value_type=RelationChoice(vocabulary="plone.app.vocabularies.Catalog"), required=False, ) form.widget( "luoghi_correlati", RelatedItemsFieldWidget, vocabulary="plone.app.vocabularies.Catalog", pattern_options={ "selectableTypes": ["Venue"], "maximumSelectionSize": 50, }, ) model.fieldset( "luogo", label=_("luogo_label", default="Luogo"), fields=["luoghi_correlati"], )
class IServiziCorrelati(model.Schema): servizi_correlati = RelationList( title=_("servizi_correlati_label", default="Servizi correlati"), description=_( "servizi_correlati_description", default="Questi servizi non verranno mostrati nel contenuto, ma" " permetteranno di vedere questo contenuto associato quando si" " visita il servizio", ), default=[], value_type=RelationChoice( title="Related", vocabulary="plone.app.vocabularies.Catalog" ), required=False, ) form.widget( "servizi_correlati", RelatedItemsFieldWidget, vocabulary="plone.app.vocabularies.Catalog", pattern_options={ "maximumSelectionSize": 10, "selectableTypes": ["Servizio"], }, ) model.fieldset( "correlati", label=_("correlati_label", default="Contenuti collegati"), fields=["servizi_correlati"], ) form.order_before(servizi_correlati="IRelatedItems.relatedItems")
class IDatasetCorrelati(model.Schema): dataset_correlati = RelationList( title=_("dataset_correlati_label", default="Dataset correlati"), description=_( "dataset_correlati_help", default="Seleziona una lista di schede dataset collegate a questo" " contenuto.", ), default=[], value_type=RelationChoice(vocabulary="plone.app.vocabularies.Catalog"), required=False, ) form.widget( "dataset_correlati", RelatedItemsFieldWidget, vocabulary="plone.app.vocabularies.Catalog", pattern_options={ "selectableTypes": ["Dataset"], "maximumSelectionSize": 50, }, ) model.fieldset( "correlati", label=_("correlati_label", default="Contenuti collegati"), fields=["dataset_correlati"], )
class IStruttureCorrelate(model.Schema): strutture_politiche = RelationList( title="Strutture politiche coinvolte", default=[], value_type=RelationChoice( title=_("Struttura politica coinvolta"), vocabulary="plone.app.vocabularies.Catalog", ), required=False, missing_value=(), description=_( "strutture_politiche_help", default="Seleziona la lista delle strutture politiche coinvolte.", ), ) form.widget( "strutture_politiche", RelatedItemsFieldWidget, vocabulary="plone.app.vocabularies.Catalog", pattern_options={ "maximumSelectionSize": 10, "selectableTypes": ["UnitaOrganizzativa"], }, ) model.fieldset( "informazioni", label=_("informazioni_label", default="Ulteriori informazioni"), fields=["strutture_politiche"], )
def __call__(self, context): # Just an example list of content for our vocabulary, # this can be any static or dynamic data, a catalog result for example. items = [ VocabItem("pagare", _("Pagare")), VocabItem("iscriversi", _("Iscriversi")), VocabItem("richiedere", _("Richiedere")), VocabItem("leggere", _("Leggere")), VocabItem("attivare", _("Attivare")), VocabItem("autorizzare", _("Autorizzare")), VocabItem("delegare", _("Delegare")), VocabItem("informare", _("Informare")), VocabItem("accettare", _("Accettare")), ] # Fix context if you are using the vocabulary in DataGridField. # See https://github.com/collective/collective.z3cform.datagridfield/issues/31: # NOQA: 501 if not IDexterityContent.providedBy(context): req = getRequest() context = req.PARENTS[0] # create a list of SimpleTerm items: terms = [] for item in items: terms.append( SimpleTerm(value=item.token, token=str(item.token), title=item.value)) # Create a SimpleVocabulary from the terms list and return it: return SimpleVocabulary(terms)
class IInfoTestata(model.Schema): """ """ info_testata = RichText( title=_( "info_testata_label", default="Informazioni aggiuntive per la testata", ), required=False, description=_( "info_testata_help", default= "Inserisci eventuale testo informativo che verrà mostrato in testata.", # noqa ), ) ricerca_in_testata = schema.Bool( title=_("ricerca_in_testata_label", default="Ricerca in testata"), default=False, required=False, description=_( "ricerca_in_testata_help", default= "Seleziona se mostrare o meno il campo di ricerca in testata.", ), ) mostra_bottoni_condivisione = schema.Bool( title=_( "mostra_bottoni_condivisione_label", default="Mostra i bottoni per la condivisione sui social", ), default=False, required=False, description=_( "mostra_bottoni_condivisione_help", default="Seleziona se mostrare o meno i bottoni con i link per " "la condivisione sui vari social, mail e stampa.", ), ) mostra_navigazione = schema.Bool( title=_("mostra_navigazione_label", default="Mostra la navigazione"), default=False, required=False, description=_( "mostra_navigazione_help", default= "Seleziona se mostrare o meno la navigazione laterale nella testata.", # noqa ), ) model.fieldset( "testata", label=_("testata_fieldset_label", default="Testata"), fields=[ "ricerca_in_testata", "mostra_bottoni_condivisione", "info_testata", "mostra_navigazione", ], )
class IDescrizioneEstesaSchema(model.Schema): descrizione_estesa = BlocksField( title=_("descrizione_estesa", default="Descrizione estesa"), required=False, description=_( "descrizione_estesa_help", default="Descrizione dettagliata e completa.", ), ) dexteritytextindexer.searchable("descrizione_estesa")
class IAddressNomeSede(model.Schema): nome_sede = schema.TextLine( title=_("nome_sede", default="Nome sede"), description=_( "help_nome_sede", default="Inserisci il nome della " "sede, se non è presente tra i Luoghi del sito.", ), required=False, ) dexteritytextindexer.searchable("nome_sede")
class IContattiVenue(IContatti): model.fieldset( "orari", label=_("orari_label", default="Orari di apertura"), fields=["orario_pubblico"], ) model.fieldset( "contatti", label=_("contatti_label", default="Contatti"), fields=["telefono", "fax", "email", "pec", "web"], )
class IArgomentiDocument(IArgomentiSchema): """ """ model.fieldset( "correlati", label=_("correlati_label", default="Contenuti collegati"), fields=["correlato_in_evidenza"], ) model.fieldset( "testata", label=_("testata_fieldset_label", default="Testata"), fields=["tassonomia_argomenti"], ) form.order_after(correlato_in_evidenza="IRelatedItems.relatedItems") form.order_after(tassonomia_argomenti="IInfoTestata.mostra_navigazione")
class IGeolocatableUnitaOrganizzativa(IGeolocatable): model.fieldset( "contatti", label=_("contatti_label", default="Contatti"), fields=["geolocation"], )
class IGeolocatableEvent(IGeolocatable): model.fieldset( "luogo", label=_("luogo_label", default="Luogo"), fields=["geolocation"], )
class IRicevutaPagamento(model.Schema): """Marker interface for RicevutaPagamento""" numero_protocollo = schema.Id( title=_("numero_protocollo", default="Numero protocollo"), required=True, ) stampa_ricevuta = field.NamedFile(title=_("stampa_ricevuta", default="Stampa ricevuta"), required=True) data_pagamento = schema.Date(title=_("data_pagamento", default="Data pagamento"), required=True) importo_pagato = schema.TextLine(title=_("importo_pagato", default="Importo pagato"), required=True) modalita_pagamento = schema.TextLine( title=_("modalita_pagamento", default="Modalità pagamento"), required=True, ) # TODO: aggiungere tassonomia e vocabolario rilevante servizio_origine = schema.Choice( title=_("servizio_origine_ricevuta", default="Servizio che origina la pratica"), # vocabolario di riferimento sara' il servizio che genera il task e # permette di soddisfarlo vocabulary="design.plone.contenttypes.Mockup", required=False, ) pratica_associata = field.NamedFile( title=_("pratica_associata_ricevuta", default="Pratica associata al pagamento"), required=True, ) # TODO: capire se ci sono altri esiti oltre ai banali "accettato", # "rifiutato", "in attesa di conferma", # e costruire di conseguenza un vocabolario adeguato esito = schema.Choice( title=_("esito", default="Esito"), vocabulary="design.plone.contenttypes.Mockup", required=True, ) allegato = field.NamedFile(title=_("allegato", default="Allegato"), required=False)
class IDescrizioneEstesaDocumento(IDescrizioneEstesaSchema): """ """ model.fieldset( "descrizione", label=_("descrizione_label", default="Descrizione"), fields=["descrizione_estesa"], )
class IDescrizioneEstesaServizio(IDescrizioneEstesaSchema): """ """ model.fieldset( "cose", label=_("cose_label", default="Cos'è"), fields=["descrizione_estesa"], )
class IShowModified(model.Schema): show_modified = schema.Bool( title=_("show_modified_label", default="Mostra la data di ultima modifica"), description=_( "show_modified_help", default="Se attivo, verrà mostrata la data di ultima modifica in " "visualizzazione del contenuto.", ), required=False, defaultFactory=showModifiedDefaultValue, ) model.fieldset( "settings", label="Impostazioni", fields=["show_modified"], )
class IAddressLocal(model.Schema): """ """ quartiere = schema.TextLine( title=_("quartiere", default="Quartiere"), description=_("help_quartiere", default=""), required=False, ) circoscrizione = schema.TextLine( title=_("circoscrizione", default="Circoscrizione"), description=_("help_circoscrizione", default=""), required=False, ) # searchabletext indexer dexteritytextindexer.searchable("quartiere") dexteritytextindexer.searchable("circoscrizione")
class IArgomenti(IArgomentiSchema): """ """ model.fieldset( "correlati", label=_("correlati_label", default="Contenuti collegati"), fields=["correlato_in_evidenza"], ) form.order_after(correlato_in_evidenza="IRelatedItems.relatedItems")
class IAdditionalHelpInfos(model.Schema): ulteriori_informazioni = BlocksField( title=_("ulteriori_informazioni", default="Ulteriori informazioni"), description=_( "ulteriori_informazioni_help", default="Ulteriori informazioni non contemplate" " dai campi precedenti.", ), required=False, ) model.fieldset( "informazioni", label=_("informazioni_label", default="Ulteriori informazioni"), fields=["ulteriori_informazioni"], ) dexteritytextindexer.searchable("ulteriori_informazioni")
class IArgomentiDocumento(IArgomentiSchema): """ """ model.fieldset( "correlati", label=_("correlati_label", default="Contenuti collegati"), fields=["correlato_in_evidenza"], ) form.order_after(correlato_in_evidenza="IRelatedItems.relatedItems") form.order_after(tassonomia_argomenti="IDublinCore.title")
class ILuoghiCorrelatiSchema(model.Schema): luoghi_correlati = RelationList( title=_("luoghi_correlati_label", default="Luoghi correlati"), description=_( "luoghi_correlati_help", default="Seleziona una lista di luoghi citati.", ), default=[], value_type=RelationChoice(vocabulary="plone.app.vocabularies.Catalog"), required=False, ) form.widget( "luoghi_correlati", RelatedItemsFieldWidget, vocabulary="plone.app.vocabularies.Catalog", pattern_options={ "selectableTypes": ["Venue"], "maximumSelectionSize": 50, }, )
class IMultiFileSchema(model.Schema): """""" file_principale = field.NamedBlobFile( title=_("file_principale_label", default="File principale"), description=_( "file_principale_help", default="Inserisci il file principale di questo contenuto.", ), required=True, ) formato_alternativo_1 = field.NamedBlobFile( title=_("formato_alternativo_1_label", default="Formato alternativo 1"), description=_( "formato_alternativo_1_help", default="Inserisci un eventuale formato alternativo del " "file principale.", ), required=False, ) formato_alternativo_2 = field.NamedBlobFile( title=_("formato_alternativo_2_label", default="Formato alternativo 2"), description=_( "formato_alternativo_2_help", default="Inserisci un eventuale formato alternativo del " "file principale.", ), required=False, )
class IDataset(model.Schema): """Marker interface for Dataset""" # TODO: aggiungere tassonomia e vocabolario rilevante fornito nelle linee guida # noqa temi = schema.Choice( title=_("temi", default="Temi"), vocabulary="design.plone.contenttypes.temi_dataset", required=True, ) # TODO: identificativo dataset distribuzione = BlocksField( title=_("distribuzione", default="Distribuzione"), required=True ) licenza = schema.TextLine(title=_("licenza", default="Licenza"), required=True) dataset = field.NamedBlobFile(title=_("dataset", default="Dataset"), required=True) titolare = schema.TextLine(title=_("titolare", default="Titolare"), required=True) frequenza_aggiornamento = schema.TextLine( title=_("frequenza_aggiornamento", default="Frequenza di aggiornamento"), required=True, )
def __call__(self, context): # Just an example list of content for our vocabulary, # this can be any static or dynamic data, a catalog result for example. items = [ VocabItem("sony-a7r-iii", _("Sony Aplha 7R III")), VocabItem("canon-5d-iv", _("Canon 5D IV")), VocabItem("pippo", _("Pippo")), VocabItem("pluto", _("Pluto")), VocabItem("paperino", _("Paperino")), VocabItem("giovanni", _("Giovanni")), ] # Fix context if you are using the vocabulary in DataGridField. # See https://github.com/collective/collective.z3cform.datagridfield/issues/31: # NOQA: 501 if not IDexterityContent.providedBy(context): req = getRequest() context = req.PARENTS[0] # create a list of SimpleTerm items: terms = [] for item in items: terms.append( SimpleTerm(value=item.token, token=str(item.token), title=item.value)) # Create a SimpleVocabulary from the terms list and return it: return SimpleVocabulary(terms)
def __call__(self, value): if "latitude" not in value or "longitude" not in value: raise ValueError( translate( _( "geolocation_field_validator_label", default= "Invalid geolocation data: ${value}. Provide latitude and longitude coordinates.", # noqa mapping={"value": value}, ), context=self.request, )) return Geolocation(latitude=value["latitude"], longitude=value["longitude"])
class IAddressUnitaOrganizzativa(IAddress, IAddressNomeSede, IAddressLocal): model.fieldset( "contatti", label=_("contatti_label", default="Contatti"), fields=[ "nome_sede", "street", "zip_code", "city", "quartiere", "circoscrizione", "country", ], )
class IAddressVenue(IAddress, IAddressLocal): """""" model.fieldset( "dove", label=_("dove_label", default="Dove"), fields=[ "street", "zip_code", "city", "quartiere", "circoscrizione", "country", ], )
def get_schema(self): schema = super(LeadImageJsonSchemaProvider, self).get_schema() sizes = self.get_size_vocabulary() portal_type = getattr(self.request, "steps")[-1] portal_type_size = sizes.get(portal_type, None) if portal_type_size: msgid = _( "image_size_help", default= "La dimensione dell'immagine dovrebbe essere di ${size} px", # noqa mapping={"size": portal_type_size}, ) schema["description"] = translate(msgid, context=self.request) return schema