class Crit(Hidden):
	"""Critique for each of the standards
	STILL NEED TO CREATE
	Change radio fields to select and add inputtext other
	"""
	name = StringField(u'Name', widget=TextInput(), validators=[validators.input_required(message=NO_INPUT_ERROR), validators.length(max=MAX_LENGTH)])
	school = StringField(u'School', widget=TextInput(), validators=[validators.input_required(message=NO_INPUT_ERROR), validators.length(max=MAX_LENGTH)])
	materials = RadioField(u'Source of Materials', choices=[('Own','Own'),
														('Commercial','Commercial'),    
														('Subject','Subject Association'),
														('TKI','TKI / NZQA'),
														('Other','Other')])

	check1 = BooleanField(u'The assessment material has been reviewed against the current standard clarification and/or external moderation feedback. (Where the material has been previously critiqued and the standard is unchanged, no further critiquing is required)', widget=CheckboxInput())
	check2 = BooleanField(u'Student instructions contain registered standard number, version, title, level & credits', widget=CheckboxInput())
	check3 = BooleanField(u'Student instructions are clear and language is appropriate' ,widget=CheckboxInput())
	check4 = BooleanField(u'The assessment is consistent with learning/context/curriculum at the appropriate level',widget=CheckboxInput())
	check5 = BooleanField(u'The assessment allows students to achieve all requirements of the standard for all grades',widget=CheckboxInput())
	check6 = BooleanField(u'Instructions are consistent with explanatory notes/range statements in the standard',widget=CheckboxInput())
	check7 = BooleanField(u'Assessment schedule is consistent with the standard and clarifications documents',widget=CheckboxInput())
	check8 = BooleanField(u'Judgement/ sufficiency statement clearly describe performance levels for each grade, e.g. quality & length',widget=CheckboxInput())
	check9 = BooleanField(u'Evidence statements allow for a range of acceptable answers from students with specific examples for each grade (N/A/M/E)',widget=CheckboxInput())

	finished = BooleanField(u"""
		By clicking the button to the left you are signing that <b>you</b> have finished the <b><u>critique process</u></b>. 
		<br><small>If you are not finished, click submit process button below to save what you have entered so far. You can sign off the process at a later date</small>""",widget=CheckboxInput())
Esempio n. 2
0
class FormItem(FlaskForm):
    id = StringField("id", widget=TextInput())
    title = StringField("title",
                        widget=TextInput(),
                        validators=[DataRequired()])
    text = StringField("text", widget=TextArea())
    due = StringField("due", widget=TextInput())
    search = StringField("search", widget=TextInput())
class LoginForm(FlaskForm):
    username = StringField('Login:'******'Password:'******'Отправить')
class CreateStaffForm(Form):
	year = SelectField(u'Year', widget=Select(), choices=YEARS)
	staff_id = StringField(u'Staff Identifier', widget=TextInput(), validators=[validators.input_required()])
	first_name = StringField(u'First Name', widget=TextInput(), validators=[validators.input_required()])
	last_name = StringField(u'Last Name', widget=TextInput(), validators=[validators.input_required()])
	title = SelectField(u'Title', widget=Select(), choices=(('Mr','Mr'),('Mrs','Mrs'),('Miss','Miss'),('Ms','Ms')))
	subject = StringField(u'Subject', widget=TextInput(),validators=[validators.input_required()])
	email = StringField(u'Email', widget=TextInput(), validators=[validators.Email()])
Esempio n. 5
0
class CourseForm(Form):
    name = StringField('Name', [validators.DataRequired()], widget=TextInput())
    location = StringField('Location', [validators.DataRequired()],
                           widget=TextInput())
    city = StringField('City', [validators.DataRequired()], widget=TextInput())
    holes = IntegerField('Holes', [validators.DataRequired()],
                         widget=NumberInput())
    submit = SubmitField('Create')
