Exemple #1
0
class ApiForm(FlaskForm):
    dataInicio = DateTimeLocalField(
        "Data Inicio",
        default=datetime.today,
        format="%d/%m/%Y %H:%M:%S",
        validators=[
            DataRequired(message="Voce precisa inserir a data inicio")
        ])
    dataFim = DateTimeLocalField(
        "Data Fim",
        default=datetime.today,
        format="%d/%m/%Y %H:%M:%S",
        validators=[
            DataRequired(message="Voce presica inserir uma data final")
        ])
    contenha = StringField("Contenha")
    submit = SubmitField("Buscar")

    def validate_on_submit(self):
        resultado = super(ApiForm, self).validate()
        print("DATA INICIO {} | DATA FIM {}".format(self.dataInicio.data,
                                                    self.dataFim.data))
        if self.dataInicio.data > self.dataFim.data:
            return False
        else:
            return resultado
Exemple #2
0
class NewTranscriptForm(FlaskForm):

    studentId = StringField('Student ID: ', validators=[DataRequired()])
    fullname = StringField('Full Name', validators=[DataRequired()])
    address = StringField('Address', validators=[DataRequired()])
    #startyear = DateTimeField('Start Year', id='datepick')
    #startyear = DateField( 'Date', format = "%d%b%Y %H:%M", validators=[DataRequired()] )

    startyear = DateTimeLocalField(
        label='Start Date',
        format='%Y-%m-%d %H:%M',
        validators = [Required('please select startdate')]
    )

    #endyear = StringField('End Year', validators=[DataRequired()])
    endyear = DateTimeLocalField(
        label='End Date',
        format='%Y-%m-%d %H:%M',
        validators = [Required('please select end date')]
    )

    faculty = SelectField(
        u'Faculty Type',
        choices = [('Humanities & Education', 'Humanities & Education'), ('Law', 'Law'), ('Medical Sciences', 'Medical Sciences'), ('Science & Technology', 'Science & Technology')]
    )

    officialcopy = RadioField('Copy Type', choices=[('Yes','Official Copy'),('No','Student Copy')])
    emailTo = StringField('Email To', validators=[DataRequired()])

    submit = SubmitField('Request')
Exemple #3
0
class survey_camera_form(FlaskForm):
    survey_id = HiddenField(label='survey', validators=[DataRequired()])
    camera = SelectField(label='Camera',
                         coerce=int,
                         choices=[],
                         validators=[DataRequired()])
    card_in = SelectField(label='Card In',
                          coerce=int,
                          choices=[],
                          validators=[DataRequired()])
    card_out = SelectField(label='Card Out',
                           coerce=int,
                           choices=[],
                           validators=[DataRequired()])
    cleared = BooleanField(label='Has out SD card been cleared?',
                           default=False)
    changed_battery = BooleanField(label='Changed Batteries?', default=False)
    started_recording = DateTimeLocalField(label='Started Recording',
                                           format='%Y-%m-%dT%H:%M',
                                           validators=[Optional()])
    stopped_recording = DateTimeLocalField(label='Stopped Recording',
                                           format='%Y-%m-%dT%H:%M',
                                           validators=[Optional()])
    functional = BooleanField(label='Is/was the camera functional?',
                              default=False)
    comment = TextAreaField(label='Comments', default='')
    submit = SubmitField()
