from Products.Archetypes.atapi import *
from Products.Archetypes.public import *

from Products.ATContentTypes.content.base import ATCTContent, ATContentTypeSchema
from Products.ATContentTypes.content import schemata

from vindula.reservacorporativa import MessageFactory as _
from vindula.reservacorporativa.config import *
from vindula.reservacorporativa.content.interfaces import IVindulaReserve

VindulaReserve_schema = ATContentTypeSchema + Schema((
    BooleanField(
        name='activ_portletLeft',
        default=False,
        widget=BooleanWidget(
            label=_(u'Portlet Esquerda'),
            description=
            _(u'Se selecionado, ativa a visualização dos portet na coluna da esquerda.'
              ),
        ),
        required=False,
    ),
    BooleanField(
        name='activ_portletRight',
        default=False,
        widget=BooleanWidget(
            label=_(u'Portlet Direita'),
            description=
            _(u'Se selecionado, ativa a visualização dos portet na coluna da direita.'
              ),
        ),
from vindula.reservacorporativa import MessageFactory as _
from Products.Archetypes.atapi import *

from Products.ATContentTypes.content.event import ATEvent
from Products.ATContentTypes.content.schemata import finalizeATCTSchema
from vindula.reservacorporativa.config import *

from vindula.reservacorporativa.content.interfaces import IContentReserve, IEventReserve

event_reserve_schema = ATEvent.schema.copy() + Schema((


    BooleanField(
        name='recurrent',
        widget=BooleanWidget(
            label=_(u"Ativar evento recorrente"),
            description=_(u"Selecione para marcar este evento como recorrente"),
            label_msgid='vindula_themedefault_label_recurrent',
            description_msgid='vindula_themedefault_help_recurrent',
            i18n_domain='vindula_themedefault',
        ),
        default=False         
    ),
    
    StringField(
        name='frequency',
        widget=SelectionWidget(
            label=_(u"Frequência"),
            description=_(u"Informe a frequência com que os eventos ocorrem."),
            label_msgid='vindula_tile_label_frequency',
            description_msgid='vindula_tile_help_frequency',
class IReserve(form.Schema):
    """ Reserve Folder for Events """

    frequency = schema.Choice(
        title=_(u"Frequência"),
        description=_(u"Informe a frequência com que os eventos ocorrem."),
        values=['semanal', 'quinzenal', 'mensal'],
        default=_(u"semanal"),
    )

    local = schema.TextLine(
        title=_(u"Local"),
        description=_(u"Informe o local onde os eventos deverão ocorrer."),
    )

    duration = schema.Time(
        title=_(u"Duração"),
        description=_(
            u"Informe a duração dos eventos. Ex.: 01:00 (uma hora)."),
    )

    contact = schema.TextLine(
        title=_(u"Contato"),
        description=
        _(u"Insira o email do usuário que vai receber notificações das reservas efetuadas."
          ),
        required=False,
    )

    form.widget(additional_items=DataGridFieldFactory)
    additional_items = schema.List(
        title=u"Itens da reserva corporativa",
        description=_(
            u"Informe os itens que podem conter na reserva corporativa."),
        required=False,
        value_type=DictRow(title=u"Itens", schema=ITableRowSchema))

    mult_horarios = schema.Bool(
        title=_(u"Permitir mais de um horário"),
        description=
        _(u"Selecione se essa reserva irá permitir que o usuário selecione mais de um horário por reserva."
          ),
        required=False,
    )

    recurrent = schema.Bool(
        title=_(u"Permitir agendamento recorrente"),
        description=
        _(u"Selecione se essa reserva irá permitir que o usuário um agendamento recorrente nessa reserva."
          ),
        required=False,
    )

    replic_semana = schema.Bool(
        title=_(u"Replicar na semana"),
        description=
        _(u"Selecione esta opção caso haja reservas disponíveis para todos os dias da semana, informando nos campos abaixo os horários de inicio e término.\
                        Caso não deseje esta opção desconsidere os dois próximos campos abaixo."
          ),
        required=False,
    )

    replic_start = schema.Time(
        title=_(u"Hora que começa (Replicar na semana)"),
        required=False,
    )

    replic_end = schema.Time(
        title=_(u"Hora que termina (Replicar na semana)"),
        required=False,
    )

    # Monday
    monday = schema.Bool(
        title=_(u"Segunda"),
        description=
        _(u"Selecione a opção caso haja reservas disponíveis nas segundas e indique os horários de início e término."
          ),
    )

    mon_start = schema.Time(
        title=_(u"Hora que começa"),
        required=False,
    )

    mon_end = schema.Time(
        title=_(u"Hora que termina"),
        required=False,
    )

    # Tuesday
    tuesday = schema.Bool(
        title=_(u"Terça"),
        description=
        _(u"Selecione a opção caso haja reservas disponíveis nas terças e indique os horários de início e término."
          ),
        default=False)

    tue_start = schema.Time(
        title=_(u"Hora que começa"),
        required=False,
    )

    tue_end = schema.Time(
        title=_(u"Hora que termina"),
        required=False,
    )

    # Wednesday
    wednesday = schema.Bool(
        title=_(u"Quarta"),
        description=
        _(u"Selecione a opção caso haja reservas disponíveis nas quartas e indique os horários de início e término."
          ),
        default=False)

    wed_start = schema.Time(
        title=_(u"Hora que começa"),
        required=False,
    )

    wed_end = schema.Time(
        title=_(u"Hora que termina"),
        required=False,
    )

    # Thursday
    thursday = schema.Bool(
        title=_(u"Quinta"),
        description=
        _(u"Selecione a opção caso haja reservas disponíveis nas quintas e indique os horários de início e término."
          ),
        default=False)

    thu_start = schema.Time(
        title=_(u"Hora que começa"),
        required=False,
    )

    thu_end = schema.Time(
        title=_(u"Hora que termina"),
        required=False,
    )

    # Friday
    friday = schema.Bool(
        title=_(u"Sexta"),
        description=
        _(u"Selecione a opção caso haja reservas disponíveis nas sextas e indique os horários de início e término."
          ),
        default=False)

    fri_start = schema.Time(
        title=_(u"Hora que começa"),
        required=False,
    )

    fri_end = schema.Time(
        title=_(u"Hora que termina"),
        required=False,
    )

    # Saturday
    saturday = schema.Bool(
        title=_(u"Sábado"),
        description=
        _(u"Selecione a opção caso haja reservas disponíveis nos sábados e indique os horários de início e término."
          ),
        default=False)

    sat_start = schema.Time(
        title=_(u"Hora que começa"),
        required=False,
    )

    sat_end = schema.Time(
        title=_(u"Hora que termina"),
        required=False,
    )

    # Sunday
    sunday = schema.Bool(
        title=_(u"Domingo"),
        description=
        _(u"Selecione a opção caso haja reservas disponíveis nos domingos e indique os horários de início e término."
          ),
        default=False)

    sun_start = schema.Time(
        title=_(u"Hora que começa"),
        required=False,
    )

    sun_end = schema.Time(
        title=_(u"Hora que termina"),
        required=False,
    )

    obj_contentcore = RelationChoice(
        title=_(u"Vincular com um formulario basico"),
        description=_(
            u"Selecione o objeto de formulario para ser exibido com a reserva"
        ),
        source=ObjPathSourceBinder(review_state='published'),
        required=False,
    )

    form.fieldset('Horarios',
                  fields=[
                      'monday', 'mon_start', 'mon_end', 'tuesday', 'tue_start',
                      'tue_end', 'wednesday', 'wed_start', 'wed_end',
                      'thursday', 'thu_start', 'thu_end', 'friday',
                      'fri_start', 'fri_end', 'saturday', 'sat_start',
                      'sat_end', 'sunday', 'sun_start', 'sun_end'
                  ])

    form.fieldset('Avançado',
                  fields=['additional_items', 'recurrent', 'obj_contentcore'])
Example #4
0
# -*- coding: utf-8 -*-
from zope.interface import implements
from Products.CMFCore.utils import getToolByName
from vindula.reservacorporativa import MessageFactory as _
from Products.Archetypes.atapi import *

from Products.ATContentTypes.content.event import ATEvent
from Products.ATContentTypes.content.schemata import finalizeATCTSchema
from vindula.reservacorporativa.config import *

from vindula.reservacorporativa.content.interfaces import IContentReserve, IEventReserve

event_reserve_schema = ATEvent.schema.copy() + Schema((
    BooleanField(name='recurrent',
                 widget=BooleanWidget(
                     label=_(u"Ativar evento recorrente"),
                     description=_(
                         u"Selecione para marcar este evento como recorrente"),
                     label_msgid='vindula_themedefault_label_recurrent',
                     description_msgid='vindula_themedefault_help_recurrent',
                     i18n_domain='vindula_themedefault',
                 ),
                 default=False),
    StringField(
        name='frequency',
        widget=SelectionWidget(
            label=_(u"Frequência"),
            description=_(u"Informe a frequência com que os eventos ocorrem."),
            label_msgid='vindula_tile_label_frequency',
            description_msgid='vindula_tile_help_frequency',
            i18n_domain='vindula_themedefault',
from Products.ATContentTypes.content.base import ATCTContent, ATContentTypeSchema
from Products.ATContentTypes.content import schemata

from vindula.reservacorporativa import MessageFactory as _
from vindula.reservacorporativa.config import *
from vindula.reservacorporativa.content.interfaces import IVindulaReserve



VindulaReserve_schema = ATContentTypeSchema + Schema((

    BooleanField(
        name='activ_portletLeft',
        default=False,
        widget=BooleanWidget(
            label=_(u'Portlet Esquerda'),
            description=_(u'Se selecionado, ativa a visualização dos portet na coluna da esquerda.'),
        ),
        required=False,
    ),

    BooleanField(
        name='activ_portletRight',
        default=False,
        widget=BooleanWidget(
            label=_(u'Portlet Direita'),
            description=_(u'Se selecionado, ativa a visualização dos portet na coluna da direita.'),
        ),
        required=False,
    ),
    
from DateTime import DateTime

BlockReserve_schema = ATDocumentSchema.copy() + Schema((

    #    StringField(
    #        name='reserves',
    #        widget=SelectionWidget(label=_(u"Reserva relacionada."),
    #                               description=_(u"Selecione qual reserva corporativa vai ser bloqueada."),
    #                               ),
    #        required=True,
    #        vocabulary='voc_reserves',
    #    ),
    StringField(
        name='start_time',
        widget=StringWidget(
            label=_(u"Horário inicial"),
            description=_(
                u"Selecione o horário inicial que a reserva será bloqueada."),
        ),
        required=True,
    ),
    StringField(
        name='end_time',
        widget=StringWidget(
            label=_(u"Horário final"),
            description=_(
                u"Selecione até que horário a reserva será bloqueada."),
        ),
        required=True,
    ),
    DateTimeField(
BlockReserve_schema = ATDocumentSchema.copy() + Schema((
                                                        
#    StringField(
#        name='reserves',
#        widget=SelectionWidget(label=_(u"Reserva relacionada."),
#                               description=_(u"Selecione qual reserva corporativa vai ser bloqueada."),
#                               ),
#        required=True,
#        vocabulary='voc_reserves',
#    ),  
                                                          
    StringField(
            name='start_time',
            widget=StringWidget(
                label=_(u"Horário inicial"),
                description=_(u"Selecione o horário inicial que a reserva será bloqueada."),
            ),
        required=True,
    ),
    
    StringField(
            name='end_time',
            widget=StringWidget(
                label=_(u"Horário final"),
                description=_(u"Selecione até que horário a reserva será bloqueada."),
            ),
        required=True,
    ),  
    
    DateTimeField(