195 lines
4.5 KiB
Python
195 lines
4.5 KiB
Python
from zope import schema
|
|
from zope.interface import implements
|
|
|
|
from plone.autoform import directives as form
|
|
|
|
from collective.contact.core.schema import ContactList, ContactChoice
|
|
from collective.dms.basecontent.dmsdocument import IDmsDocument, DmsDocument
|
|
from collective.dms.mailcontent.dmsmail import IDmsIncomingMail, DmsIncomingMail
|
|
|
|
from pfwbged.basecontent import _
|
|
|
|
from .widget import AjaxChosenFieldWidget, ReallyAjaxChosenFieldWidget
|
|
|
|
|
|
class IPfwbBaseDocument(IDmsDocument):
|
|
original_paper_version = schema.Choice(
|
|
title=_(u'Original Paper Version'),
|
|
required=False,
|
|
vocabulary='collective.dms.basecontent.recipient_groups')
|
|
form.widget(original_paper_version=AjaxChosenFieldWidget)
|
|
|
|
|
|
class PfwbBaseDocument(DmsDocument):
|
|
implements(IPfwbBaseDocument)
|
|
|
|
|
|
class IMedicalCertificate(IDmsIncomingMail):
|
|
""" """
|
|
concerned_contact = ContactChoice(
|
|
title=_(u'Concerned Person'),
|
|
portal_types=('person',),
|
|
required=False)
|
|
|
|
concerned_person = schema.Choice(
|
|
title=_(u'Concerned Person (do not use anymore)'),
|
|
required=False,
|
|
vocabulary='plone.principalsource.Users')
|
|
form.widget(concerned_person=ReallyAjaxChosenFieldWidget)
|
|
|
|
|
|
class MedicalCertificate(DmsIncomingMail):
|
|
implements(IMedicalCertificate)
|
|
|
|
|
|
class IPressRelease(IPfwbBaseDocument):
|
|
""" """
|
|
contacts = ContactList(
|
|
title=_(u'Contacts'),
|
|
required=False)
|
|
|
|
class PressRelease(PfwbBaseDocument):
|
|
implements(IPressRelease)
|
|
|
|
|
|
class IMeetingDate(IPfwbBaseDocument):
|
|
""" """
|
|
meeting_date = schema.Date(
|
|
title=_(u'Meeting Date'),
|
|
required=False)
|
|
|
|
|
|
class IAgenda(IMeetingDate):
|
|
""" """
|
|
|
|
class Agenda(PfwbBaseDocument):
|
|
implements(IAgenda)
|
|
|
|
|
|
class IBoardDecision(IPfwbBaseDocument):
|
|
""" """
|
|
meeting_date = schema.Date(
|
|
title=_(u'Meeting Date'),
|
|
required=False)
|
|
|
|
immediate = schema.Bool(
|
|
title=_(u'Immediate Decision'),
|
|
default=False)
|
|
|
|
|
|
class BoardDecision(PfwbBaseDocument):
|
|
implements(IBoardDecision)
|
|
|
|
|
|
class IGreenBoardDecision(IMeetingDate):
|
|
""" """
|
|
|
|
|
|
class GreenBoardDecision(PfwbBaseDocument):
|
|
implements(IGreenBoardDecision)
|
|
|
|
|
|
class IInsuranceDocument(IPfwbBaseDocument):
|
|
""" """
|
|
person = ContactChoice(
|
|
title=_(u'Person'),
|
|
required=False)
|
|
|
|
company = schema.TextLine(
|
|
title=_(u'Insurance Company'),
|
|
required=False)
|
|
|
|
company_reference = schema.TextLine(
|
|
title=_(u'Insurance Company Reference'),
|
|
required=False)
|
|
|
|
document_type = schema.Choice(
|
|
title=_(u'Document Type'),
|
|
vocabulary='InsuranceDocumentTypes')
|
|
|
|
|
|
class InsuranceDocument(PfwbBaseDocument):
|
|
implements(IInsuranceDocument)
|
|
|
|
|
|
class IInvoice(IDmsIncomingMail):
|
|
""" """
|
|
|
|
|
|
class Invoice(DmsIncomingMail):
|
|
implements(IInvoice)
|
|
|
|
|
|
class INoteForBoard(IPfwbBaseDocument):
|
|
""" """
|
|
internal_reference_no = schema.TextLine(
|
|
title=_(u'Internal Reference Number'),
|
|
required=False)
|
|
|
|
|
|
class NoteForBoard(PfwbBaseDocument):
|
|
implements(INoteForBoard)
|
|
|
|
|
|
class IInternalNote(IPfwbBaseDocument):
|
|
internal_reference_no = schema.TextLine(
|
|
title=_(u'Internal Reference Number'),
|
|
required=False)
|
|
|
|
sender = ContactChoice(
|
|
title=_(u'Sender'),
|
|
required=False)
|
|
|
|
recipients = ContactList(
|
|
title=_(u'Recipients'),
|
|
required=False)
|
|
|
|
session = schema.Choice(title=_(u'Session'),
|
|
vocabulary='Sessions', required=False)
|
|
|
|
|
|
class InternalNote(PfwbBaseDocument):
|
|
implements(IInternalNote)
|
|
|
|
|
|
class IMinutes(IDmsDocument):
|
|
reference = schema.TextLine(
|
|
title=_(u'Internal Reference'),
|
|
required=False)
|
|
|
|
meeting_date = schema.Date(
|
|
title=_(u'Meeting Date'),
|
|
required=False)
|
|
|
|
|
|
class Minutes(DmsDocument):
|
|
implements(IMinutes)
|
|
|
|
|
|
class IBoardMinutes(IDmsDocument):
|
|
reference = schema.TextLine(
|
|
title=_(u'Internal Reference'),
|
|
required=False)
|
|
|
|
meeting_date = schema.Date(
|
|
title=_(u'Meeting Date'),
|
|
required=False)
|
|
|
|
|
|
class BoardMinutes(DmsDocument):
|
|
implements(IBoardMinutes)
|
|
|
|
|
|
class IApfIncomingMail(IDmsIncomingMail):
|
|
""" """
|
|
|
|
class ApfIncomingMail(DmsIncomingMail):
|
|
implements(IApfIncomingMail)
|
|
|
|
|
|
class IApfOutgoingMail(IDmsIncomingMail):
|
|
""" """
|
|
|
|
class ApfOutgoingMail(DmsIncomingMail):
|
|
implements(IApfOutgoingMail)
|