Esempio n. 6
0
 def __init__(self, is_review=False, *args, **kwargs):
     """Constructor."""
     super(AuthorUpdateForm, self).__init__(*args, **kwargs)
     if is_review:
         self.bai.widget = TextInput()
         self.bai.widget_classes = "form-control"
         self.inspireid.widget = TextInput()
         self.inspireid.widget_classes = "form-control"
Esempio n. 7
0
class InstitutionInlineForm(INSPIREForm):
    """Institution inline form."""

    rank_options = [("rank", _("Rank")), ("SENIOR", _("Senior (permanent)")),
                    ("JUNIOR", _("Junior (leads to Senior)")),
                    ("STAFF", _("Staff (non-research)")),
                    ("VISITOR", _("Visitor")), ("PD", _("PostDoc")),
                    ("PHD", _("PhD")), ("MAS", _("Master")),
                    ("UG", _("Undergrad"))]

    name = fields.StringField(
        widget_classes='form-control',
        widget=ColumnInput(class_="col-md-6"),
        autocomplete='affiliation',
        placeholder=_("Institution. Type for suggestions"),
    )

    rank = fields.SelectField(
        choices=rank_options,
        default="rank",
        widget=ColumnSelect(class_="col-md-6"),
        widget_classes='form-control',
        validators=[validators.DataRequired()],
    )

    start_year = fields.StringField(
        placeholder=_('Start Year'),
        description=u'Format: YYYY.',
        widget=WrappedInput(
            wrapped_widget=TextInput(),
            wrapper='<div class="col-md-6 col-margin-top">%(field)s</div>'),
        validators=[
            RegexpStopValidator(
                "^(\d{4})?$",
                message="{} is not a valid year. Please use <i>yyyy</i> format."
            )
        ],
        widget_classes="datepicker form-control")

    end_year = fields.StringField(
        placeholder=_('End Year'),
        description=u'Format: YYYY.',
        widget=WrappedInput(
            wrapped_widget=TextInput(),
            wrapper='<div class="col-md-6 col-margin-top">%(field)s</div>'),
        validators=[
            RegexpStopValidator(
                "^(\d{4})?$",
                message="{} is not a valid year. Please use <i>yyyy</i> format."
            )
        ],
        widget_classes="datepicker form-control")

    current = fields.BooleanField(widget=currentCheckboxWidget)

    email = fields.HiddenField()

    old_email = fields.HiddenField()
Esempio n. 8
0
 def __init__(self, is_review=False, *args, **kwargs):
     """Constructor."""
     super(AuthorUpdateForm, self).__init__(*args, **kwargs)
     is_update = kwargs.pop('is_update', False)
     if is_update:
         self.orcid.widget = HiddenInput()
         self.orcid.validators = []
     if is_review:
         self.bai.widget = TextInput()
         self.bai.flags = Flags()
         self.inspireid.widget = TextInput()
         self.inspireid.flags = Flags()
class OutsideVerificationForm(Form):
	standard = AllStandardsData('Choose Standard')
	student = StringField(u'Student Name (Full Name)', widget=TextInput(), validators=[validators.input_required(message=NO_INPUT_ERROR)])
	
	verifier_name = StringField(u'Teacher name (Verifier)', widget=TextInput(), validators=[validators.input_required(message=NO_INPUT_ERROR)])
	verifier_school = StringField(u'School of Verifier', widget=TextInput())

	verifiers_grade = SelectField(u'Assessment judgement', widget=Select(), choices=GRADES, validators=[validators.NoneOf(values='No Grade',message='Please enter appropriate grade')])

	discussion = StringField(u'Discussion', widget=TextArea())

	finished = BooleanField(u"<p id='finished_p'>", widget=CheckboxInput(),validators=[validators.required(message="The sign off box above must be checked to submit data")])
Esempio n. 10
0
class SolverForm(FlaskForm):
    task_name = StringField('Название задачи:',
                            validators=[DataRequired()],
                            widget=TextInput())
    code = TextAreaField('Комментарии:',
                         validators=[DataRequired()],
                         widget=TextArea())
    date = DateField('Дата:', validators=[DataRequired()])
    aut_name = StringField('Имя автора:',
                           validators=[DataRequired()],
                           widget=TextInput())
    submit = SubmitField('Отправить')
