Exemple #1
0
class OptionalVenueSchema(VisualisableElementSchema, SearchableEntitySchema):

    typ_factory = ObjectData

    name = NameSchemaNode(
        editing=context_is_a_venue,
        )

    id = colander.SchemaNode(
        colander.String(),
        widget=deform.widget.HiddenWidget(),
        title="ID",
        missing=""
        )

    title = colander.SchemaNode(
        colander.String(),
        widget=venue_choice,
        title=_('Venue title'),
        description=_('Indicate the venue (room, theatre, lecture hall, square, etc.).'),
        )

    description = colander.SchemaNode(
        colander.String(),
        widget=RichTextWidget(),
        description=_("Vous pouvez ajouter ou éditer la description du lieu. Cette description doit porter sur le lieu de l'annonce et non sur l'annonce."),
        title=_("Venue description")
        )

    addresses = colander.SchemaNode(
        colander.Sequence(),
        omit(AddressSchema(name='address',
                           widget=SimpleMappingWidget(
                               css_class='address-well object-well default-well')),
        ['_csrf_token_']),
        widget=SimpleSequenceWidget(
            min_len=1,
            add_subitem_text_template=_('Add a new address'),
            remove_subitem_text_template=_('Remove the address')),
        title=_('Venue addresses'),
        )

    other_conf = omit(MoreInfoVebueSchema(widget=SimpleMappingtWidget(
                        mapping_css_class='controled-form'
                                          ' object-well hide-bloc',
                        ajax=True,
                        control_css_class='optional-venue-form',
                        activator_css_class="glyphicon glyphicon-map-marker",
                        activator_title=_("Avez-vous une minute ? Afin d'améliorer la visibilité et la pertinence de votre événement, pensez à vérifier ou compléter les informations associées au lieu en cliquant ici."))),
                        ["_csrf_token_"])

    origin_oid = colander.SchemaNode(
        colander.Int(),
        widget=deform.widget.HiddenWidget(),
        title=_('OID'),
        missing=0
        )
Exemple #2
0
class StructureBaseSchema(VisualisableElementSchema):
    """Schema for Structure"""

    structure_name = colander.SchemaNode(
        colander.String(),
        title=_('Structure name'),
        )

    domains = colander.SchemaNode(
        colander.String(),
        widget=LimitedTextAreaWidget(rows=5,
                                     cols=30,
                                     limit=350,
                                     alert_values={'limit': 350},
                                     css_class="ce-field-description"),
        title=_("Cultural domains"),
        missing="",
        )

    address = colander.SchemaNode(
        colander.Sequence(),
        omit(AddressSchema(name='address',
                     widget=SimpleMappingWidget(
                         css_class='address-well object-well default-well')),
             ['_csrf_token_']),
        widget=SequenceWidget(
            max_len=1,
            min_len=1,
            add_subitem_text_template=_('Add a new address')),
        title=_('Address'),
        )

    contact = colander.SchemaNode(
        colander.Sequence(),
        omit(select(ContactSchema(name='contact',
                           widget=SimpleMappingWidget(
                           css_class='address-well object-well default-well')),
                    ['person_to_contact', 'public_phone',
                     'professional_phone', 'fax', 'website']),
             ['_csrf_token_']),
        widget=SequenceWidget(
            max_len=1,
            min_len=1,
            add_subitem_text_template=_('Add a new contact')),
        title=_('Contact'),
        )

    picture = colander.SchemaNode(
        ObjectData(Image),
        widget=get_file_widget(file_type=['image']),
        title=_('Logo'),
        required=False,
        missing=None,
        )
Exemple #3
0
    def before_update(self):
        if len(self.request.analytics_default_content_types) == 1:
            self.schema = omit(self.schema, ['content_types'])

        if len(self.request.content_to_examine) == 0:
            self.schema = omit(self.schema, [('dates', ['date_of'])])

        formwidget = deform.widget.FormWidget(
            css_class='analytics-form filter-form')
        formwidget.template = 'novaideo:views/templates/ajax_form.pt'
        formwidget.ajax_url = self.request.resource_url(
            self.context, '@@analyticsapi', query={'op': 'contents_by_dates'})
        self.schema.widget = formwidget
