Skip to content

Commit

Permalink
Us 49038 come fare per (#1)
Browse files Browse the repository at this point in the history
* added ct 'Come fare per' and 'Step'

* updated ct profile

* blacked

* flaked
  • Loading branch information
daniele-andreotti authored Jul 5, 2024
1 parent 805d93f commit b0a7618
Show file tree
Hide file tree
Showing 19 changed files with 597 additions and 32 deletions.
4 changes: 2 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,9 @@
"z3c.jbot",
"plone.api>=1.8.4",
"plone.app.dexterity",
"collective.venue[geolocation]",
"collective.volto.blocksfield",
"redturtle.volto>=5.0.0",
"collective.venue[geolocation]",
"redturtle.volto",
"plone.restapi",
"collective.taxonomy",
],
Expand Down
Empty file.
5 changes: 2 additions & 3 deletions src/iosanita/contenttypes/behaviors/additional_help_infos.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
# -*- coding: utf-8 -*-
from collective.volto.blocksfield.field import BlocksField
from iosanita.contenttypes import _
from collective.volto.blocksfield.field import BlocksField
from plone.app.dexterity import textindexer
from plone.autoform.interfaces import IFormFieldProvider
from plone.dexterity.interfaces import IDexterityContent
from plone.supermodel import model
from zope.component import adapter
from zope.interface import implementer
from zope.interface import provider
from zope import schema


# TODO: valutare se aggiungere 'box_aiuto', in alcuni CT e' obbligatorio
# e bisognerebbe metterlo unifrme per tutti in barba alle linee guida
@provider(IFormFieldProvider)
class IAdditionalHelpInfos(model.Schema):
ulteriori_informazioni = BlocksField(
Expand Down
27 changes: 27 additions & 0 deletions src/iosanita/contenttypes/behaviors/argomenti.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
from zope.component import adapter
from zope.interface import implementer
from zope.interface import provider
from plone.dexterity.interfaces import IDexterityContent


class IArgomentiSchema(model.Schema):
Expand All @@ -31,6 +32,20 @@ class IArgomentiSchema(model.Schema):
required=False,
default=[],
)
correlato_in_evidenza = RelationList(
title=_("correlato_in_evidenza_label", default="Correlato in evidenza"),
description=_(
"correlato_in_evidenza_help",
default="Seleziona un correlato da mettere in evidenza per questo"
" contenuto.",
),
value_type=RelationChoice(
title=_("Correlato in evidenza"),
vocabulary="plone.app.vocabularies.Catalog",
),
required=False,
default=[],
)

form.widget(
"tassonomia_argomenti",
Expand All @@ -40,6 +55,12 @@ class IArgomentiSchema(model.Schema):
"selectableTypes": ["Pagina Argomento"],
},
)
form.widget(
"correlato_in_evidenza",
RelatedItemsFieldWidget,
vocabulary="plone.app.vocabularies.Catalog",
pattern_options={"maximumSelectionSize": 1},
)

textindexer.searchable("tassonomia_argomenti")

Expand All @@ -48,6 +69,12 @@ class IArgomentiSchema(model.Schema):
class IArgomenti(IArgomentiSchema):
""" """

model.fieldset(
"correlati",
label=_("correlati_label", default="Contenuti collegati"),
fields=["correlato_in_evidenza"],
)


@provider(IFormFieldProvider)
class IArgomentiEvento(IArgomentiSchema):
Expand Down
38 changes: 18 additions & 20 deletions src/iosanita/contenttypes/behaviors/configure.zcml
Original file line number Diff line number Diff line change
Expand Up @@ -39,26 +39,6 @@
marker=".argomenti.IArgomentiEvento"
/>

<!-- <plone:behavior
name="iosanita.contenttypes.behavior.luoghi_correlati"
title="Luoghi correlati"
description=""
factory=".luoghi_correlati.LuoghiCorrelati"
provides=".luoghi_correlati.ILuoghiCorrelati"
for="plone.dexterity.interfaces.IDexterityContent"
marker=".luoghi_correlati.ILuoghiCorrelati"
/> -->

<!-- <plone:behavior
name="iosanita.contenttypes.behavior.luoghi_correlati_evento"
title="Luoghi correlati"
description=""
factory=".luoghi_correlati.LuoghiCorrelatiEvento"
provides=".luoghi_correlati.ILuoghiCorrelatiEvento"
for="plone.app.contenttypes.interfaces.IEvent"
marker=".luoghi_correlati.ILuoghiCorrelatiEvento"
/> -->