Exemple #4
0
class PostForm(FlaskForm):
    event_name = StringField('Event Name', validators=[DataRequired()])
    event_desc = TextAreaField('Event Description')

    #code from https://flask-wtf.readthedocs.io/en/latest/form.html#module-flask_wtf.file
    #image = FileField('Image File', validators=[
    #    FileRequired('hey this is required'),
    #    FileAllowed(['jpg', 'png'], 'Images only')
    #])

    location = SelectField(
        'School/College',
        validators=[DataRequired()],
        choices=[
            ('College of Arts & Science', 'College of Arts & Science'),
            ('College of Dentistry', 'College of Dentistry'),
            ('Gallatin School of Individualized Study',
             'Gallatin School of Individualized Study'),
            ('Leonard N. Stern School of Business',
             'Leonard N. Stern School of Business'),
            ('Liberal Studies', 'Liberal Studies'),
            ('Rory Meyers College of Nursing',
             'Rory Meyers College of Nursing'),
            ('Steinhardt School of Culture, Education, and Human Development',
             'Steinhardt School of Culture, Education, and Human Development'),
            ('Silver School of Social Work', 'Silver School of Social Work'),
            ('School of Professional Studies',
             'School of Professional Studies'),
            ('Tandon School of Engineering', 'Tandon School of Engineering'),
            ('Tisch School of the Arts', 'Tisch School of the Arts')
        ])
    #start = StringField('Start Time', validators=[DataRequired()])
    start = DateTimeLocalField('Start Time', format='%Y-%m-%dT%H:%M')
    end = DateTimeLocalField('End Time', format='%Y-%m-%dT%H:%M')
    submit = SubmitField('Post Event')
Exemple #5
0
class BookingForm(FlaskForm):
    def validate(self):
        t1 = self.date_pickup.data
        t2 = self.date_drop.data
        t1 = datetime.strptime(str(t1), '%Y-%m-%d %H:%M:%S')
        t2 = datetime.strptime(str(t2), '%Y-%m-%d %H:%M:%S')
        if (t1 < datetime.now()):
            self.date_pickup.errors = ('', 'Please select a future date and time.')
            return False

        diff = relativedelta(t2, t1)
        num_of_hours = 0
        i = 0
        while (i < diff.days):
            num_of_hours += 24
            i += 1
        num_of_hours += diff.hours
        if (num_of_hours < 1):
            self.date_drop.errors = ('', 'Drop time should be minimum 1 hour away from PickupTime')
            return False
        elif (num_of_hours > 72):
            self.date_drop.errors = ('', 'Please select drop time not more than 3 days.')
            return False
        return True

    cartype = SelectField('Car Rental Type', choices=[('SMALLCAR', 'Small Car'), ('FULLSIZECAR', 'Full size car'), ('TRUCK', 'Truck'), ('LUXURYCAR', 'Luxury Car')], validators=[InputRequired()])
    date_pickup = DateTimeLocalField('Pickup Date-Time', format='%Y-%m-%dT%H:%M' , validators=[DataRequired()])
    date_drop = DateTimeLocalField('Drop-Off Date-Time', format='%Y-%m-%dT%H:%M', validators=[DataRequired()])
    _list = VehicleLocation.getVehilces()
    pickup_location = SelectField('Pickup Location', choices=[(c.location_id, c.name) for c in _list])
    submit = SubmitField('Search Vehicle')
    submitbook = SubmitField('Book')
Exemple #6
0
class RescheduleBooking(Form):
    """
    RescheduleBooking(Form): Form used by the admin to reschedule a booking request.
    """
    From = DateTimeLocalField("From: ", [validators.DataRequired()], format='%Y-%m-%dT%H:%M')
    To = DateTimeLocalField("To: ", [validators.DataRequired()], format='%Y-%m-%dT%H:%M')
    bookingID = HiddenField('ID')