Exemple #4
0
    def before_update(self):
        if len(self.request.analytics_default_content_types) == 1:
            self.schema = omit(self.schema, ['content_types'])

        if len(self.request.content_to_examine) == 0:
            self.schema = omit(self.schema, [('dates', ['date_of'])])

        formwidget = deform.widget.FormWidget(
            css_class='analytics-form filter-form')
        formwidget.template = 'novaideo:views/templates/ajax_form.pt'
        formwidget.ajax_url = self.request.resource_url(
            self.context, '@@analyticsapi', query={'op': 'contents_by_dates'})
        self.schema.widget = formwidget
 def before_update(self):
     site = self.context
     services = site.get_all_services(kinds=['extractionservice'],
                                      delegation=False)
     has_extraction = 'extractionservice' in services
     if not has_extraction:
         self.schema = omit(self.schema, ['pub_conf'])
     else:
         has_periodic = getattr(services['extractionservice'][0],
                                'has_periodic', False)
         if not has_periodic:
             self.schema = omit(self.schema, [('pub_conf', [
                 'closing_date', 'closing_frequence',
                 'delay_before_publication', 'publication_number'
             ])])
Exemple #6
0
class EventsInterfaceConfigurationSchema(Schema):

    nb_event_maxi = colander.SchemaNode(
        colander.Integer(),
        title=_('Maximum number of events per Member'),
        default=7,
    )

    event_descriptions = colander.SchemaNode(
        colander.Sequence(),
        omit(
            select(
                EventDescriptionTemplate(
                    name='description',
                    title=_('Description'),
                    widget=SimpleMappingWidget(
                        css_class=
                        "object-well default-well mail-template-well mail-template-block"
                    )), ['locale', 'template']), ['_csrf_token_']),
        widget=SequenceWidget(
            min_len=1,
            max_len=len(AVAILABLE_LANGUAGES),
            add_subitem_text_template=_('Add a new description')),
        title=_('Descriptions'),
        default=descriptions_default)
Exemple #7
0
class CreationCulturelleApplicationSchema(VisualisableElementSchema):
    """Schema for application configuration."""

    name = NameSchemaNode(editing=context_is_a_root, )

    titles = colander.SchemaNode(
        colander.Sequence(),
        colander.SchemaNode(colander.String(), name=_("Title")),
        widget=SequenceWidget(),
        default=DEFAULT_TITLES,
        title=_('List of titles'),
    )

    tree = colander.SchemaNode(
        typ=DictSchemaType(),
        validator=colander.All(keywords_validator),
        widget=keyword_widget,
        default=DEFAULT_TREE,
        title=_('Categories'),
    )

    organizations = colander.SchemaNode(
        colander.Sequence(),
        omit(
            OrganizationSchema(factory=Organization,
                               editable=True,
                               name=_('Organization'),
                               widget=SimpleMappingWidget(
                                   css_class='object-well default-well'),
                               omit=['managers']), ['_csrf_token_']),
        widget=organizations_choice,
        title=_('Organizations'),
    )
class PayCulturalEventView(FormView):
    title = _('Submit')
    name = 'payculturaleventform'
    formid = 'formpayculturalevent'
    schema = omit(PaySchema(), ['_csrf_token_'])
    behaviors = [PayCulturalEvent]
    validate_behaviors = False
    action = 'https://paiement.systempay.fr/vads-payment/'

    def update(self):
        payment_confirmation = self.params('payment_confirmation')
        if payment_confirmation:
            #@TODO traitement du paiment
            pass
        else:
            return super(PayCulturalEventView, self).update()

    def before_update(self):
        formwidget = deform.widget.FormWidget(css_class='compareform')
        formwidget.template = 'lac:views/templates/pay_form.pt'
        cancel_url = self.request.resource_url(self.context, '@@index')
        formwidget.cancel_url = cancel_url
        self.schema.widget = formwidget

    def default_data(self):
        #@TODO calcul de la signature et des valeur du formulaire
        return {'signature': 'testsignature'}
class ServiceDefinitionSchema(VisualisableElementSchema):
    """Schema for service"""

    description = colander.SchemaNode(
        colander.String(),
        widget=LimitedTextAreaWidget(rows=5,
                                     cols=30,
                                     limit=350,
                                     alert_values={'limit': 350},
                                     css_class="ce-field-description"),
        description=_('Thank you to enter a description for your service.'),
        title=_("Description of the service"),
    )

    details = colander.SchemaNode(
        colander.String(),
        widget=RichTextWidget(),
        missing="",
        description=_('Other information about the service.'),
        title=_('Details'),
    )

    subscription = omit(
        SubscriptionSchema(widget=SimpleMappingWidget(
            css_class='object-well default-well')), ['_csrf_token_'])