<plone:behavior
name="iosanita.contenttypes.behavior.strutture_correlate"
title="Strutture correlate"
Expand All @@ -78,6 +58,24 @@
for="plone.dexterity.interfaces.IDexterityContent"
marker=".additional_help_infos.IAdditionalHelpInfos"
/>

<plone:behavior
name="iosanita.contenttypes.behavior.descrizione_estesa"
title="Descrizione estesa"
description=""
factory=".descrizione_estesa.DescrizioneEstesa"
provides=".descrizione_estesa.IDescrizioneEstesa"
marker=".descrizione_estesa.IDescrizioneEstesa"
/>

<plone:behavior
name="iosanita.contenttypes.behavior.contatti_step"
title="Contatti"
description="Behavior contatti per Step."
factory=".contatti.ContattiStep"
provides=".contatti.IContattiStep"
marker=".contatti.IContattiStep"
/>
<plone:behavior
name="iosanita.contenttypes.behavior.address_event"
title="Address Event"
Expand Down
22 changes: 22 additions & 0 deletions src/iosanita/contenttypes/behaviors/contatti.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# -*- coding: utf-8 -*-
from iosanita.contenttypes import _
from iosanita.contenttypes.interfaces.step import IStep
from plone.app.z3cform.widget import RelatedItemsFieldWidget
from plone.autoform import directives as form
from plone.autoform.interfaces import IFormFieldProvider
Expand All @@ -12,6 +13,19 @@


@provider(IFormFieldProvider)
class IContattiStep(model.Schema):
contact_info = RelationList(
title=_(
"contact_info_label",
default="Contatti",
),
description=_(
"contact_info_help",
default="I contatti per questo step.",
)
)


class IContattiEvent(model.Schema):
contact_info = RelationList(
title=_(
Expand All @@ -25,6 +39,7 @@ class IContattiEvent(model.Schema):
required=True,
default=[],
value_type=RelationChoice(
title=_("Contatti"),
title=_("Punti di contatto"),
vocabulary="plone.app.vocabularies.Catalog",
),
Expand All @@ -44,6 +59,13 @@ class IContattiEvent(model.Schema):
)


@implementer(IContattiStep)
@adapter(IStep)
class ContattiStep(object):
def __init__(self, context):
self.context = context


@implementer(IContattiEvent)
@adapter(IContattiEvent)
class ContattiEvent(object):
Expand Down
40 changes: 40 additions & 0 deletions src/iosanita/contenttypes/behaviors/descrizione_estesa.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# -*- coding: utf-8 -*-
from collective.volto.blocksfield.field import BlocksField
from iosanita.contenttypes import _
from plone.app.dexterity import textindexer
from plone.autoform import directives as form
from plone.autoform.interfaces import IFormFieldProvider
from plone.dexterity.interfaces import IDexterityContent
from plone.supermodel import model
from zope.component import adapter
from zope.interface import implementer
from zope.interface import provider


class IDescrizioneEstesaSchema(model.Schema):
descrizione_estesa = BlocksField(
title=_("descrizione_estesa", default="Descrizione estesa"),
required=False,
description=_(
"descrizione_estesa_help",
default="Descrizione dettagliata e completa.",
),
)

textindexer.searchable("descrizione_estesa")


@provider(IFormFieldProvider)
class IDescrizioneEstesa(IDescrizioneEstesaSchema):
""" """

form.order_after(descrizione_estesa="IBasic.description")


@implementer(IDescrizioneEstesa)
@adapter(IDexterityContent)
class DescrizioneEstesa(object):
""""""

def __init__(self, context):
self.context = context
5 changes: 0 additions & 5 deletions src/iosanita/contenttypes/configure.zcml
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,6 @@

<i18n:registerTranslations directory="locales" />

<!--
Be careful if you use general includeDependencies, it can have side effects!
Better import explicit packages or configurations ;)
-->
<!--<includeDependencies package="." />-->

<include package=".browser" />
<include package=".behaviors" />
Expand Down
Empty file.
9 changes: 9 additions & 0 deletions src/iosanita/contenttypes/content/come_fare_per.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# -*- coding: utf-8 -*-
from iosanita.contenttypes.interfaces.come_fare_per import IComeFarePer
from plone.dexterity.content import Container
from zope.interface import implementer


