mirror of
https://github.com/lucaspalomodevelop/eventcally.git
synced 2026-03-13 00:07:22 +00:00
63 lines
2.1 KiB
Python
63 lines
2.1 KiB
Python
from flask_babelex import lazy_gettext
|
|
from flask_wtf import FlaskForm
|
|
from wtforms import (
|
|
DecimalField,
|
|
StringField,
|
|
SubmitField,
|
|
TextAreaField,
|
|
FormField,
|
|
)
|
|
from wtforms.fields.html5 import URLField
|
|
from wtforms.validators import DataRequired, Optional
|
|
from project.models import Location, Image
|
|
from project.forms.common import Base64ImageForm
|
|
|
|
|
|
class EventPlaceLocationForm(FlaskForm):
|
|
street = StringField(lazy_gettext("Street"), validators=[Optional()])
|
|
postalCode = StringField(lazy_gettext("Postal code"), validators=[Optional()])
|
|
city = StringField(lazy_gettext("City"), validators=[Optional()])
|
|
state = StringField(lazy_gettext("State"), validators=[Optional()])
|
|
latitude = DecimalField(
|
|
lazy_gettext("Latitude"), places=16, validators=[Optional()]
|
|
)
|
|
longitude = DecimalField(
|
|
lazy_gettext("Longitude"), places=16, validators=[Optional()]
|
|
)
|
|
|
|
|
|
class BaseEventPlaceForm(FlaskForm):
|
|
name = StringField(lazy_gettext("Name"), validators=[DataRequired()])
|
|
url = URLField(lazy_gettext("Link URL"), validators=[Optional()])
|
|
photo = FormField(Base64ImageForm, lazy_gettext("Photo"), default=lambda: Image())
|
|
description = TextAreaField(lazy_gettext("Description"), validators=[Optional()])
|
|
location = FormField(EventPlaceLocationForm)
|
|
|
|
def populate_obj(self, obj):
|
|
for name, field in self._fields.items():
|
|
if name == "location" and not obj.location:
|
|
obj.location = Location()
|
|
elif name == "photo" and not obj.photo:
|
|
obj.photo = Image()
|
|
field.populate_obj(obj, name)
|
|
|
|
|
|
class CreateEventPlaceForm(BaseEventPlaceForm):
|
|
submit = SubmitField(lazy_gettext("Create place"))
|
|
|
|
|
|
class UpdateEventPlaceForm(BaseEventPlaceForm):
|
|
submit = SubmitField(lazy_gettext("Update place"))
|
|
|
|
|
|
class DeleteEventPlaceForm(FlaskForm):
|
|
submit = SubmitField(lazy_gettext("Delete place"))
|
|
name = StringField(lazy_gettext("Name"), validators=[DataRequired()])
|
|
|
|
|
|
class FindEventPlaceForm(FlaskForm):
|
|
class Meta:
|
|
csrf = False
|
|
|
|
submit = SubmitField(lazy_gettext("Find places"))
|