Exemple #10
0
class FilterConfigurationSchema(Schema):

    filters = colander.SchemaNode(
        colander.Sequence(),
        omit(select(FilterSchema(name='filter',
                                 title=_('Filter'),
                                 widget=SimpleMappingWidget(
                                         css_class="object-well default-well mail-template-well mail-template-block")),
                       ['metadata_filter', 'geographic_filter',
                        'temporal_filter', 'contribution_filter',
                        'text_filter', 'other_filter']),
                 ["_csrf_token_"]),
        title=_('Filters'),
        widget=SequenceWidget(
            min_len=1,
            add_subitem_text_template=_('Add a new filter')))

    hold_filter = colander.SchemaNode(
        colander.Boolean(),
        widget=deform.widget.CheckboxWidget(),
        label=_('Keep the filter after sign in'),
        title='',
        default=True,
        missing=True
        )
Exemple #11
0
class ExplanationGroupsSchema(Schema):

    groups = colander.SchemaNode(
        colander.Sequence(),
        omit(
            ExplanationGroupSchema(name='Amendment',
                                   widget=DragDropMappingWidget()),
            ['_csrf_token_']),
        widget=groups_widget,
        title=_('Group your improvements into amendments'))

    single_amendment = colander.SchemaNode(
        colander.Boolean(),
        widget=deform.widget.CheckboxWidget(
            css_class="single-amendment-control"),
        label=_('Group the improvements into a single amendment'),
        title='',
        missing=False)

    justification = colander.SchemaNode(
        colander.String(),
        widget=LimitedTextAreaWidget(
            limit=350,
            item_css_class="justification-amendment hide-bloc",
            placeholder=_("Justification")),
        missing="",
        title=_("Justification"))
Exemple #12
0
class ContentsByDatesSchema(ContentsByKeywordsSchema):

    dates = omit(
        IntervalDates(widget=SimpleMappingWidget(css_class="filter-block"
                                                 " object-well"
                                                 " default-well")),
        ["_csrf_token_"])
Exemple #13
0
class MailSeqTemplate(Schema):

    mail_id = colander.SchemaNode(
        colander.String(),
        widget=deform.widget.HiddenWidget(),
        title=_('Mail id'),
        )

    title = colander.SchemaNode(
        colander.String(),
        widget=deform.widget.TextInputWidget(template='readonly/textinput'),
        title=_('Title'),
        missing=""
        )

    languages = colander.SchemaNode(
        colander.Sequence(),
        omit(select(MailTemplate(name='language',
                                 title=_('language'),
                                 widget=SimpleMappingWidget(
                                         css_class="object-well default-well mail-template-well mail-template-block")),
                        ['locale', 'subject', 'template']),
                    ['_csrf_token_']),
        widget=SequenceWidget(
            min_len=1,
            max_len=len(AVAILABLE_LANGUAGES),
            add_subitem_text_template=_('Add a new language')),
        title=_('Languages'),
        )
Exemple #14
0
class SearchableEntitySchema(Schema):
    typ_factory = ObjectData

    tree = colander.SchemaNode(
        typ=DictSchemaType(),
        validator=colander.All(keywords_validator),
        widget=keyword_widget,
        default=DEFAULT_TREE,
        title=_('Categories'),
        description=_('Indicate the category of the event. Please specify a second keyword level for each category chosen.')
        )

    metadata = omit(MetadataSchema(widget=SimpleMappingtWidget(
                                mapping_css_class='controled-form'
                                                  ' object-well default-well hide-bloc',
                                control_css_class='alert alert-success',
                                ajax=True,
                                activator_css_class="glyphicon glyphicon-cog",
                                activator_title=_('Manage metadata'))),
                        ["_csrf_token_"])

    def deserialize(self, cstruct=colander.null):
        appstruct = super(SearchableEntitySchema, self).deserialize(cstruct)
        if 'metadata' not in appstruct:
            return appstruct

        metadata = appstruct.pop('metadata', {})
        appstruct.update(metadata)
        return appstruct
