Exemplo n.º 1
0
def IdField(name='id', conv=convs.Int):
    return Field(name,
                 conv=convs.Int(required=False),
                 widget=widgets.TextInput(template="widgets/id_field",
                                          classname="small"),
                 label=u'Идентификатор',
                 )
Exemplo n.º 2
0
class EditLogItemFilterForm(FilterForm):
    def __init__(self, *args, **kwargs):
        # XXX hack! do not do in this way. Use class_factory
        streams = kwargs.pop('streams', None)
        types = kwargs.pop('types')
        models = kwargs.pop('models')
        env = args[0]
        fields = []
        for field in self.fields:
            field = field()
            if field.name == 'users':
                AdminUser = env.auth_model
                field = field(conv=convs.ModelChoice(model=AdminUser,
                                                     title_field="login"))
            if field.name == 'streams':
                field = field(
                    conv=convs.ListOf(convs.EnumChoice(choices=streams),
                                      #all_by_default
                                      ))
            if field.name == 'type':
                field = field(conv=convs.EnumChoice(choices=types))
            fields.append(field)
        self.fields = fields
        FilterForm.__init__(self, *args, **kwargs)

    fields = [
        Field('object_id',
              label=u"ID",
              widget=widgets.TextInput(classname="small")),
        Field(
            'type',
            label=u'Тип',
            #conv=convs.EnumChoice(),
            widget=widgets.PopupFilteredSelect()),
        Field(
            'users',
            label=u'Пользователь',
            #conv=convs.ModelChoice(model=models.AdminUser),
            widget=widgets.PopupFilteredSelect()),
        DateFromTo('creation_time'),
        SortField('sort',
                  choices=(('id', 'id'), ('type', 'type'), ('title', 'title'),
                           ('date', 'date')),
                  initial='-id'),
    ]

    def filter_by__streams(self, query, field, value):
        EditLog = self.model
        cond = EditLog.stream_name.in_(value)
        for stream_name in value:
            cond |= EditLog.stream_name.startswith(stream_name + ':')
        return query.filter(cond)

    def filter_by__users(self, query, field, value):
        return query.filter(self.model.users.contains(value))
Exemplo n.º 3
0
def SplitDateTimeField(name, label, required=True,
                       get_initial=datetime.now,
                       template='widgets/fieldset-line'):
    return FieldSet(
        name,
        widget=widgets.FieldSetWidget(js_block='datetime',
                                      template=template),
        conv=convs.SplitDateTime(required=required),
        fields=[Field('date',
                      conv=convs.Date(required=required),
                      widget=widgets.Calendar(js_block='calendar-simple')),
                Field('time',
                      conv=convs.Time(required=required),
                      widget=widgets.TextInput(classname='timeinput'))],
        get_initial=get_initial,
        label=label)
Exemplo n.º 4
0
 def create_widget(self, model, factory=None):
     return widgets.TextInput()
Exemplo n.º 5
0
 def create_widget(self, models, factory=None):
     return widgets.TextInput(template="widgets/id_field",
                              classname="small")
Exemplo n.º 6
0
 def create_widget(self, model, factory=None):
     return widgets.TextInput(template='widgets/readonly_textinput')