Exemple #7
0
class CreateRide(FlaskForm):
    ride_type = SelectField('Поездка', choices=[('Air_flight', 'Полёт'), ('Train_ride', 'Поездка')],
                            validators=[DataRequired()])
    station_from = StringField('Откуда (Аэропорт или станция)', validators=[DataRequired()])
    station_to = StringField('Куда (Аэропорт или станция)', validators=[DataRequired()])
    date_to = DateTimeLocalField('Прибытие', format='%Y-%m-%dT%H:%M', validators=[DataRequired()])
    date_from = DateTimeLocalField('Отправление', format='%Y-%m-%dT%H:%M', validators=[DataRequired()])
    submit = SubmitField('Создать')

    def validate_station_from(form, station):
        if form.ride_type.data == 'Air_flight':
            st = Airport.nodes.get_or_none(name=station.data)
        else:
            st = Station.nodes.get_or_none(name=station.data)
        if st is None:
            raise ValidationError('Такой станции нет!!!!')

    def validate_station_to(form, station):
        if form.ride_type.data == 'Air_flight':
            st = Airport.nodes.get_or_none(name=station.data)
        else:
            st = Station.nodes.get_or_none(name=station.data)
        if st is None:
            raise ValidationError('Такой станции нет!!!!')

    def validate_date_to(form, date):
        if form.date_from.data is None:
            raise ValidationError('Введите дату!!!!!!!!!')
        if date.data < form.date_from.data:
            raise ValidationError('Дата прибытия должна быть позже!!!!!!')
Exemple #8
0
class CourseHometaskForm(FlaskForm):
    name = StringField("Название:",
                       validators=[
                           Length(min=1, message='Обязательное поле'),
                           Length(max=100, message='Слишком длинное название')
                       ])
    content = TextAreaField("Содержание:",
                            validators=[
                                Length(min=1, message='Обязательное поле'),
                                Length(max=10000,
                                       message='Слишком длинное содержание')
                            ])
    start_dttm = DateTimeLocalField("Начало сдачи",
                                    format='%Y-%m-%dT%H:%M',
                                    validators=[Required()])
    end_dttm = DateTimeLocalField("Окончание сдачи",
                                  format='%Y-%m-%dT%H:%M',
                                  validators=[Required()])
    submit = SubmitField("Сохранить")

    # Redefine validate method, added aditional condition
    def validate(self):
        is_valid = FlaskForm.validate(self)
        if not is_valid:
            return False
        if self.start_dttm.data > self.end_dttm.data:
            self.start_dttm.errors.append(
                'Начало сдачи должно быть до дедлайна')
            return False
        return True
Exemple #9
0
class KokousTiedotForm(FlaskForm):
    """Lomake kokoustietojen muokkaamiseen"""

    def alkaa_ennen_paattymista(self, field) -> None:
        """Validaattorifunktio varmistamaan, ettei kokous pääty ennen kuin se alkaa."""
        if (self.alkaa.data > self.paattyy.data):
            raise ValidationError("Kokous ei voi päättyä ennen kuin se alkoi")

    alkaa= DateTimeLocalField("Kokous alkaa",
                              validators=[validators.DataRequired(message="Anna päivämäärä")],
                              format='%Y-%m-%dT%H:%M')
    paattyy= DateTimeLocalField("Kokous päättyy",
                                validators=[validators.DataRequired(message="Anna päivämäärä"), alkaa_ennen_paattymista],
                                format='%Y-%m-%dT%H:%M')
    sijainti= StringField("Sijainti")
    kuvaus= TextAreaField("Ennakkotiedot")
    submit = SubmitField("Tallenna")

    def lataa(self, kokous: Kokous) -> None:
        """Täyttää lomakkeen kokouksen tiedoilla"""
        self.alkaa.data = kokous.alkaa
        self.paattyy.data = kokous.paattyy
        self.sijainti.data = kokous.sijainti
        self.kuvaus.data = kokous.kuvaus


    def tallenna(self, kokous: Kokous) -> None:
        """Tallentaa lomakkeen tiedot Kokous-olioon"""
        kokous.alkaa = self.alkaa.data
        kokous.paattyy = self.paattyy.data
        kokous.sijainti = self.sijainti.data
        kokous.kuvaus = self.kuvaus.data