Exemple #15
0
class LabelsSchema(Schema):

    labels = colander.SchemaNode(
        colander.Set(),
        widget=labels_choices,
        title=_('Labels'),
        description=_('You can add labels to this object.'),
        default=[],
        missing=[]
        )

    new_labels = colander.SchemaNode(
        colander.Sequence(),
        omit(select(LabelSchema(
            name='new_label',
            factory=Label,
            editable=True,
            widget=SimpleMappingWidget(
               css_class='label-well object-well default-well')),
            ['title', 'picture']),
        ['_csrf_token_']),
        widget=SequenceWidget(
            add_subitem_text_template=_('Add a new label')),
        title=_('New labels'),
        )
Exemple #16
0
 def before_update(self):
     self.schema = omit(select(CalendarSearchSchema(),
                          ['thematics',
                           'dates',
                           'artists_ids',
                           'text_to_search']),
                     ['_csrf_token_'])
Exemple #17
0
class CreateIdeaView(FormView):

    title = _('Create an idea')
    schema = omit(
        select(IdeaSchema(factory=Idea, editable=True, omit=('anonymous', )), [
            'challenge', 'title', 'text', 'tree', 'attached_files', 'anonymous'
        ]), ["_csrf_token_"])
    behaviors = [
        CrateAndPublishAsProposal, CrateAndPublish, CreateIdea, Cancel
    ]
    formid = 'formcreateidea'
    name = 'createidea'
    css_class = 'panel-transparent'

    def before_update(self):
        user = get_current(self.request)
        behaviors = [
            CrateAndPublishAsProposal, CrateAndPublish, CreateIdea, Cancel
        ]
        if 'proposal' not in self.request.content_to_manage:
            behaviors = [CrateAndPublish, CreateIdea, Cancel]

        if getattr(self.request, 'moderate_ideas', False):
            can_submit = getattr(user, 'can_submit_idea', lambda: True)
            if not can_submit():
                behaviors.remove(CrateAndPublish)

        if len(behaviors) < 4:
            self.behaviors = behaviors
            self.behaviors_instances = OrderedDict()
            specific_behaviors = [
                b._class_ for b in self.specific_behaviors_instances
            ]
            self._init_behaviors(specific_behaviors)

        self.schema = update_anonymous_schemanode(self.request.root,
                                                  self.schema)
        self.schema = update_challenge_schemanode(self.request, user,
                                                  self.schema)
        if not getattr(self, 'is_home_form', False):
            self.action = self.request.resource_url(
                self.context,
                'novaideoapi',
                query={
                    'op': 'update_action_view',
                    'node_id': CreateIdea.node_definition.id
                })
            self.schema.widget = deform.widget.FormWidget(
                css_class='deform novaideo-ajax-form')
        else:
            self.action = self.request.resource_url(self.context, 'createidea')
            self.schema.widget = deform.widget.FormWidget(
                css_class='material-form deform')

    def bind(self):
        if getattr(self, 'is_home_form', False):
            return {'is_home_form': True}

        return {}
Exemple #18
0
 def before_update(self):
     site = get_site_folder(True)
     services = site.get_all_services(
         kinds=['extractionservice'], delegation=False)
     has_extraction = 'extractionservice' in services and\
         getattr(services['extractionservice'][0], 'has_periodic', False)
     if not has_extraction:
         self.schema = omit(self.schema, ['publication_number'])
 def before_update(self):
     site = self.context
     services = site.get_all_services(
         kinds=['extractionservice'], delegation=False)
     has_extraction = 'extractionservice' in services
     if not has_extraction:
         self.schema = omit(self.schema, ['pub_conf'])
     else:
         has_periodic = getattr(
             services['extractionservice'][0], 'has_periodic', False)
         if not has_periodic:
             self.schema = omit(
                 self.schema,
                 [('pub_conf', ['closing_date',
                                'closing_frequence',
                                'delay_before_publication',
                                'publication_number'])])
Exemple #20
0
 def before_update(self):
     site = get_site_folder(True)
     services = site.get_all_services(
         kinds=['extractionservice'], delegation=False)
     has_extraction = 'extractionservice' in services and\
         getattr(services['extractionservice'][0], 'has_periodic', False)
     if not has_extraction:
         self.schema = omit(self.schema, ['publication_number'])
