Exemple #1
0
class EventLabelForm(IndicoForm):
    title = StringField(_('Title'), [DataRequired()])
    color = SelectField(_('Color'), [DataRequired()],
                        choices=zip(get_sui_colors(), get_sui_colors()))

    def __init__(self, *args, **kwargs):
        self.event_label = kwargs.pop('event_label', None)
        super(EventLabelForm, self).__init__(*args, **kwargs)

    def validate_title(self, field):
        conflict = next((x for x in event_labels_store.get_all().values()
                         if x.title.lower() == field.data.lower()), None)
        if conflict and (not self.event_label
                         or conflict.id != self.event_label.id):
            raise ValidationError(_('This title is already in use.'))
Exemple #2
0
class EditableTagArgs(mm.Schema):
    class Meta:
        rh_context = ('event', 'tag', 'is_service_call')

    code = fields.String(required=True, validate=not_empty)
    title = fields.String(required=True, validate=not_empty)
    color = fields.String(required=True,
                          validate=validate.OneOf(get_sui_colors()))
    system = fields.Bool(missing=False)

    @validates('code')
    def _check_for_unique_tag_code(self, code):
        event = self.context['event']
        tag = self.context['tag']
        query = EditingTag.query.with_parent(event).filter(
            func.lower(EditingTag.code) == code.lower())
        if tag:
            query = query.filter(EditingTag.id != tag.id)
        if query.has_rows():
            raise ValidationError(_('Tag code must be unique'))

    @validates('system')
    def _check_only_services_set_system_tags(self, value):
        if value and not self.context['is_service_call']:
            raise ValidationError(
                'Only custom editing workflows can set system tags')
Exemple #3
0
class EventLabelForm(IndicoForm):
    title = StringField(_('Title'), [DataRequired()])
    color = SelectField(_('Color'), [DataRequired()],
                        choices=list(zip(get_sui_colors(), get_sui_colors())))

    def __init__(self, *args, **kwargs):
        self.event_label = kwargs.pop('event_label', None)
        super().__init__(*args, **kwargs)

    def validate_title(self, field):
        query = EventLabel.query.filter(
            db.func.lower(EventLabel.title) == field.data.lower())
        if self.event_label:
            query = query.filter(EventLabel.id != self.event_label.id)
        if query.has_rows():
            raise ValidationError(_('This title is already in use.'))
Exemple #4
0
class EditableTagArgs(mm.Schema):
    class Meta:
        rh_context = ('event', 'tag')

    code = fields.String(required=True, validate=not_empty)
    title = fields.String(required=True, validate=not_empty)
    color = fields.String(required=True, validate=validate.OneOf(get_sui_colors()))

    @validates('code')
    def _check_for_unique_tag_code(self, code):
        event = self.context['event']
        tag = self.context['tag']
        query = EditingTag.query.with_parent(event).filter(func.lower(EditingTag.code) == code.lower())
        if tag:
            query = query.filter(EditingTag.id != tag.id)
        if query.has_rows():
            raise ValidationError(_('Tag code must be unique'))