Exemple #1
0
class CreateAppointmentForm(FlaskForm):
    name = StringField('Name', validators=[DataRequired()])
    start_date = DateField('start_date',
                           validators=[DataRequired()],
                           widget=DateInput())
    start_time = TimeField('start_time',
                           validators=[DataRequired()],
                           widget=TimeInput())
    end_date = DateField('end_date',
                         validators=[DataRequired()],
                         widget=DateInput())
    end_time = TimeField('end_time',
                         validators=[DataRequired()],
                         widget=TimeInput())
    description = TextAreaField('description', validators=[DataRequired()])
    private = BooleanField('private?')
    submit = SubmitField('create appointment')

    def validate_end_date(form, field):
        end = datetime.combine(form.end_date.data, form.end_time.data)
        start = datetime.combine(form.start_date.data, form.start_time.data)

        if start >= end:
            raise ValidationError('Start must come before end!')
        if form.end_date.data != form.start_date.data:
            raise ValidationError(
                'Start date and end date must be the same day!')
Exemple #2
0
class AppointmentForm(FlaskForm):
    name = StringField("name", validators=[DataRequired()])
    start_date = DateField("start_date",
                           validators=[DataRequired()],
                           widget=DateInput())
    start_time = TimeField("start_time",
                           validators=[DataRequired()],
                           widget=TimeInput())
    end_date = DateField("end_date",
                         validators=[DataRequired()],
                         widget=DateInput())
    end_time = TimeField("end_time",
                         validators=[DataRequired()],
                         widget=TimeInput())
    description = TextAreaField("description", validators=[DataRequired()])
    private = BooleanField("private")
    submit = SubmitField("Submit")

    def validate_end_date(form, field):
        start = datetime.combine(form.start_date.data, form.start_time.data)
        end = datetime.combine(field.data, form.end_time.data)
        if start >= end:
            msg = "End date/time must come after start date/time"
            raise ValidationError(msg)
        if form.start_date.data != form.end_date.data:
            msg = "End date must be the same as start date"
            raise ValidationError(msg)
class AppointmentForm(FlaskForm):
    name = StringField("Name", validators=[DataRequired()])
    start_date = start_date = DateField(
        "Start date", [DataRequired()], widget=DateInput())
    start_time = TimeField("Start Time", [DataRequired()], widget=TimeInput())
    end_date = DateField("End Date", [DataRequired()], widget=DateInput())
    end_time = TimeField("End Time", [DataRequired()], widget=TimeInput())
    description = TextAreaField("Description", validators=[DataRequired()])
    private = BooleanField("Private")
    submit = SubmitField("Save")
Exemple #4
0
class TimeField(Field):
    """A text field which stores a `datetime.time` matching a format.

    Taken from
    http://flask-admin.readthedocs.org/en/v1.0.7/_modules/flask/ext/admin
        /form/fields/#TimeField
    """
    widget = TimeInput()
    error_msg = 'Not a valid time.'

    def __init__(self,
                 label=None,
                 validators=None,
                 format='%I:%M%p',
                 **kwargs):
        super(TimeField, self).__init__(label, validators, **kwargs)
        self.format = format

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

    def process_formdata(self, valuelist):
        if valuelist:
            time_str = ' '.join(valuelist)
            try:
                self.data = datetime.time(
                    *time.strptime(time_str.lower(), self.format)[3:5])
            except ValueError:
                self.data = None
                raise ValueError(self.gettext(self.error_msg))
Exemple #5
0
class AppointmentForm(FlaskForm):
  name = StringField('Name', validators=[DataRequired()])
  start_date =  DateField('Start Date', validators=[DataRequired()], widget=DateInput())
  start_time = TimeField('Start Time', validators=[DataRequired()], widget=TimeInput())
  end_date = DateField('End Date', validators=[DataRequired()], widget=DateInput())
  end_time = TimeField('End Time', validators=[DataRequired()], widget=TimeInput())
  description = TextAreaField('Description', validators=[DataRequired()])
  private = BooleanField('Private')
  submit = SubmitField('Submit')
  def validate_end_date(self, field):
    start = datetime.combine(self.start_date.data, self.start_time.data),
    end = datetime.combine(field.data, self.end_time.data),
    if start >= end:
      raise ValidationError("End date/time must come after start date/time")
    if not self.start_date.data == field.data:
      raise ValidationError("End date must the be the same as start date")