Exemple #10
0
class CreateProgrammeForm(BaseModelForm):
    name = StringField("Name",
                       validators=[DataRequired(),
                                   Length(min=5, max=80)])
    description = StringField(
        "Description", validators=[DataRequired(),
                                   Length(min=5, max=256)])
    start_time = DateTimeLocalField("Start Time",
                                    validators=[DataRequired()],
                                    format='%Y-%m-%dT%H:%M')
    end_time = DateTimeLocalField("End Time",
                                  validators=[DataRequired()],
                                  format='%Y-%m-%dT%H:%M')
    offset = HiddenField('Time Offset')
    programme_type = SelectField("Programme Type",
                                 choices=[('live', "Live Streaming"),
                                          ('videos', "Videos")])

    def validate_start_time(form, field):
        import datetime
        if field.data + datetime.timedelta(
                minutes=int(form.offset.data)) < datetime.datetime.now():
            raise ValidationError("Start time must be in the future.")
        elif field.data > form.end_time.data:
            raise ValidationError(
                "End time must not be earlier than start time.")

    def validate_end_time(form, field):
        import datetime
        if field.data + datetime.timedelta(
                minutes=int(form.offset.data)) < datetime.datetime.now():
            raise ValidationError("End time must be in the future.")
Exemple #11
0
class UseTimeForm(FlaskForm):
    start = DateTimeLocalField("Початок роботи",
                               format="%Y-%m-%dT%H:%M",
                               default=datetime.now())
    end = DateTimeLocalField("Кінець роботи",
                             format="%Y-%m-%dT%H:%M",
                             default=datetime.now() + timedelta(hours=2))

    def validate_start(self, start):
        if start.data >= self.end.data:
            raise ValidationError(
                "Дата початку не може бути більша ніж дата кінця.")
        # Time management
        spent_days = date.today().weekday()
        left_days = 7 - spent_days
        min_date = datetime.combine(date.today(),
                                    time()) - timedelta(days=spent_days)
        max_date = datetime.combine(date.today(),
                                    time()) + timedelta(days=left_days)
        if start.data < min_date or start.data > max_date:
            raise ValidationError(
                "Дата початку виходити за межі поточної неділі.")

    def validate_end(self, end):
        # Time management
        spent_days = date.today().weekday()
        left_days = 7 - spent_days
        min_date = datetime.combine(date.today(),
                                    time()) - timedelta(days=spent_days)
        max_date = datetime.combine(date.today(),
                                    time()) + timedelta(days=left_days)
        if end.data < min_date or end.data > max_date:
            raise ValidationError(
                "Дата кінця виходити за межі поточної неділі.")
Exemple #12
0
class CreateEventForm(BaseModelForm):
    name = StringField("Name",
                       validators=[DataRequired(),
                                   Length(min=5, max=80)])
    description = StringField(
        "Description", validators=[DataRequired(),
                                   Length(min=5, max=256)])
    start_time = DateTimeLocalField("Start Time",
                                    validators=[DataRequired()],
                                    format='%Y-%m-%dT%H:%M')
    end_time = DateTimeLocalField("End Time",
                                  validators=[Optional()],
                                  format='%Y-%m-%dT%H:%M')
    offset = HiddenField('Time Offset')

    def validate_start_time(form, field):
        import datetime
        if field.data + datetime.timedelta(
                minutes=int(form.offset.data)) < datetime.datetime.now():
            raise ValidationError("Start Date must be in the future.")
        if form.end_time:
            if field.data > form.end_time.data:
                raise ValidationError(
                    "End Date must not be earlier than start date.")

    def validate_end_time(form, field):
        import datetime
        if field:
            if field.data + datetime.timedelta(
                    minutes=int(form.offset.data)) < datetime.datetime.now():
                raise ValidationError("End date must be in the future.")