@implementer(IComeFarePer)
class ComeFarePer(Container):
""" """
9 changes: 9 additions & 0 deletions src/iosanita/contenttypes/content/step.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# -*- coding: utf-8 -*-
from iosanita.contenttypes.interfaces.step import IStep
from plone.dexterity.content import Container
from zope.interface import implementer


@implementer(IStep)
class Step(Container):
""" """
131 changes: 131 additions & 0 deletions src/iosanita/contenttypes/interfaces/come_fare_per.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
# -*- coding: utf-8 -*-
from collective.volto.blocksfield.field import BlocksField
from iosanita.contenttypes import _
from iosanita.contenttypes.interfaces import IIosanitaContenttypes
from plone.app.z3cform.widget import RelatedItemsFieldWidget
from plone.autoform import directives as form
from plone.namedfile import field
from plone.supermodel import model
from z3c.relationfield.schema import RelationChoice
from z3c.relationfield.schema import RelationList
from zope import schema


class IComeFarePer(model.Schema, IIosanitaContenttypes):
"""Marker interface for content type Servizio"""

sottotitolo = schema.TextLine(
title=_("sottotitolo_label", default="Sottotitolo"),
description=_(
"sottotitolo_help",
default="Indica un eventuale sottotitolo/titolo alternativo.",
),
required=False,
)

immagine_tema = field.NamedBlobImage(
title=_("immagine_tema_label", default="Immagine del tema"),
required=False,
description=_(
"immagine_tema_help",
default="Immagine del tema trattato.",
),
)

descrizione_estesa = BlocksField(
title=_("descrizione_estesa_label", default="Panoramica"),
description=_(
"descrizione_estesa_help",
default="Descrizione estesa.",
),
required=False,
)

a_chi_si_rivolge = BlocksField(
title=_("a_chi_si_rivolge_label", default="A chi è rivolto"),
required=True,
description=_(
"a_chi_si_rivolge_help",
default="A chi si rivolge questo servizio.",
),
)

come_si_fa = BlocksField(
title=_("come_si_fa_label", default="Come fare"),
required=True,
description=_(
"come_si_fa_help",
default="Descrizione della procedura da seguire per poter"
" usufruire del servizio.",
),
)

costi_vincoli = schema.Text(
title=_("costi_vincoli_label", default="Costi e vincoli"),
required=False,
description=_(
"costi_vincoli_help",
default="Descrizione delle condizioni e dei termini economici e dei vincoli per"
" completare la procedura di richiesta del servizio.",
),
)

tempistiche = schema.Text(
title=_("tempistiche_label", default="Tempistiche"),
required=False,
description=_(
"tempistiche_help",
default="Descrivere le informazioni dettagliate riguardo eventuali tempi"
" e scadenze.",
),
)

dove_rivolgersi = RelationList(
title="Dove rivolgersi",
default=[],
value_type=RelationChoice(vocabulary="plone.app.vocabularies.Catalog"),
required=True,
description=_(
"dove_rivolgersi_help",
default="Seleziona una lista delle sedi e dei luoghi in cui è presente"
" questo servizio.",
),
)

altri_documenti = RelationList(
title="Documenti",
default=[],
description=_(
"altri_documenti_help",
default="Seleziona la lista dei documenti di supporto collegati"
" a questo servizio.",
),
value_type=RelationChoice(
title=_("Documento"), vocabulary="plone.app.vocabularies.Catalog"
),
required=False,
)

ultimo_aggiornamento = schema.Date(
title=_("ultimo_aggiornamento_label", default="Ultimo aggiornamento"),
required=True,
description=_(
"ultimo_aggiornamento_help",
default="Data in cui è stato effettuato l'ultimo aggiornamento ai contenuti della pagina.",
),
)

form.widget(
"dove_rivolgersi",
RelatedItemsFieldWidget,
vocabulary="plone.app.vocabularies.Catalog",
pattern_options={
"selectableTypes": ["UnitaOrganizzativa"],
},
)
form.widget(
"altri_documenti",
RelatedItemsFieldWidget,
vocabulary="plone.app.vocabularies.Catalog",
pattern_options={"selectableTypes": ["Documento"]},
)
Loading

0 comments on commit b0a7618

Please sign in to comment.