Exemple #21
0
    def start(self, context, request, appstruct, **kw):
        datas = context.get_data(
            select(omit(InvitationSchema(), ['_csrf_token_']), [
                'user_title', 'roles', 'first_name', 'last_name', 'email',
                'organization'
            ]))
        roles = datas.pop('roles')
        password = appstruct['password']
        datas['locale'] = my_locale_negotiator(request)
        person = Person(password=password, **datas)
        root = getSite(context)
        principals = find_service(root, 'principals')
        users = principals['users']
        name = person.first_name + ' ' + person.last_name
        name = name_chooser(users, name=name)
        users[name] = person
        if getattr(context, 'ismanager', False) and \
           context.organization:
            grant_roles(person,
                        (('OrganizationResponsible', context.organization), ))

        person.state.append('active')
        grant_roles(person, roles)
        grant_roles(person, (('Owner', person), ))
        manager = context.manager
        root.delfromproperty('invitations', context)
        root.addtoproperty('news_letter_members', person)
        newsletters = root.get_newsletters_automatic_registration()
        email = getattr(person, 'email', '')
        if newsletters and email:
            for newsletter in newsletters:
                newsletter.subscribe(person.first_name, person.last_name,
                                     email)

        context.person = person
        if manager:
            mail_template = root.get_mail_template(
                'accept_invitation',
                getattr(manager, 'user_locale', root.locale))
            localizer = request.localizer
            email_data = get_user_data(person, 'user', request)
            novaideo_title = request.root.title
            roles_translate = [
                localizer.translate(APPLICATION_ROLES.get(r, r)) for r in roles
            ]
            subject = mail_template['subject'].format(
                novaideo_title=novaideo_title, **email_data)
            email_data.update(get_user_data(manager, 'recipient', request))
            email_data.update(get_entity_data(person, 'user', request))
            message = mail_template['template'].format(
                roles=", ".join(roles_translate),
                novaideo_title=novaideo_title,
                **email_data)
            alert('email', [root.get_site_sender()], [manager.email],
                  subject=subject,
                  body=message)

        return {}
Exemple #22
0
class ProposalSchema(VisualisableElementSchema, SearchableEntitySchema):
    """Schema for Proposal"""

    name = NameSchemaNode(
        editing=context_is_a_proposal,
        )

    challenge = colander.SchemaNode(
        ObjectType(),
        widget=challenge_choice,
        missing=None,
        title=_("Challenge (optional)"),
        description=_("You can select and/or modify the challenge associated to this proposal. "
                      "For an open proposal, do not select anything in the « Challenge » field.")
    )

    description = colander.SchemaNode(
        colander.String(),
        validator=colander.Length(max=600),
        widget=LimitedTextAreaWidget(rows=5,
                                     cols=30,
                                     limit=600),
        title=_("Abstract")
        )

    text = colander.SchemaNode(
        colander.String(),
        widget=RichTextWidget(),
        title=_("Text")
        )

    related_ideas = colander.SchemaNode(
        colander.Set(),
        widget=ideas_choice,
        title=_('Related ideas'),
        validator=Length(_, min=1),
        default=[],
        )

    add_files = omit(AddFilesSchemaSchema(
                        widget=SimpleMappingtWidget(
                        mapping_css_class='controled-form'
                                          ' object-well default-well hide-bloc',
                        ajax=True,
                        activator_icon="glyphicon glyphicon-file",
                        activator_title=_('Add files'))),
                    ["_csrf_token_"])

    anonymous = colander.SchemaNode(
        colander.Boolean(),
        widget=anonymous_widget,
        label=_('Remain anonymous'),
        description=_('Check this box if you want to remain anonymous.'),
        title='',
        missing=False,
        default=False
        )
Exemple #23
0
class NewsletterSchema(VisualisableElementSchema):
    """Schema for newsletter"""

    typ_factory = ObjectData

    name = NameSchemaNode(editing=context_is_a_newsletter, )

    subject = colander.SchemaNode(
        colander.String(),
        title=_('Subject'),
        default=default_subject,
        description=_('The subject of the newsletter.'))

    description = colander.SchemaNode(colander.String(),
                                      widget=deform.widget.TextAreaWidget(
                                          rows=4, cols=60),
                                      title=_("Description"))

    content = colander.SchemaNode(
        colander.String(),
        validator=colander.All(content_validator, ),
        widget=RichTextWidget(),
        default=default_content,
        missing='',
        title=_("Content"),
        description=_("The content to be sent."),
    )

    working_params_conf = omit(
        NewsletterWorkingParamConf(widget=SimpleMappingtWidget(
            mapping_css_class='controled-form'
            ' object-well default-well',
            ajax=True,
            activator_icon="glyphicon glyphicon-cog",
            activator_title=_('Configure the working parameters'))),
        ["_csrf_token_"])

    rec_conf = omit(
        NewsletterRecConf(widget=SimpleMappingtWidget(
            mapping_css_class='controled-form'
            ' object-well default-well',
            ajax=True,
            activator_icon="glyphicon glyphicon-repeat",
            activator_title=_('Configure the recurrence'))), ["_csrf_token_"])