Exemple #6
0
class AppointmentForm(FlaskForm):
    name = StringField('name', validators=[DataRequired()])
    start_date = DateField('start_datetime',
                           widget=DateInput(),
                           validators=[DataRequired()])
    start_time = TimeField('start_datetime',
                           widget=TimeInput(),
                           validators=[DataRequired()])
    end_date = DateField('end_datetime',
                         widget=DateInput(),
                         validators=[DataRequired()])
    end_time = TimeField('end_datetime',
                         widget=TimeInput(),
                         validators=[DataRequired()])
    description = TextAreaField('description', validators=[DataRequired()])
    private = BooleanField('private')
    submit = SubmitField()
Exemple #7
0
class AppointmentForm(FlaskForm):
    name = StringField('Name', validators)
    start_date = DateField('Start date', validators, widget=DateInput())
    start_time = TimeField('Start time', validators, widget=TimeInput())
    end_date = DateField('End date', validators, widget=DateInput())
    end_time = TimeField('End time', validators, widget=TimeInput())
    description = TextAreaField('Description', validators)
    private = BooleanField('Private?')
    submit = SubmitField('Create an appointment')

    def validate_end_date(form, field):
        start = datetime.combine(form.start_date.data, form.start_time.data)
        end = datetime.combine(form.end_date.data, form.end_time.data)
        if start >= end:
            raise ValidationError(
                'End date/time must come after start date/time')
        if form.start_date.data != form.end_date.data:
            raise ValidationError('End date must be the same as start date')
Exemple #8
0
class AppointmentForm(FlaskForm):
    name= StringField('Name',validators=[DataRequired()])
    start_date= DateField('Start Date',validators=[DataRequired()], widget=DateInput())
    start_time= TimeField('Start Time',validators=[DataRequired()], widget=TimeInput())
    end_date= DateField('End Date',validators=[DataRequired()], widget=DateInput())
    end_time= TimeField('End Time',validators=[DataRequired()], widget=TimeInput())
    description= TextAreaField('Description',validators=[DataRequired()])
    private= BooleanField('Private')
    submit= SubmitField('Create Appointment')

    def validate_end_date(form, field): 
        start = datetime.combine(form.start_date.data, form.start_time.data)
        # end = datetime.combine(field.data, form.end_time.data)
        print(field)
        end = datetime.combine(form.end_date.data, form.end_time.data)
        if start >= end:
            msg = "End date/time must come after start date/time"
            raise ValidationError(msg)
Exemple #9
0
class MovieventForm(Form):
    date = DateField('Date',
                     validators=[DataRequired()],
                     format='%d %B, %Y',
                     description="Which day?")
    time = DateTimeField('Time',
                         widget=TimeInput(),
                         validators=[DataRequired()],
                         format='%I:%M %p',
                         description="and time?")
Exemple #10
0
class EntryForm(FlaskForm):
    visited_date = DateField(widget=DateInput(), validators=[DataRequired()])
    visited_time = TimeField(widget=TimeInput(), validators=[DataRequired()])
    covid_status = SelectField("Covid Status",
                               validators=[DataRequired()],
                               choices=[(2, 'Tested Positive'),
                                        (1, 'Have Symptoms'),
                                        (0, 'I\'m not sure')])
    last_visited_location = StringField(
        "Last Visited Location",
        render_kw={'readonly': ''},
        validators=[DataRequired(message="This field is required!")])
    last_visited_location_lat_long = HiddenField()
    submit = SubmitField("Submit")