Esempio n. 11
0
class RegisterForm(FlaskForm):
    '''A form for registering a new user.'''
    email = StringField(
        'Sähköpostiosoite',
        widget=EmailInput(),
        validators=[
            DataRequired(message="Sähköpostiosoite on pakollinen"),
            Email(message="Anna kelvollinen sähköpostiosoite")
        ])
    password = PasswordField(
        'Salasana',
        widget=PasswordInput(),
        validators=[
            DataRequired(message="Salasana on pakollinen"),
            Length(min=6,
                   max=24,
                   message="Salasanan on oltava 6-24 merkkiä pitkä")
        ])
    first_name = StringField(
        'Etunimi',
        widget=TextInput(),
        validators=[DataRequired(message="Etunimi on pakollinen")])
    last_name = StringField(
        'Sukunimi',
        widget=TextInput(),
        validators=[DataRequired(message="Sukunimi on pakollinen")])
    nickname = StringField('Lempinimi', widget=TextInput())
    phone = StringField(
        'Puhelinnumero',
        widget=TextInput(),
        validators=[
            Regexp(
                '^\+\d+$',
                message='Anna kelvollinen puhelinnumero muodossa +xxxxxxxxxxxxx'
            )
        ])
    birth_date = StringField(
        'Syntymäaika',
        widget=TextInput(),
        validators=[
            Regexp('^(0[1-9]|[12][0-9]|3[01])\.(0[1-9]|1[012])\.(19|20)\d\d$',
                   message='Anna kelvollinen päivämäärä')
        ])
    profile = TextAreaField(
        'Pelaajaprofiilikuvaus',
        widget=TextArea(),
        validators=[
            Length(min=10,
                   max=1000,
                   message="Profiilikuvauksen on oltava 10-1000 merkkiä pitkä")
        ])
    submit = SubmitField('Rekisteröidy', widget=SubmitInput())
Esempio n. 12
0
 class Meta:
     model = Translation
     field_args = {
         'english': {
             'widget': TextInput()
         },
         'french': {
             'widget': TextInput()
         },
         'spanish': {
             'widget': TextInput()
         }
     }
class VerificationForm(Form):
	student = StringField(u'Student Name (Full Name)', widget=TextInput(),validators=[validators.input_required(message=NO_INPUT_ERROR), validators.length(max=MAX_LENGTH)])
	
	verifier_name = StringField(u'Teacher name (Verifier)', widget=TextInput(),validators=[validators.input_required(message=NO_INPUT_ERROR), validators.length(max=MAX_LENGTH)])
	verifier_school = StringField(u'School of Verifier', widget=TextInput())
	verifier_school_other = StringField(u'Other - School of Verifier', widget=TextInput())
	verifiers_grade = StringField(u'Assessment judgement of Verifier', widget=TextInput())

	markers_grade = SelectField(u'Markers assessment judgement', widget=Select(), choices=GRADES)
	reported_grade = SelectField(u'Reported assessment judgement', widget=Select(), choices=GRADES)

	tic = AllStaffData(u'Teacher in Charge', widget=Select())

	discussion = StringField(u'Discussion', widget=TextArea())
Esempio n. 14
0
class Registration(FlaskForm):
    username = StringField('Никнэйм',
                           validators=[DataRequired()],
                           widget=TextInput())
    email = StringField('Почта',
                        validators=[DataRequired(), Email()],
                        widget=TextInput())
    password = StringField('Пароль',
                           validators=[DataRequired()],
                           widget=PasswordInput())
    password_confirm = StringField(
        'Подтверждение пароля',
        validators=[DataRequired(), EqualTo('password')],
        widget=PasswordInput())