Exemple #13
0
class NewEventForm(FlaskForm):
    title = StringField(validators=[DataRequired()])
    date_start = DateTimeLocalField('Inicio',
                                    validators=[DataRequired()],
                                    format='%Y-%m-%dT%H:%M')
    date_end = DateTimeLocalField('Fim',
                                  validators=[DataRequired()],
                                  format='%Y-%m-%dT%H:%M')
    description = TextAreaField()
    submit = SubmitField('Adicionar')

    def validate_date_end(self, date_end):
        event_start = self.date_start.data
        dayEvents = Event.query.filter(
            Event.event_owner == current_user.id).filter(
                Event.date_start < date_end.data).filter(
                    Event.date_end > date_end.data).first()

        if date_end.data < event_start:
            raise ValidationError(
                'A data de termino não pode ser anterior a data de inicio')
        elif dayEvents is not None:
            raise ValidationError(
                'Voce ja tem um evento marcado com essas datas')

    def validate_date_start(self, date_start):

        pendingEvents = Event.query.filter(
            Event.event_owner == current_user.id).filter(
                Event.date_start < date_start.data).filter(
                    Event.date_end > date_start.data).first()
        event = Event.query.filter_by(date_start=date_start.data).first()
        if event is not None or pendingEvents is not None:
            raise ValidationError(
                'Voce ja tem um evento marcado com essas datas')
Exemple #14
0
class AppointmentForm(FlaskForm):
    title = StringField('Title',
                        validators=[DataRequired(message='Title Field Empty')],
                        default='')
    description = TextAreaField(
        'Description',
        validators=[DataRequired(message='Description Field Empty')])
    date_start = DateTimeLocalField(
        'Start Time (EDT)',
        validators=[DataRequired(message='Start Field Empty')],
        format='%Y-%m-%dT%H:%M')
    date_end = DateTimeLocalField(
        'End Time (EDT)',
        validators=[DataRequired(message='End Field Empty')],
        format='%Y-%m-%dT%H:%M')
    treatment = SelectField('Treatment')
    patient = SelectField('Patient')
    color = RadioField('Color',
                       choices=[('blue', 'Blue'), ('green', 'Green'),
                                ('red', 'Red'), ('yellow', 'Yellow'),
                                ('orange', 'Orange')],
                       validators=[DataRequired(message='Color Field Empty')],
                       default='blue')
    all_day = BooleanField('All Day?')
    submit = SubmitField('Submit')

    def validate(self):
        if self.date_start.data > self.date_end.data:
            raise ValidationError('Start Date Occurs Later Than End Date.')
        else:
            return True
Exemple #15
0
class CreateTaskForm(FlaskForm):
    title = StringField('Title',
                        validators=[InputRequired(),
                                    Length(min=4, max=25)])
    #priority = RadioField('Priority', choices=['1', '2', '3', '4', '5'],
    #                      default='1', validators=[InputRequired()],
    #                      coerce=int)
    priority = RadioField('Priority',
                          choices=['1', '2', '3', '4', '5'],
                          default='1',
                          coerce=int)
    description = StringField('Description', validators=[InputRequired()])
    try:
        start_date = DateTimeLocalField('Start Date',
                                        format='%Y-%m-%dT%H:%M',
                                        validators=[InputRequired()])
        end_date = DateTimeLocalField('End Date',
                                      format='%Y-%m-%dT%H:%M',
                                      validators=[InputRequired()])
    except Exception as e:
        start_date = None
        end_date = None

    def validate_dates(self):
        if self.start_date.data and self.end_date.data:
            if self.start_date.data >= self.end_date.data:
                return False
        return True
Exemple #16
0
class ArtistForm(Form):
    name = StringField('name', validators=[DataRequired('Name is required.')])
    city = StringField(
        'city', validators=[DataRequired('City is required.'),
                            Length(0, 120)])
    state = SelectField('state',
                        validators=[DataRequired('State is required.')],
                        choices=State.choices())
    phone = StringField('phone')
    genres = SelectMultipleField(
        'genres',
        validators=[DataRequired('At least one genre is required.')],
        choices=Genre.choices())
    image_link = URLField('image_link',
                          validators=[
                              DataRequired('Image link is required.'),
                              URL(message='Image link must be an URL.'),
                              Length(0, 500)
                          ])
    website_link = URLField('website_link', validators=[Length(0, 120)])
    facebook_link = URLField('facebook_link', validators=[Length(0, 120)])
    albums = StringField('albums', validators=[Length(0, 500)])
    seeking_venue = BooleanField('seeking_venue', default='checked')
    seeking_description = StringField('seeking_description',
                                      default="I'm looking for venues.")
    available_times = BooleanField('available_times')
    available_start = DateTimeLocalField('available_start',
                                         default=datetime.utcnow,
                                         format='%Y-%m-%dT%H:%M')
    available_end = DateTimeLocalField('available_end',
                                       default=datetime.utcnow,
                                       format='%Y-%m-%dT%H:%M')