Exemple #24
0
    def before_update(self):
        if getattr(self.parent, 'is_draft_owner', False):
            self.schema = omit(self.schema, ['explanation'])

        self.action = self.request.resource_url(
            self.context, 'novaideoapi',
            query={'op': 'update_action_view',
                   'node_id': DeleteProposal.node_definition.id})
        self.schema.widget = deform.widget.FormWidget(
            css_class='deform novaideo-ajax-form')
Exemple #25
0
class CandidatesSchema(Schema):
    candidates = colander.SchemaNode(colander.Sequence(),
                                     omit(
                                         CandidateSchema(widget=ObjectWidget(),
                                                         editable=True,
                                                         name='candidate',
                                                         omit=['judgment']),
                                         ['_csrf_token_']),
                                     widget=InLineWidget(),
                                     title=_('Candidates'))
Exemple #26
0
class KeywordsConfSchema(Schema):

    tree = colander.SchemaNode(
        typ=DictSchemaType(),
        validator=colander.All(keywords_validator),
        widget=keyword_widget,
        default=DEFAULT_TREE,
        title=_('Categories'),
        )

    keywords_mapping = omit(KeywordsMappingSchema(widget=SimpleMappingWidget()),
                            ["_csrf_token_"])
Exemple #27
0
class FindFilterSchema(FilterSchema):

    metadata_filter = omit(
        FindMetadataFilter(widget=SimpleMappingtWidget(
            mapping_css_class='controled-form',
            ajax=True,
            activator_icon="glyphicon glyphicon-cog",
            activator_title=_('Metadata filter')),
                           query=metadata_filter_query,
                           analyzer=metadata_filter_analyzer,
                           filter_analyzer=metadata_filter_data),
        ["_csrf_token_"])
Exemple #28
0
class YammerConnectorSchema(ConnectorSchema):
    """Schema for idea"""

    typ_factory = ObjectData

    name = NameSchemaNode(editing=context_is_a_yammer, )

    auth_conf = omit(
        AuthSchema(widget=SimpleMappingtWidget(
            mapping_css_class='controled-form object-well',
            ajax=True,
            activator_icon="glyphicon glyphicon-log-in",
            activator_title=_('Configure the autentication policy'))),
        ["_csrf_token_"])

    notif_conf = omit(
        NotificationSchema(widget=SimpleMappingtWidget(
            mapping_css_class='controled-form object-well',
            ajax=True,
            activator_icon="glyphicon glyphicon-bell",
            activator_title=_('Configure notifications'))), ["_csrf_token_"])
Exemple #29
0
class ScheduleSchema(VisualisableElementSchema):
    """Schema for schedule"""

    name = NameSchemaNode(editing=context_is_a_schedule, )

    dates = colander.SchemaNode(
        colander.String(),
        validator=dates_validator,
        widget=DateIcalWidget(css_class="schedule-dates"),
        description=_('Indicate the dates and hours of the event.'),
        title=_('Dates'),
    )

    ticket_type = colander.SchemaNode(
        colander.String(),
        widget=ticket_type_choice,
        title=_('Ticket type'),
    )

    ticketing_url = colander.SchemaNode(
        colander.String(),
        widget=TextInputWidget(item_css_class="hide-bloc item-price"),
        title=_('Ticketing URL'),
        description=
        _('If you have an online ticketing service, you can enter the URL here.'
          ),
        missing='')

    price = colander.SchemaNode(
        colander.String(),
        default='0',
        widget=TextInputWidget(item_css_class="hide-bloc item-price"),
        title=_('Price'),
    )

    venue = omit(
        select(
            OptionalVenueSchema(
                editable=True,
                factory=Venue,
                omit=('id', ),
                name='venue',
                title=_('Venue'),
                oid='venue',
                widget=SimpleMappingWidget(
                    css_class="venue-block",
                    mapping_title=_("The venue of the event"))), [
                        'id', 'origin_oid', 'title', 'description',
                        'addresses', 'other_conf'
                    ]),
        #'kind', 'website','phone', 'capacity',
        ['_csrf_token_', '__objectoid__'])