Esempio n. 15
0
class GameForm(FlaskForm):
    title = StringField(label='Название', validators=[DataRequired()])
    desc = StringField(label='Описание',
                       validators=[DataRequired()],
                       widget=TextArea())
    poster = StringField(label='Обложка',
                         validators=[DataRequired(), URL()],
                         description='Используйте обложки с соотношением 2:1.')
    price = IntegerField(label='Цена',
                         validators=[DataRequired()],
                         widget=TextInput('number'))
    release_date = DateField(label='Дата релиза',
                             validators=[DataRequired()],
                             widget=TextInput('date'))
    on_sale = BooleanField(label='Распродажа')
class StandardCreateForm(Form):
	year = SelectField(u'Year', widget=Select(), choices=YEARS)

	verification_total = IntegerField(u'No of Student Entries', widget=TextInput(), validators=[validators.optional()])
	subject_id = StringField(u'Subject ID e.g MUS1', widget=TextInput(), validators=[validators.input_required(message=NO_INPUT_ERROR),validators.length(max=MAX_LENGTH)])
	subject_title = StringField(u'Faculty Umbrella e.g Arts', widget=TextInput(), validators=[validators.input_required(message=NO_INPUT_ERROR),validators.length(max=MAX_LENGTH)])

	standard_no = StringField(u'Standard Number', widget=TextInput(), validators=[validators.input_required(message=NO_INPUT_ERROR),validators.length(max=MAX_LENGTH)])
	version = StringField(u'Version of the Standard', widget=TextInput(), validators=[validators.input_required(message=NO_INPUT_ERROR),validators.length(max=MAX_LENGTH)])
	level = SelectField(u'NCEA level of Standard', widget=Select(), choices=[('Multi','Multi'),('1','1'),('2','2'),('3','3')])
	credits = IntegerField(u'Credits <br><small>How many credits the standard is worth</small>', widget=TextInput(),validators=[validators.input_required(message=NO_INPUT_ERROR),validators.NumberRange(min=1,max=50,message="Please enter a Number : Max 50")])
	title = StringField(u'Title of the standard', widget=TextArea(), validators=[validators.input_required(message=NO_INPUT_ERROR)])

	standard_type = SelectField(u'Standard Type <br><small>Achievement or Unit Standard</small>',widget=Select(),choices=(('Achievement Standard','Achievement Standard'),('Unit Standard','Unit Standard')))
	tic = AllStaffData(u'Teacher in Charge', widget=Select())
Esempio n. 17
0
    def __init__(self, *args, **kwargs):
        """Constructor."""
        super(AuthorUpdateForm, self).__init__(*args, **kwargs)
        is_review = kwargs.pop('is_review', False)
        is_update = kwargs.pop('is_update', False)

        if is_update:
            # remove validation for duplicate ORCIDs on update
            self.orcid.validators = self.orcid.validators[:-1]

        if is_review:
            self.bai.widget = TextInput()
            self.bai.flags = Flags()
            self.inspireid.widget = TextInput()
            self.inspireid.flags = Flags()
Esempio n. 18
0
class ExperimentsInlineForm(INSPIREForm):

    """Experiments inline form."""

    name = fields.StringField(
        placeholder="Experiment. Type for suggestions",
        label='Experiment',
        widget=ColumnInput(class_="col-md-6"),
        widget_classes="form-control",
        autocomplete="experiment"
    )

    start_year = fields.StringField(
        placeholder='Start Year',
        description=u'Format: YYYY.',
        widget=WrappedInput(
            wrapped_widget=TextInput(),
            wrapper='<div class="col-md-6">%(field)s</div>',
        ),
        validators=[
            LessThan('end_year', message='Start year should be earlier than End year'),
            RegexpStopValidator(
                r'^(\d{4})?$',
                message='{} is not a valid year. Please use <i>yyyy</i> format.',
            ),
        ],
        widget_classes="form-control"
    )

    end_year = fields.StringField(
        placeholder='End Year',
        description=u'Format: YYYY.',
        widget=WrappedInput(
            wrapped_widget=TextInput(),
            wrapper='<div class="col-md-6 col-margin-top">%(field)s</div>'
        ),
        validators=[
            RegexpStopValidator(
                r'^(\d{4})?$',
                message='{} is not a valid year. Please use <i>yyyy</i> format.',
            ),
        ],
        widget_classes="form-control"
    )

    current = fields.BooleanField(
        widget=currentCheckboxWidget
    )