Exemple #17
0
class NotesForm(FlaskForm):
    title = StringField()
    note_body = TextAreaField()
    creation_date = DateTimeLocalField()
    modification_date = DateTimeLocalField()
    new = SubmitField()
    save = SubmitField()
    delete = SubmitField()
Exemple #18
0
class SearchForm(Form):
    area = StringField('エリア: ')
    from_time = DateTimeLocalField('利用時間: ', format='%Y-%m-%dT%H:%M')
    to_time = DateTimeLocalField('', format='%Y-%m-%dT%H:%M')
    kensa = StringField('検査: ')
    shikkan = StringField('疾患・専門: ')
    chiryo = StringField('治療: ')
    submit = SubmitField('検索')
Exemple #19
0
class RangeForm(FlaskForm):
    recent = IntegerField('Most recent:', validators=[Optional()])
    start = DateTimeLocalField('Or choose a range from:',
                               format='%Y-%m-%dT%H:%M',
                               validators=[Optional()])
    end = DateTimeLocalField('To:',
                             format='%Y-%m-%dT%H:%M',
                             validators=[Optional()])
Exemple #20
0
class BookingForm(Form):
    """
    BookingForm(Form): Form used by the user to send a booking request.
    """
    SupervisorName = StringField('Supervisor Name', [validators.Length(min=1, max=255), validators.DataRequired()])
    SupervisorEmail = StringField('Supervisor Email', [validators.Length(min=1), validators.DataRequired()])
    From = DateTimeLocalField("From: ", [validators.DataRequired()], format='%Y-%m-%dT%H:%M')
    To = DateTimeLocalField("To: ", [validators.DataRequired()], format='%Y-%m-%dT%H:%M')
Exemple #21
0
class quizForm(FlaskForm):
    name = StringField('Quiz Name', validators=[DataRequired('Data required')])
    start_time = DateTimeLocalField('Start Time and Date:',
                                    validators=[DataRequired('Data required')],
                                    format='%Y-%m-%dT%H:%M')
    end_time = DateTimeLocalField('End Time and Date:',
                                  validators=[DataRequired('Data required')],
                                  format='%Y-%m-%dT%H:%M')
    submit = SubmitField('Submit')
Exemple #22
0
class EditActivity(Form):
    name = StringField('Aktivitets navn', validators=[DataRequired(), Length(min=1, max=50)])
    description = TextAreaField('Beskrivelse', validators=[DataRequired(), Length(min=1, max=5000)])
    location = StringField('Lokasjon', validators=[DataRequired(), Length(min=1, max=100)])
    day = SelectField('Dag', choices=days, coerce=int, default=0)
    slots = IntegerField('Plasser', validators=[DataRequired()])
    time = TimeField('Tidspunkt', validators=[DataRequired()])
    reg_start = DateTimeLocalField('Påmld. åpner', format="%Y-%m-%dT%H:%M")
    reg_stop = DateTimeLocalField('Påmld. stenger', format="%Y-%m-%dT%H:%M")
Exemple #23
0
class EditPackageForm(Form):
    sender_name = StringField('Sender')
    arrival_date = DateTimeLocalField('Arrival Date')
    pickup_date = DateTimeLocalField('Pick Up Date')
    status = SelectField('Status',
                         choices=[('picked_up', 'Picked up'),
                                  ('not_picked_up', 'Not picked up')])
    student = StringField('Student')
    employee = StringField('Employee')