Exemple #30
0
    def default_data(self):
        source = self.params('source')
        context = self.context
        if source:
            context = get_obj(int(source))

        result = context.get_data(
            omit(self.schema, ['_csrf_token_', '__objectoid__']))
        if result['picture']:
            picture = result['picture']
            result['picture'] = picture.get_data(None)

        return result
Exemple #31
0
class ArtistBlockSchema(Schema):

    artist = omit(
        select(
            ArtistInformationSheetSchema(
                editable=True,
                omit=('id', ),
                widget=SimpleMappingWidget(
                    css_class=
                    'artist-data director-data object-well default-well')), [
                        'id', 'origin_oid', 'title', 'description', 'picture',
                        'biography', 'is_director'
                    ]), ['_csrf_token_', '__objectoid__'])
    def default_data(self):
        source = self.params('source')
        context = self.context
        if source:
            context = get_obj(int(source))

        result = context.get_data(omit(self.schema,
                                       ['_csrf_token_', '__objectoid__']))
        if result['picture']:
            picture = result['picture']
            result['picture'] = picture.get_data(None)

        return result
    def before_update(self):
        site = get_site_folder(True)
        services = site.get_all_services(
            kinds=['sellingtickets', 'extractionservice'], delegation=False)
        if 'sellingtickets' not in services:
            self.schema = omit(self.schema,
                               ['selling_tickets',
                                ('schedules', ['ticketing_url'])])

        if 'extractionservice' in services:
            self.schema.get('description').description = _(
                'Describe succinctly the event.'
                ' Only this part of the description will '
                'be included in the paper version of the magazine.')
Exemple #34
0
    def before_update(self):
        site = get_site_folder(True)
        services = site.get_all_services(
            kinds=['sellingtickets', 'extractionservice'], delegation=False)
        if 'sellingtickets' not in services:
            self.schema = omit(
                self.schema,
                ['selling_tickets', ('schedules', ['ticketing_url'])])

        if 'extractionservice' in services:
            self.schema.get('description').description = _(
                'Describe succinctly the event.'
                ' Only this part of the description will '
                'be included in the paper version of the magazine.')
Exemple #35
0
class InviteUsersSchema(Schema):

    invitations = colander.SchemaNode(
                colander.Sequence(),
                select(omit(InvitationSchema(factory=Invitation,
                                         editable=True,
                                         name='Invitation',
                                         widget=SimpleMappingWidget(css_class='object-well default-well')), 
                            ['_csrf_token_']), 
                       ['user_title', 'roles', 'first_name', 
                       'last_name','email']),
                widget=SequenceWidget(min_len=1),
                title=_('The invitations')
                )
Exemple #36
0
class MailTemplatesConfigurationSchema(Schema):

    mail_templates = colander.SchemaNode(
        colander.Sequence(),
        omit(select(MailSeqTemplate(name='template',
                                 title=_('E-mail template'),
                                 widget=SimpleMappingWidget(
                                         css_class="object-well default-well mail-template-well mail-template-block")),
                        ['mail_id', 'title', 'languages']),
                    ['_csrf_token_']),
        widget=templates_widget,
        default=templates_default,
        missing=templates_default,
        title=_('E-mail templates'),
        )
    def before_update(self):
        site = get_site_folder(True)
        is_moderator = has_any_roles(
            roles=(('Moderator', site), ('SiteAdmin', site), 'Admin'))
        services = self.context.get_all_services(
            kinds=['sellingtickets'], delegation=False)
        if 'sellingtickets' not in services and not is_moderator:
            self.schema = omit(
                self.schema,
                ['selling_tickets',
                 ('schedules', ['ticketing_url'])])

        services = site.get_all_services(
            kinds=['extractionservice'], delegation=False)
        if 'extractionservice' in services:
            self.schema.get('description').description = _(
                'Describe succinctly the event.'
                ' Only this part of the description will '
                'be included in the paper version of the magazine.')
 def other_conf(self):
     return self.get_data(omit(OtherSchema(),
                               '_csrf_token_'))
 def notif_conf(self):
     return self.get_data(omit(NotificationConfigurationSchema(),
                               '_csrf_token_'))
 def ui_conf(self):
     return self.get_data(omit(UserInterfaceConfigurationSchema(),
                               '_csrf_token_'))
 def homepage_conf(self):
     return self.get_data(omit(HomepageConfigurationSchema(),
                               '_csrf_token_'))