Esempio n. 19
0
class TagListField(Field):
    widget = TextInput()

    def _value(self):
        if self.data:
            return u', '.join([tag.name for tag in self.data])
        return u''

    def process_formdata(self, valuelist):
        if valuelist and valuelist[0]:
            # Order is preserved here but ``Post.tags`` orders by tag name
            seen = set()
            tag_names = []
            for value in valuelist[0].split(','):
                stripped_value = value.strip()
                if stripped_value and stripped_value not in seen:
                    tag_names.append(stripped_value)
                    seen.add(stripped_value)

            existing_tags = Tag.query.filter(Tag.name.in_(tag_names))
            existing_tag_names = {t.name: t for t in existing_tags}

            tags = []
            for tag_name in tag_names:
                try:
                    tags.append(existing_tag_names[tag_name])
                except KeyError:
                    tags.append(Tag(tag_name))

            self.data = tags
        else:
            self.data = []
Esempio n. 20
0
class HourMinuteField(fields.Field):
    widget = TextInput()
    def e_init__(self, label=None, validators=None, **kwargs):
        super(HourMinuteField, self).__init__(label, validators, **kwargs)

    def process_formdata(self, valuelist):
        if len(valuelist) and valuelist[0]:
            message = "格式00:00"
            rep = '^(\d+):[0-5]\d$'
            if not re.match(rep, valuelist[0]):
                raise ValidationError(message)

            minute = float('%.2f' % float(int(valuelist[0].split(":")[1]) / 60.0))
            hour = int(valuelist[0].split(":")[0])
            
            self.data = hour + minute

    def _value(self):

        if self.data is not None:
            value = str(self.data)
            hour = str(int(value.split(".")[0]))
            minute = value.split(".")[1]
            # 四舍五入
            minite = int((float('.'.join(['0', minute])) * 60) + 0.5)
            minite = str(minite)
            if len(minite) < 2:
                minite = '0' + minite
            value = ':'.join([hour, minite])
            return text_type(value)
        else:
            return ''
Esempio n. 21
0
class DateTimeField(Field):
    """
    DateTimeField represented by a text input, accepts all input text formats
    that `dateutil.parser.parse` will.

    :param parse_kwargs:
        A dictionary of keyword args to pass to the dateutil parse() function.
        See dateutil docs for available keywords.
    :param display_format:
        A format string to pass to strftime() to format dates for display.
    """

    widget = TextInput()

    def __init__(
        self,
        label=None,
        validators=None,
        parse_kwargs=None,
        display_format="%Y-%m-%d %H:%M",
        **kwargs
    ):
        super(DateTimeField, self).__init__(label, validators, **kwargs)
        if parse_kwargs is None:
            parse_kwargs = {}
        self.parse_kwargs = parse_kwargs
        self.display_format = display_format

    def _value(self):
        if self.raw_data:
            return " ".join(self.raw_data)
        else:
            return self.data and self.data.strftime(self.display_format) or ""

    def process_formdata(self, valuelist):
        if valuelist:
            date_str = " ".join(valuelist)
            if not date_str:
                self.data = None
                raise ValidationError(self.gettext("Please input a date/time value"))

            parse_kwargs = self.parse_kwargs.copy()
            if "default" not in parse_kwargs:
                try:
                    parse_kwargs["default"] = self.default()
                except TypeError:
                    parse_kwargs["default"] = self.default
            try:
                self.data = parser.parse(date_str, **parse_kwargs)
            except ValueError:
                self.data = None
                raise ValidationError(self.gettext("Invalid date/time input"))
            except TypeError:
                if not DATEUTIL_TYPEERROR_ISSUE:
                    raise

                # If we're using dateutil 2.2, then consider it a normal
                # ValidationError. Hopefully dateutil fixes this issue soon.
                self.data = None
                raise ValidationError(self.gettext("Invalid date/time input"))