Exemple #24
0
class AddFlightForm(FlaskForm):
    flight_number = StringField('Flight Number', validators=[DataRequired()])
    departure_time = DateTimeLocalField('Departure Time', validators=[DataRequired()], format='%Y-%m-%dT%H:%M')
    arrival_time = DateTimeLocalField('Arrival Time', validators=[DataRequired()], format='%Y-%m-%dT%H:%M')
    submit_flight = SubmitField('Add Flight')

    def validate_departure_time(self, departure_time):
        if departure_time.data >= self.arrival_time.data:
            raise ValidationError('Arrival time must be after departure time.')
Exemple #25
0
class CancelbookingForm(FlaskForm):
    booking_id = IntegerField('Booking ID')
    pickupdatetime = DateTimeLocalField('Pickup Date-Time', format='%y/%m/%d')
    dropoffdatetime = DateTimeLocalField('Drop-Off Date-Time', format='%y/%m/%d')
    _list = VehicleLocation.getVehilces()
    pickup_location = SelectField('Pickup Location', choices=[(c.location_id, c.name) for c in _list])
    vehicle_id = IntegerField('Enter the Vehicle ID To Remove')
    price = FloatField('Price')
    submit =  SubmitField('Cancel')
Exemple #26
0
class ClassAddForm(FlaskForm):
    """Form for adding or editing classes."""
    location = StringField('Location', validators=[DataRequired()])
    start_date_time = DateTimeLocalField('Class Start',
                                         format='%Y-%m-%dT%H:%M',
                                         validators=[DataRequired()])
    end_date_time = DateTimeLocalField('Class End',
                                       format='%Y-%m-%dT%H:%M',
                                       validators=[DataRequired()])
class scheduleForm(Form):
    testName = SelectField("Choose a Test", choices=[])
    start = DateTimeLocalField("Schedule Start Date and Time",
                               format='%Y-%m-%dT%H:%M',
                               validators=[InputRequired()])
    end = DateTimeLocalField("Schedule End Date and Time",
                             format='%Y-%m-%dT%H:%M',
                             validators=[InputRequired()])
    submit = SubmitField("Save")
class StartEventForm(FlaskForm):
    eventName = StringField('Event Name', validators=[DataRequired()])
    description = TextAreaField('Event Description')
    volunteerCount = IntegerField('Volunteers Needed',
                                  validators=[DataRequired()])
    city = StringField('City', validators=[DataRequired()])
    province = StringField('Province', validators=[DataRequired()])
    startEvent = DateTimeLocalField('Event Start', validators=[DataRequired()])
    endEvent = DateTimeLocalField('Event Start', validators=[DataRequired()])
    submit = SubmitField('Host Event')
class ChartForm(FlaskForm):  # form for the chart date range
    defaultStartDate = datetime.strptime(maxDateMinus12,
                                         '%Y-%m-%d %H:%M:%S')  # default value used for start date field
    defaultEndDate = datetime.strptime(maxDate,
                                       '%Y-%m-%d %H:%M:%S')  # default value used for end date field
    startDate = DateTimeLocalField('StartDate',
                                   default=defaultStartDate,
                                   format='%Y-%m-%dT%H:%M')  # Start date field
    endDate = DateTimeLocalField('EndDate', default=defaultEndDate,
                                 format='%Y-%m-%dT%H:%M')  # End date field
class EventForm(FlaskForm):
    title = StringField('Title', validators=[DataRequired()])
    start_time = DateTimeLocalField('Start Time',
                                    format='%Y-%m-%dT%H:%M',
                                    validators=[DataRequired()])
    end_time = DateTimeLocalField('End Time',
                                  format='%Y-%m-%dT%H:%M',
                                  validators=[DataRequired()])
    payment = BooleanField('Paid', default=False)
    submit = SubmitField('Create Event')