class AppointmentForm(FlaskForm):
    name = StringField(label='Name', validators=[InputRequired()])
    start_date = DateField('Start date', validators=[
                           InputRequired()], widget=DateInput())
    start_time = TimeField('Start time', validators=[
                           InputRequired()], widget=TimeInput())
    end_date = DateField('End date', validators=[
                         InputRequired()], widget=DateInput())
    end_time = TimeField('End time', validators=[
                         InputRequired()], widget=TimeInput())
    description = TextAreaField('Description', validators=[InputRequired()])
    private = BooleanField('Private?')
    submit = SubmitField('Create an Appointment')

    def validate_end_date(form, field):
        end = datetime.combine(form.end_date.data, form.end_time.data)
        start = datetime.combine(form.start_date.data, form.start_time.data)
        if form.end_date.data != form.start_date.data:
            msg = 'Appointment must start and end on the same day'
            raise ValidationError(msg)
        if start >= end:
            msg = "End data/time must come after start date/time"
            raise ValidationError(msg)
Exemple #12
0
class TimeField(Field):
    """A text field which stores a `datetime.time` matching a format.

    Adapted from:
    http://flask-admin.readthedocs.org/en/v1.0.7/_modules/flask/ext/admin/form/fields/#TimeField
    """
    widget = TimeInput()
    error_msg = 'Not a valid time.'

    def __init__(self,
                 label=None,
                 validators=None,
                 format='%I:%M%p',  # 1:45PM
                 **kwargs):
        """Creates a TimeField instance.

        :param str label: A label to be optionally displayed next to the field.
        :param validators: callables that validate the field's data.
        :type validators: list of functions or :class:`wtforms.validators`
        :param str format: the format to store the time in.
        """
        super(TimeField, self).__init__(label, validators, **kwargs)
        self.format = format

    def _value(self):
        """Called by :mod:`wtforms` to get the data from the field.

        :returns: The time encoded as a string.
        :rtype: str
        """
        if self.raw_data:
            return ' '.join(self.raw_data)
        else:
            return self.data and self.data.strftime(self.format) or ''

    def process_formdata(self, valuelist):
        """Called by :mod:`wtforms`."""
        if valuelist:
            time_str = ' '.join(valuelist)
            try:
                self.data = datetime.time(
                    *time.strptime(time_str.lower(), self.format)[3:5]
                )
            except ValueError:
                self.data = None
                raise ValueError(self.gettext(self.error_msg))
Exemple #13
0
class TimeField(StringField):
    """HTML5 time input."""
    widget = TimeInput()

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

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

    def process_formdata(self, valuelist):
        if valuelist and valuelist != [u'']:
            time_str = ' '.join(valuelist)
            try:
                components = time_str.split(':')
                hour = 0
                minutes = 0
                seconds = 0
                if len(components) in range(2, 4):
                    hour = int(components[0])
                    minutes = int(components[1])

                    if len(components) == 3:
                        seconds = int(components[2])
                else:
                    raise ValueError
                self.data = datetime.time(hour, minutes, seconds)
            except ValueError:
                self.data = None
                raise ValueError(self.gettext('Not a valid time'))
Exemple #14
0
from wtforms.widgets.html5 import DateInput, TimeInput
from wtforms.validators import DataRequired, ValidationError


def next_block(delta=0):
    def time():
        now = datetime.now()
        return now - timedelta(minutes=now.minute % 15 - delta - 15,
                               seconds=now.second)

    return time


v = [DataRequired()]
di = {'default': datetime.now, 'widget': DateInput()}
sti = {'default': next_block(), 'widget': TimeInput()}
eti = {'default': next_block(60), 'widget': TimeInput()}


class AppointmentForm(FlaskForm):
    name = StringField("Name", v)
    start_date = DateField("Start date", v, **di)
    start_time = TimeField("Start time", v, **sti)
    end_date = DateField("End date", v, **di)
    end_time = TimeField("End time", v, **eti)
    description = TextAreaField("Description", v)
    private = BooleanField("Private?")
    submit = SubmitField("Create an appointment")

    def validate_end_date(form, field):
        start = datetime.combine(form.start_date.data, form.start_time.data)
Exemple #15
0
class ScheduleSubForm(Form):
    weekday = HiddenField()
    open_from = StringField('From', widget=TimeInput())
    open_to = StringField('To', widget=TimeInput())