Esempio n. 22
0
    def __init__(self, *args, **kwargs):
        for opt in DEFAULT_OPTION:
            if isinstance(opt["default_value"], bool):
                name = opt["option"]
                field = BooleanField(label=opt["label"],
                                     default=app.config.get(
                                         name, opt["default_value"]),
                                     description=opt.get("description", ""),
                                     widget=opt.get("widget", CheckboxInput()))
            elif isinstance(opt["default_value"], str):
                name = opt["option"]
                field = StringField(label=opt["label"],
                                    default=app.config.get(
                                        name, opt["default_value"]),
                                    validators=opt.get("validators", []),
                                    description=opt.get("description", ""),
                                    widget=opt.get("widget", TextInput()))

            elif isinstance(opt["default_value"], int):
                name = opt["option"]
                field = IntegerField(label=opt["label"],
                                     default=opt["default_value"],
                                     validators=opt.get("validators", []),
                                     description=opt.get("description", ""),
                                     widget=opt.get("widget",
                                                    NumberInput(step='1')))
            setattr(self, name, field)
            self._unbound_fields = self._unbound_fields + [[name, field]]
        setattr(self, "submit", SubmitField(label=u"提交"))
        self._unbound_fields = self._unbound_fields + [[
            "submit", SubmitField(label=u"提交")
        ]]

        super(SiteOptionForm, self).__init__(*args, **kwargs)
class SchoolAdminPasswordForm(Form):
	"""
	This changes the user password for the relative school
	"""
	school = StringField(u'School', widget=TextInput())
	password = PasswordField('New Password', validators=[validators.input_required(), validators.EqualTo('confirm', message='Passwords must match'), validators.password_check(min=8)])
	confirm  = PasswordField('Repeat Password')
Esempio n. 24
0
class TagListField(Field):
    widget = TextInput()

    def _value(self):
        return ", ".join(self.data or ())

    def process_formdata(self, valuelist):
        if valuelist and valuelist[0]:
            tags = [
                invalid_tag_chars.sub("", tag["value"])
                for tag in orjson.loads(valuelist[0])
            ]
            data = list(set(tags))
            self.data = data
        else:
            self.data = []

    def post_validate(self, form, validation_stopped):
        if not self.data:
            return

        for i in self.data:
            l = len(i)
            if l < 3 or l > 20:
                raise ValidationError(
                    "Tags must be between 3 and 20 characters in length")

        if len(self.data) > 8:
            raise ValidationError("Things can have at most 8 tags")
class CodeCreateForm(Form):
	"""
	This changes the user password for the relative school
	"""
	school = StringField(u'School', widget=TextInput())
	code = StringField('Code', validators=[validators.input_required(), validators.EqualTo('confirm', message='Code must match'), validators.password_check(min=5)])
	confirm  = StringField('Repeat Code')
Esempio n. 26
0
class CommaSeparatedIntegerListField(Field):
    
    def __iter__(self):
        return iter(self.data)
    
    widget = TextInput()
    
    def _value(self):
        """ overrides the representation wtforms sends to the server """
        if self.data and len(self.data) > 0:
            return u', '.join(map(unicode, self.data))
        else:
            return u''
    
    def process_data(self, value):
        if isinstance(value, list):
            self.data = value
        else:
            if value:
                self.process_formdata([value])
            else:
                self.data = []
    
    def process_formdata(self, valuelist):
        """ overrides wtforms parsing to split list into namespaces """
        if valuelist:
            self.data = [
                int(x.strip())
                for x in valuelist[0].split(',')
                if x.strip().isdigit()
            ]
        else:
            self.data = []