Exemple #42
0
    def start(self, context, request, appstruct, **kw):
        datas = context.get_data(select(omit(InvitationSchema(),
                                             ['_csrf_token_']),
                                        ['user_title',
                                         'roles',
                                         'first_name',
                                         'last_name',
                                         'email',
                                         'organization']))
        roles = datas.pop('roles')
        password = appstruct['password']
        datas['locale'] = my_locale_negotiator(request)
        person = Person(password=password, **datas)
        root = getSite(context)
        principals = find_service(root, 'principals')
        users = principals['users']
        name = person.first_name + ' ' + person.last_name
        name = name_chooser(users, name=name)
        users[name] = person
        if getattr(context, 'ismanager', False) and \
           context.organization:
            grant_roles(person, (('OrganizationResponsible',
                                   context.organization),))

        person.state.append('active')
        grant_roles(person, roles)
        grant_roles(person, (('Owner', person),))
        manager = context.manager
        root.delfromproperty('invitations', context)
        root.addtoproperty('news_letter_members', person)
        newsletters = root.get_newsletters_automatic_registration()
        email = getattr(person, 'email', '')
        if newsletters and email:
            for newsletter in newsletters:
                newsletter.subscribe(
                    person.first_name, person.last_name, email)

        context.person = person
        if manager:
            mail_template = root.get_mail_template(
                'accept_invitation',
                getattr(manager, 'user_locale', root.locale))
            localizer = request.localizer
            email_data = get_user_data(person, 'user', request)
            novaideo_title = request.root.title
            roles_translate = [localizer.translate(APPLICATION_ROLES.get(r, r))
                               for r in roles]
            subject = mail_template['subject'].format(
                novaideo_title=novaideo_title,
                **email_data
            )
            email_data.update(get_user_data(manager, 'recipient', request))
            email_data.update(get_entity_data(person, 'user', request))
            message = mail_template['template'].format(
                roles=", ".join(roles_translate),
                novaideo_title=novaideo_title,
                **email_data)
            alert('email', [root.get_site_sender()], [manager.email],
                  subject=subject, body=message)

        return {}
 def keywords_conf(self):
     return self.get_data(omit(KeywordsConfSchema(),
                               '_csrf_token_'))
 def mail_conf(self):
     return self.get_data(omit(MailTemplatesConfigurationSchema(),
                              '_csrf_token_'))
Exemple #45
0
 def before_update(self):
     if getattr(self.parent, 'is_draft_owner', False):
         self.schema = omit(self.schema, ['explanation'])
Exemple #46
0
def update_challenge_schemanode(request, user, schema):
    if 'challenge' not in request.content_to_manage or \
       not len(get_pending_challenges(user)) > 0:
        schema = omit(schema, ['challenge'])

    return schema
Exemple #47
0
def update_anonymous_schemanode(root, schema):
    if not getattr(root, 'anonymisation', False):
        return omit(schema, ['anonymous'])

    return schema
 def default_data(self):
     return self.context.get_data(omit(self.schema,
                                       ['_csrf_token_', '__objectoid__']))
Exemple #49
0
 def filter_conf(self):
     result = self.get_data(omit(FilterConfigurationSchema(),
                               '_csrf_token_'))
     return result
Exemple #50
0
 def before_update(self):
     if 'published' not in self.context.state:
         self.schema = omit(self.schema, [('metadata', ['release_date'])])
Exemple #51
0
 def auth_conf(self):
     return self.get_data(omit(AuthSchema(),
                               '_csrf_token_'))
 def work_conf(self):
     result = self.get_data(omit(WorkParamsConfigurationSchema(),
                               '_csrf_token_'))
     return result
Exemple #53
0
 def omit_filters(self, filters):
     self.schema = omit(FilterSchema(), filters)
 def user_conf(self):
     return self.get_data(omit(UserParamsConfigurationSchema(),
                               '_csrf_token_'))
Exemple #55
0
 def working_params_conf(self):
     return self.get_data(omit(NewsletterWorkingParamConf(),
                               '_csrf_token_'))
Exemple #56
0
 def rec_conf(self):
     return self.get_data(omit(NewsletterRecConf(),
                               '_csrf_token_'))
 def before_update(self):
     if not has_role(role=('Admin', )):
         self.schema = omit(
             self.schema,
             [('user_conf', ['only_for_members'])])
Exemple #58
0
 def pub_conf(self):
     return self.get_data(omit(PublicationConfigurationSchema(),
                               '_csrf_token_'))