Esempio n. 27
0
class CoordinatesField(Field):

    widget = TextInput()

    def _value(self):
        if self.raw_data:
            return self.raw_data[0]
        elif self.data:
            return u'%.10f %.10f' % self.data
        else:
            return u''

    def process_formdata(self, valuelist):
        if valuelist and valuelist[0]:
            try:
                self.data = model.Point(*(map(float, valuelist[0].split(' '))))
            except ValueError:
                raise validators.ValidationError(
                    u'Неправильно заданы координаты')
        else:
            self.data = None

    def pre_validate(self, form):
        if self.process_errors:
            raise validators.StopValidation()
        if self.data is not None:
            if not (self.data[0] > 0 and self.data[1] < 90):
                raise validators.ValidationError(
                    u'Широта должна быть между 0 и 90 градусов')

            if not (self.data[1] > 0 and self.data[1] < 180):
                raise validators.ValidationError(
                    u'Долгота должна быть между 0 и 180 градусов')
Esempio n. 28
0
class TimeField(Field):
    """A text field which stores a `time.time` matching a format."""

    widget = TextInput()

    def __init__(self,
                 label=None,
                 validators=None,
                 format='%H:%M:%S',
                 **kwargs):
        """Init."""
        super(TimeField, self).__init__(label, validators, **kwargs)
        self.format = format

    def _value(self):
        if self.raw_data:
            return u' '.join(self.raw_data)
        else:
            return self.data and self.data.strftime(self.format) or u''

    def process_formdata(self, valuelist):
        """Join time string."""
        if valuelist:
            time_str = u' '.join(valuelist)
            try:
                timetuple = time.strptime(time_str, self.format)
                self.data = datetime.time(*timetuple[3:6])
            except ValueError:
                self.data = None
                raise
Esempio n. 29
0
class BookForm(Form):
    title = StringField(__('Book title label'),
                        validators=[DataRequired()],
                        widget=WidgetPrebind(TextInput(),
                                             class_='uk-width-1-1'))
    series = QuerySelectField(
        __('Book series label'),
        query_factory=lambda: BookSeries.admin_list(),
        allow_blank=True,
        blank_text=__('Select book series option'),
        get_label='name',
    )
    annotation = StringField(__('Book annotation label'),
                             widget=WidgetPrebind(TextArea(),
                                                  rows=5,
                                                  class_='uk-width-1-1'))
    publisher_info = StringField(__('Book publisher info label'),
                                 widget=WidgetPrebind(TextArea(),
                                                      rows=5,
                                                      class_='uk-width-1-1'))
    authors = StringField(__('Authors as text label'),
                          widget=WidgetPrebind(TextArea(),
                                               rows=3,
                                               class_='uk-width-1-2'))
    persons = RefQuerySelectMultipleField(
        __('Authors label'),
        query_factory=lambda: Person.admin_list(with_positions=False),
        get_label='fullname',
    )
Esempio n. 30
0
class ClimbDateField(Field):

    _date_format = '%d.%m.%Y'

    widget = TextInput()

    def _value(self):
        if self.raw_data:
            return self.raw_data[0]
        elif self.data:
            return \
                u'.'.join(
                    [str(f) for f in reversed(self.data)
                        if f is not None])
        else:
            return u''

    def process_formdata(self, valuelist):
        if valuelist:
            try:
                self.data = model.InexactDate.fromstring(valuelist[0])
            except ValueError:
                raise validators.ValidationError(u'Неправильно указана дата')
        else:
            self.data = None

    def pre_validate(self, form):
        if self.process_errors:
            raise validators.StopValidation()
        if self.data is not None and self.data > \
                model.InexactDate.fromdate(datetime.date.today()):
            raise validators.ValidationError(u'Указана дата в будущем')
Esempio n. 31
0
 def __call__(self, *args, **kwargs):
     if self.disabled:
         kwargs['disabled'] = 'disabled'
     return TextInput.__call__(self, *args, **kwargs)
Esempio n. 32
0
 def __init__(self, disabled, *args, **kwargs):
     self.disabled = disabled
     TextInput.__init__(self, *args, **kwargs)