|
@@ -1,101 +1,128 @@ |
|
|
# -*- coding: utf8 -*- |
|
|
# -*- coding: utf8 -*- |
|
|
|
|
|
import random |
|
|
|
|
|
import string |
|
|
from wtforms import Form, BooleanField, StringField, TextAreaField, SelectField |
|
|
from wtforms import Form, BooleanField, StringField, TextAreaField, SelectField |
|
|
from wtforms import SubmitField, validators, FieldList, PasswordField |
|
|
from wtforms import SubmitField, validators, FieldList, PasswordField |
|
|
#import .ExtWforms |
|
|
|
|
|
|
|
|
# import .ExtWforms |
|
|
from .ExtWtforms import MySelectField |
|
|
from .ExtWtforms import MySelectField |
|
|
from wtforms import HiddenField, DecimalField, DateTimeField, FormField, DateField |
|
|
from wtforms import HiddenField, DecimalField, DateTimeField, FormField, DateField |
|
|
from wtforms.validators import ValidationError |
|
|
from wtforms.validators import ValidationError |
|
|
strip_filter = lambda x: x.strip() if x else None |
|
|
|
|
|
from wtforms.csrf.session import SessionCSRF |
|
|
from wtforms.csrf.session import SessionCSRF |
|
|
from datetime import timedelta |
|
|
from datetime import timedelta |
|
|
from jm2l.const import CurrentYear |
|
|
from jm2l.const import CurrentYear |
|
|
|
|
|
|
|
|
|
|
|
# What about an helper function |
|
|
|
|
|
#def strip_filter(x) |
|
|
|
|
|
# if x is no |
|
|
|
|
|
strip_filter = lambda x: x.strip() if x else None |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# get random string password with letters, digits, and symbols |
|
|
|
|
|
def get_random_string(length): |
|
|
|
|
|
csrf_characters = string.ascii_letters + string.digits + string.punctuation |
|
|
|
|
|
csrf = ''.join(random.choice(password_characters) for i in range(length)) |
|
|
|
|
|
return csrf |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class MyBaseForm(Form): |
|
|
class MyBaseForm(Form): |
|
|
class Meta: |
|
|
class Meta: |
|
|
csrf = True |
|
|
csrf = True |
|
|
csrf_class = SessionCSRF |
|
|
csrf_class = SessionCSRF |
|
|
csrf_secret = b'lJDQtOAMC2qe89doIn8u3Mch_DgeLSKO' |
|
|
|
|
|
|
|
|
# csrf_secret = b'lJDQtOAMC2qe89doIn8u3Mch_DgeLSKO' |
|
|
|
|
|
csrf_secret = get_random_string(32) |
|
|
csrf_time_limit = timedelta(minutes=60) |
|
|
csrf_time_limit = timedelta(minutes=60) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class BlogCreateForm(MyBaseForm): |
|
|
class BlogCreateForm(MyBaseForm): |
|
|
title = StringField('Entry title', [validators.Length(min=1, max=255)], |
|
|
title = StringField('Entry title', [validators.Length(min=1, max=255)], |
|
|
filters=[strip_filter]) |
|
|
|
|
|
|
|
|
filters=[strip_filter]) |
|
|
body = TextAreaField('Entry body', [validators.Length(min=1)], |
|
|
body = TextAreaField('Entry body', [validators.Length(min=1)], |
|
|
filters=[strip_filter]) |
|
|
filters=[strip_filter]) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class BlogUpdateForm(BlogCreateForm): |
|
|
class BlogUpdateForm(BlogCreateForm): |
|
|
id = HiddenField() |
|
|
id = HiddenField() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PLACE_TYPE = [('Aeroport', u'Aéroport'), ('Gare','Gare'), ('JM2L','JM2L'), |
|
|
|
|
|
('Hotel',u'Hôtel'), ('Habitant','Habitant'), |
|
|
|
|
|
('Restaurant','Restaurant'), ('Autres','Autres')] |
|
|
|
|
|
|
|
|
|
|
|
TIERS_ROLE = [('Exposant','Exposant'), ('Sponsor','Sponsor'), |
|
|
|
|
|
('Donateur','Donateur')] |
|
|
|
|
|
|
|
|
|
|
|
YESNO = [("0","Non"), ("1","Oui")] |
|
|
|
|
|
|
|
|
PLACE_TYPE = [('Aeroport', u'Aéroport'), ('Gare', 'Gare'), ('JM2L', 'JM2L'), |
|
|
|
|
|
('Hotel', u'Hôtel'), ('Habitant', 'Habitant'), |
|
|
|
|
|
('Restaurant', 'Restaurant'), ('Autres', 'Autres')] |
|
|
|
|
|
|
|
|
|
|
|
TIERS_ROLE = [('Exposant', 'Exposant'), ('Sponsor', 'Sponsor'), |
|
|
|
|
|
('Donateur', 'Donateur')] |
|
|
|
|
|
|
|
|
|
|
|
YESNO = [("0", "Non"), ("1", "Oui")] |
|
|
|
|
|
|
|
|
EVENT_TYPE = ['Stand', 'Table ronde', 'Atelier', 'Concert', 'Conference', 'Repas'] |
|
|
EVENT_TYPE = ['Stand', 'Table ronde', 'Atelier', 'Concert', 'Conference', 'Repas'] |
|
|
|
|
|
|
|
|
CONF_DURATION = [ (15,u'Lighting talk ( 5 min)'), |
|
|
|
|
|
(30,u'Conférence (20 min)'), |
|
|
|
|
|
(60,u'Conférence (50 min)'), |
|
|
|
|
|
(90,u'Conférence (75 min)'),] |
|
|
|
|
|
|
|
|
|
|
|
ATELIER_DURATION = [ (15,u'Lighting talk ( 5 min)'), |
|
|
|
|
|
(30,u'Conférence (20 min)'), |
|
|
|
|
|
(60,u'Conférence (50 min)'), |
|
|
|
|
|
(90,u'Conférence (75 min)'),] |
|
|
|
|
|
|
|
|
CONF_DURATION = [(15, u'Lighting talk ( 5 min)'), |
|
|
|
|
|
(30, u'Conférence (20 min)'), |
|
|
|
|
|
(60, u'Conférence (50 min)'), |
|
|
|
|
|
(90, u'Conférence (75 min)'), ] |
|
|
|
|
|
|
|
|
|
|
|
ATELIER_DURATION = [(15, u'Lighting talk ( 5 min)'), |
|
|
|
|
|
(30, u'Conférence (20 min)'), |
|
|
|
|
|
(60, u'Conférence (50 min)'), |
|
|
|
|
|
(90, u'Conférence (75 min)'), ] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class StaffArea(MyBaseForm): |
|
|
class StaffArea(MyBaseForm): |
|
|
name = StringField(u'Pôle') |
|
|
name = StringField(u'Pôle') |
|
|
description = TextAreaField('Description', [validators.optional(), validators.Length(max=1000000)], |
|
|
description = TextAreaField('Description', [validators.optional(), validators.Length(max=1000000)], |
|
|
filters=[strip_filter] |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
filters=[strip_filter] |
|
|
|
|
|
) |
|
|
year_uid = HiddenField('year', default=str(CurrentYear)) |
|
|
year_uid = HiddenField('year', default=str(CurrentYear)) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class EditStaffArea(StaffArea): |
|
|
class EditStaffArea(StaffArea): |
|
|
uid = HiddenField() |
|
|
uid = HiddenField() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class StaffTasks(MyBaseForm): |
|
|
class StaffTasks(MyBaseForm): |
|
|
name = StringField(u'Nom de la tâche', [validators.Required()]) |
|
|
|
|
|
area_uid = SelectField(u'Pôle concerné', coerce=int ) |
|
|
|
|
|
closed_by = SelectField(u'Assigné à', coerce=int ) |
|
|
|
|
|
|
|
|
name = StringField(u'Nom de la tâche', [validators.Required()]) |
|
|
|
|
|
area_uid = SelectField(u'Pôle concerné', coerce=int) |
|
|
|
|
|
closed_by = SelectField(u'Assigné à', coerce=int) |
|
|
due_date = DateField(u'Date prévue', format='%d/%m/%Y') |
|
|
due_date = DateField(u'Date prévue', format='%d/%m/%Y') |
|
|
description = TextAreaField('Description', [validators.optional(), validators.Length(max=1000000)], |
|
|
description = TextAreaField('Description', [validators.optional(), validators.Length(max=1000000)], |
|
|
filters=[strip_filter]) |
|
|
|
|
|
|
|
|
filters=[strip_filter]) |
|
|
year_uid = HiddenField('year', default=str(CurrentYear)) |
|
|
year_uid = HiddenField('year', default=str(CurrentYear)) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class EditStaffTasks(StaffTasks): |
|
|
class EditStaffTasks(StaffTasks): |
|
|
uid = HiddenField() |
|
|
uid = HiddenField() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class DossPresse(MyBaseForm): |
|
|
class DossPresse(MyBaseForm): |
|
|
year_uid = HiddenField() |
|
|
|
|
|
|
|
|
year_uid = HiddenField() |
|
|
doss_presse = TextAreaField('Dossier de Presse', [validators.optional(), validators.Length(max=1000000)], |
|
|
doss_presse = TextAreaField('Dossier de Presse', [validators.optional(), validators.Length(max=1000000)], |
|
|
filters=[strip_filter]) |
|
|
|
|
|
|
|
|
filters=[strip_filter]) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class IndexForm(MyBaseForm): |
|
|
class IndexForm(MyBaseForm): |
|
|
year_uid = HiddenField() |
|
|
|
|
|
|
|
|
year_uid = HiddenField() |
|
|
description = TextAreaField('Index', [validators.optional(), validators.Length(max=1000000)], |
|
|
description = TextAreaField('Index', [validators.optional(), validators.Length(max=1000000)], |
|
|
filters=[strip_filter]) |
|
|
|
|
|
|
|
|
filters=[strip_filter]) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TiersMember(MyBaseForm): |
|
|
class TiersMember(MyBaseForm): |
|
|
class Meta: |
|
|
class Meta: |
|
|
csrf = False |
|
|
csrf = False |
|
|
|
|
|
|
|
|
year_uid = SelectField(u'Année', coerce=int, choices=zip(range(2006,CurrentYear+1),range(2006,CurrentYear+1))) |
|
|
|
|
|
|
|
|
year_uid = SelectField(u'Année', coerce=int, |
|
|
|
|
|
choices=zip(range(2006, CurrentYear + 1), range(2006, CurrentYear + 1))) |
|
|
user_uid = StringField(u'user') |
|
|
user_uid = StringField(u'user') |
|
|
role = StringField(u'Role') |
|
|
role = StringField(u'Role') |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TiersRole(MyBaseForm): |
|
|
class TiersRole(MyBaseForm): |
|
|
class Meta: |
|
|
class Meta: |
|
|
csrf = False |
|
|
csrf = False |
|
|
|
|
|
|
|
|
year_uid = SelectField(u'Année', coerce=int, choices=zip(range(2006,CurrentYear+1),range(2006,CurrentYear+1))) |
|
|
|
|
|
|
|
|
year_uid = SelectField(u'Année', coerce=int, |
|
|
|
|
|
choices=zip(range(2006, CurrentYear + 1), range(2006, CurrentYear + 1))) |
|
|
tiers_role = SelectField(u'Role', choices=TIERS_ROLE) |
|
|
tiers_role = SelectField(u'Role', choices=TIERS_ROLE) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TiersChoice(MyBaseForm): |
|
|
class TiersChoice(MyBaseForm): |
|
|
class Meta: |
|
|
class Meta: |
|
|
csrf = False |
|
|
csrf = False |
|
@@ -105,471 +132,502 @@ class TiersChoice(MyBaseForm): |
|
|
tiers_uid = StringField(u'Entité') |
|
|
tiers_uid = StringField(u'Entité') |
|
|
role = StringField(u'Role') |
|
|
role = StringField(u'Role') |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class AddIntervenant(MyBaseForm): |
|
|
class AddIntervenant(MyBaseForm): |
|
|
class Meta: |
|
|
class Meta: |
|
|
csrf = False |
|
|
csrf = False |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
event_uid = HiddenField() |
|
|
event_uid = HiddenField() |
|
|
intervenant = SelectField(u'Intervenant', coerce=int ) |
|
|
|
|
|
|
|
|
intervenant = SelectField(u'Intervenant', coerce=int) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class AddTiers(MyBaseForm): |
|
|
class AddTiers(MyBaseForm): |
|
|
class Meta: |
|
|
class Meta: |
|
|
csrf = False |
|
|
csrf = False |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
event_uid = HiddenField() |
|
|
event_uid = HiddenField() |
|
|
tiers = SelectField(u'Entité', coerce=int ) |
|
|
|
|
|
|
|
|
tiers = SelectField(u'Entité', coerce=int) |
|
|
|
|
|
|
|
|
class ConfCreateForm(MyBaseForm): |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class ConfCreateForm(MyBaseForm): |
|
|
event_type = HiddenField() |
|
|
event_type = HiddenField() |
|
|
for_year = HiddenField() |
|
|
for_year = HiddenField() |
|
|
start_time = HiddenField() |
|
|
start_time = HiddenField() |
|
|
end_time = HiddenField() |
|
|
end_time = HiddenField() |
|
|
|
|
|
|
|
|
start_sel = SelectField(u'Début', coerce=int, |
|
|
start_sel = SelectField(u'Début', coerce=int, |
|
|
description=u"C'est une heure indicative correspondant au mieux à vos préférences "+ |
|
|
|
|
|
u"personnelles. Vous pouvez prendre un créneau horaire déjà réservé si vous avez des contraintes " |
|
|
|
|
|
u"particulières. L'équipe des JM2L mettra à disposition plus de salle si nécessaire. En cas de conflit,"+ |
|
|
|
|
|
u"l'organisation se réserve le droit de changer la salle et l'heure avec votre accord." |
|
|
|
|
|
) |
|
|
|
|
|
duration = SelectField(u'Durée', coerce=int, |
|
|
|
|
|
description=u"Précisez ici la durée de votre intervention" |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
salle_uid = SelectField(u'Salle', coerce=int, |
|
|
|
|
|
description=u"Choisissez ici la salle en fonction " |
|
|
|
|
|
u"du nombres de personnes potentiellement intéressé par votre intervention "+ |
|
|
|
|
|
u"l'organisation se réserve le droit de changer la salle (avec votre accord)." |
|
|
|
|
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
description=u"C'est une heure indicative correspondant au mieux à vos préférences " + |
|
|
|
|
|
u"personnelles. Vous pouvez prendre un créneau horaire déjà réservé si vous avez des contraintes " |
|
|
|
|
|
u"particulières. L'équipe des JM2L mettra à disposition plus de salle si nécessaire. En cas de conflit," + |
|
|
|
|
|
u"l'organisation se réserve le droit de changer la salle et l'heure avec votre accord." |
|
|
|
|
|
) |
|
|
|
|
|
duration = SelectField(u'Durée', coerce=int, |
|
|
|
|
|
description=u"Précisez ici la durée de votre intervention" |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
salle_uid = SelectField(u'Salle', coerce=int, |
|
|
|
|
|
description=u"Choisissez ici la salle en fonction " |
|
|
|
|
|
u"du nombres de personnes potentiellement intéressé par votre intervention " + |
|
|
|
|
|
u"l'organisation se réserve le droit de changer la salle (avec votre accord)." |
|
|
|
|
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
name = StringField(u'Le nom de votre ', |
|
|
name = StringField(u'Le nom de votre ', |
|
|
[validators.DataRequired(u'Vous devez spécifier un nom pour votre intérvention'), |
|
|
|
|
|
validators.Length(min=1, max=80, message='entre 1 et 80 car')], |
|
|
|
|
|
filters=[strip_filter]) |
|
|
|
|
|
|
|
|
|
|
|
description = TextAreaField(u'Décrivez ici quelques détails à propos de votre intervention ', |
|
|
|
|
|
[validators.Optional(), validators.Length(max=1000000)], |
|
|
|
|
|
filters=[strip_filter] |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
[validators.DataRequired(u'Vous devez spécifier un nom pour votre intérvention'), |
|
|
|
|
|
validators.Length(min=1, max=80, message='entre 1 et 80 car')], |
|
|
|
|
|
filters=[strip_filter]) |
|
|
|
|
|
|
|
|
|
|
|
description = TextAreaField(u'Décrivez ici quelques détails à propos de votre intervention ', |
|
|
|
|
|
[validators.Optional(), validators.Length(max=1000000)], |
|
|
|
|
|
filters=[strip_filter] |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class ConfUpdateForm(ConfCreateForm): |
|
|
class ConfUpdateForm(ConfCreateForm): |
|
|
uid = HiddenField() |
|
|
uid = HiddenField() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class SalleForm(MyBaseForm): |
|
|
class SalleForm(MyBaseForm): |
|
|
year_uid = SelectField(u'Année', coerce=int) |
|
|
|
|
|
phy_salle_id = SelectField('Salle Physique', coerce=int) |
|
|
|
|
|
place_type = SelectField('Type', choices=[('Conference',u'Conférence'), |
|
|
|
|
|
('Stand','Stand'), ('Atelier','Atelier'), ('Table ronde','Table ronde'), |
|
|
|
|
|
('MAO','MAO'), ('Repas','Repas / Snack'), ('Autres','Autres') ]) |
|
|
|
|
|
name = StringField('Nom de la salle', [validators.Length(min=1, max=40)], |
|
|
|
|
|
filters=[strip_filter]) |
|
|
|
|
|
description = TextAreaField('Description', |
|
|
|
|
|
filters=[strip_filter]) |
|
|
|
|
|
|
|
|
year_uid = SelectField(u'Année', coerce=int) |
|
|
|
|
|
phy_salle_id = SelectField('Salle Physique', coerce=int) |
|
|
|
|
|
place_type = SelectField('Type', choices=[('Conference', u'Conférence'), |
|
|
|
|
|
('Stand', 'Stand'), ('Atelier', 'Atelier'), |
|
|
|
|
|
('Table ronde', 'Table ronde'), |
|
|
|
|
|
('MAO', 'MAO'), ('Repas', 'Repas / Snack'), ('Autres', 'Autres')]) |
|
|
|
|
|
name = StringField('Nom de la salle', [validators.Length(min=1, max=40)], |
|
|
|
|
|
filters=[strip_filter]) |
|
|
|
|
|
description = TextAreaField('Description', |
|
|
|
|
|
filters=[strip_filter]) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class EditSalleForm(SalleForm): |
|
|
class EditSalleForm(SalleForm): |
|
|
salle_id = HiddenField() |
|
|
|
|
|
|
|
|
salle_id = HiddenField() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class SallePhyForm(MyBaseForm): |
|
|
class SallePhyForm(MyBaseForm): |
|
|
name = StringField('Nom de la salle', [validators.Length(min=1, max=40)], |
|
|
|
|
|
filters=[strip_filter]) |
|
|
|
|
|
nb_places = StringField('Nombre de places', [validators.Length(max=4)]) |
|
|
|
|
|
description = TextAreaField('Description', |
|
|
|
|
|
filters=[strip_filter]) |
|
|
|
|
|
|
|
|
name = StringField('Nom de la salle', [validators.Length(min=1, max=40)], |
|
|
|
|
|
filters=[strip_filter]) |
|
|
|
|
|
nb_places = StringField('Nombre de places', [validators.Length(max=4)]) |
|
|
|
|
|
description = TextAreaField('Description', |
|
|
|
|
|
filters=[strip_filter]) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class EditSallePhyForm(SallePhyForm): |
|
|
class EditSallePhyForm(SallePhyForm): |
|
|
uid = HiddenField() |
|
|
|
|
|
|
|
|
uid = HiddenField() |
|
|
|
|
|
|
|
|
class PlaceCreateForm(MyBaseForm): |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class PlaceCreateForm(MyBaseForm): |
|
|
place_type = SelectField('Type', choices=PLACE_TYPE) |
|
|
place_type = SelectField('Type', choices=PLACE_TYPE) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
display_name = StringField(u'Nom affiché', [validators.Length(min=1, max=20)], |
|
|
display_name = StringField(u'Nom affiché', [validators.Length(min=1, max=20)], |
|
|
filters=[strip_filter]) |
|
|
|
|
|
|
|
|
filters=[strip_filter]) |
|
|
name = StringField('Nom Complet', [validators.Length(min=1, max=80)], |
|
|
name = StringField('Nom Complet', [validators.Length(min=1, max=80)], |
|
|
filters=[strip_filter]) |
|
|
|
|
|
|
|
|
filters=[strip_filter]) |
|
|
gps_coord = StringField(u'Coordonnées GPS', [validators.Length(max=30), |
|
|
gps_coord = StringField(u'Coordonnées GPS', [validators.Length(max=30), |
|
|
validators.Regexp( "^[0-9]+\.?[0-9]+,[0-9]+\.?[0-9]+$", |
|
|
|
|
|
message=u"Le GPS devrait être sous la forme 43.6158372,7.0723401")], |
|
|
|
|
|
filters=[strip_filter]) |
|
|
|
|
|
|
|
|
validators.Regexp("^[0-9]+\.?[0-9]+,[0-9]+\.?[0-9]+$", |
|
|
|
|
|
message=u"Le GPS devrait être sous la forme 43.6158372,7.0723401")], |
|
|
|
|
|
filters=[strip_filter]) |
|
|
adresse = TextAreaField('Adresse', [validators.Length(max=100)], |
|
|
adresse = TextAreaField('Adresse', [validators.Length(max=100)], |
|
|
filters=[strip_filter]) |
|
|
|
|
|
|
|
|
filters=[strip_filter]) |
|
|
codePostal = StringField('Code Postal', [validators.Length(max=5)], |
|
|
codePostal = StringField('Code Postal', [validators.Length(max=5)], |
|
|
filters=[strip_filter]) |
|
|
|
|
|
|
|
|
filters=[strip_filter]) |
|
|
ville = StringField('Ville', [validators.Length(max=40)], |
|
|
ville = StringField('Ville', [validators.Length(max=40)], |
|
|
filters=[strip_filter]) |
|
|
filters=[strip_filter]) |
|
|
website = StringField('Site Web', [validators.Length(max=100)], |
|
|
website = StringField('Site Web', [validators.Length(max=100)], |
|
|
filters=[strip_filter]) |
|
|
|
|
|
|
|
|
filters=[strip_filter]) |
|
|
description = TextAreaField('Description', |
|
|
description = TextAreaField('Description', |
|
|
filters=[strip_filter]) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
filters=[strip_filter]) |
|
|
|
|
|
|
|
|
created_by = HiddenField() |
|
|
created_by = HiddenField() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class PlaceUpdateForm(PlaceCreateForm): |
|
|
class PlaceUpdateForm(PlaceCreateForm): |
|
|
place_id = HiddenField() |
|
|
place_id = HiddenField() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def captcha_check(form, field): |
|
|
def captcha_check(form, field): |
|
|
if form.meta.csrf_context.get('Captcha')!=field.data: |
|
|
|
|
|
|
|
|
if form.meta.csrf_context.get('Captcha') != field.data: |
|
|
raise ValidationError(u"la vérification captcha est invalide.") |
|
|
raise ValidationError(u"la vérification captcha est invalide.") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class UserPasswordForm(MyBaseForm): |
|
|
class UserPasswordForm(MyBaseForm): |
|
|
uid = HiddenField() |
|
|
uid = HiddenField() |
|
|
password = PasswordField("Mot de passe",[ |
|
|
|
|
|
validators.Length(max=128, message=u"128 car. maximum"), |
|
|
|
|
|
validators.required(message=u"Ce champ est obligatoire"), |
|
|
|
|
|
validators.EqualTo('confirm', message=u'Les password ne sont pas équivalents') ], |
|
|
|
|
|
filters=[strip_filter] |
|
|
|
|
|
) |
|
|
|
|
|
confirm = PasswordField('Confirmez') |
|
|
|
|
|
|
|
|
password = PasswordField("Mot de passe", [ |
|
|
|
|
|
validators.Length(max=128, message=u"128 car. maximum"), |
|
|
|
|
|
validators.required(message=u"Ce champ est obligatoire"), |
|
|
|
|
|
validators.EqualTo('confirm', message=u'Les password ne sont pas équivalents')], |
|
|
|
|
|
filters=[strip_filter] |
|
|
|
|
|
) |
|
|
|
|
|
confirm = PasswordField('Confirmez') |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class UserRegisterForm(MyBaseForm): |
|
|
class UserRegisterForm(MyBaseForm): |
|
|
|
|
|
|
|
|
nom = StringField(u'Nom', [ |
|
|
nom = StringField(u'Nom', [ |
|
|
validators.Length(max=80, message=u"80 car. maximum"), |
|
|
|
|
|
validators.required(message=u"Ce champ est obligatoire") ], |
|
|
|
|
|
filters=[strip_filter] |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
validators.Length(max=80, message=u"80 car. maximum"), |
|
|
|
|
|
validators.required(message=u"Ce champ est obligatoire")], |
|
|
|
|
|
filters=[strip_filter] |
|
|
|
|
|
) |
|
|
prenom = StringField(u'Prénom', [ |
|
|
prenom = StringField(u'Prénom', [ |
|
|
validators.Length(max=80, message=u"80 car. maximum"), |
|
|
|
|
|
validators.required(message=u"Ce champ est obligatoire"), |
|
|
|
|
|
validators.Length(max=80)], filters=[strip_filter] |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
validators.Length(max=80, message=u"80 car. maximum"), |
|
|
|
|
|
validators.required(message=u"Ce champ est obligatoire"), |
|
|
|
|
|
validators.Length(max=80)], filters=[strip_filter] |
|
|
|
|
|
) |
|
|
mail = StringField(u'Adresse électronique', [ |
|
|
mail = StringField(u'Adresse électronique', [ |
|
|
validators.required(message=u"Ce champ est obligatoire"), |
|
|
|
|
|
validators.Email(message=u"Essayez aussi avec une adresse e-mail valide"), |
|
|
|
|
|
validators.Length(max=100)], |
|
|
|
|
|
filters=[strip_filter], |
|
|
|
|
|
description = u"Une adresse e-mail valide." + |
|
|
|
|
|
u"Cette adresse ne sera pas rendue publique, "+ |
|
|
|
|
|
u"et ne sera pas divulguée à des tiers." |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
validators.required(message=u"Ce champ est obligatoire"), |
|
|
|
|
|
validators.Email(message=u"Essayez aussi avec une adresse e-mail valide"), |
|
|
|
|
|
validators.Length(max=100)], |
|
|
|
|
|
filters=[strip_filter], |
|
|
|
|
|
description=u"Une adresse e-mail valide." + |
|
|
|
|
|
u"Cette adresse ne sera pas rendue publique, " + |
|
|
|
|
|
u"et ne sera pas divulguée à des tiers." |
|
|
|
|
|
) |
|
|
captcha = StringField(u'Captcha', [validators.Length(max=8), captcha_check], |
|
|
captcha = StringField(u'Captcha', [validators.Length(max=8), captcha_check], |
|
|
filters=[strip_filter] |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
filters=[strip_filter] |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class ProfilForm(MyBaseForm): |
|
|
class ProfilForm(MyBaseForm): |
|
|
id = HiddenField() |
|
|
id = HiddenField() |
|
|
user_id = HiddenField() |
|
|
user_id = HiddenField() |
|
|
nom = StringField(u'Nom', [validators.Length(max=80)], |
|
|
nom = StringField(u'Nom', [validators.Length(max=80)], |
|
|
filters=[strip_filter], |
|
|
|
|
|
description = u"Les espaces sont autorisés, la ponctuation n'est " + |
|
|
|
|
|
u"pas autorisée à l'exception des points, traits d'union, " + |
|
|
|
|
|
u"apostrophes et tirets bas." |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
filters=[strip_filter], |
|
|
|
|
|
description=u"Les espaces sont autorisés, la ponctuation n'est " + |
|
|
|
|
|
u"pas autorisée à l'exception des points, traits d'union, " + |
|
|
|
|
|
u"apostrophes et tirets bas." |
|
|
|
|
|
) |
|
|
prenom = StringField(u'Prénom', [validators.Length(max=80)], |
|
|
prenom = StringField(u'Prénom', [validators.Length(max=80)], |
|
|
filters=[strip_filter], |
|
|
|
|
|
description = u"Les espaces sont autorisés, la ponctuation n'est " + |
|
|
|
|
|
u"pas autorisée à l'exception des points, traits d'union, " + |
|
|
|
|
|
u"apostrophes et tirets bas." |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
filters=[strip_filter], |
|
|
|
|
|
description=u"Les espaces sont autorisés, la ponctuation n'est " + |
|
|
|
|
|
u"pas autorisée à l'exception des points, traits d'union, " + |
|
|
|
|
|
u"apostrophes et tirets bas." |
|
|
|
|
|
) |
|
|
pseudo = StringField(u'Pseudo', [validators.Length(max=80)], |
|
|
pseudo = StringField(u'Pseudo', [validators.Length(max=80)], |
|
|
filters=[strip_filter], |
|
|
|
|
|
description = "Votre pseudo d'usage sur la toile." |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
filters=[strip_filter], |
|
|
|
|
|
description="Votre pseudo d'usage sur la toile." |
|
|
|
|
|
) |
|
|
mail = StringField(u'Adresse électronique', [validators.optional(), validators.Email(), validators.Length(max=100)], |
|
|
mail = StringField(u'Adresse électronique', [validators.optional(), validators.Email(), validators.Length(max=100)], |
|
|
filters=[strip_filter], |
|
|
|
|
|
description = u"Une adresse e-mail valide. Tous les messages de ce système" + |
|
|
|
|
|
u"seront envoyés à cette adresse. Cette adresse ne sera pas rendue publique,"+ |
|
|
|
|
|
u"et ne sera utilisée que si vous désirez obtenir un nouveau mot de passe ou" + |
|
|
|
|
|
u"recevoir personnellement certaines nouvelles ou avertissements." |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
filters=[strip_filter], |
|
|
|
|
|
description=u"Une adresse e-mail valide. Tous les messages de ce système" + |
|
|
|
|
|
u"seront envoyés à cette adresse. Cette adresse ne sera pas rendue publique," + |
|
|
|
|
|
u"et ne sera utilisée que si vous désirez obtenir un nouveau mot de passe ou" + |
|
|
|
|
|
u"recevoir personnellement certaines nouvelles ou avertissements." |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
phone = StringField(u'Mobile', [validators.optional(), validators.Length(max=10), |
|
|
phone = StringField(u'Mobile', [validators.optional(), validators.Length(max=10), |
|
|
validators.Regexp("\d+", message=u"Le numéro de téléphone mobile ne doit contenir que des chiffres")], |
|
|
|
|
|
filters=[strip_filter], |
|
|
|
|
|
description = u"Un numéro de mobile valide. Afin de pouvoir rester en" + |
|
|
|
|
|
u"contact avec les personne de l'organisation, et pour vos échanges. " + |
|
|
|
|
|
u"Ce numéro ne sera pas publié, et ne sera utilisé que si " + |
|
|
|
|
|
u"vous désirez recevoir personnellement certaines nouvelles ou alertes." |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
website = StringField(u'Site web', [validators.optional(), validators.URL(), validators.Length(max=100)], |
|
|
|
|
|
filters=[strip_filter], |
|
|
|
|
|
description = "Renseignez ici votre site Web." |
|
|
|
|
|
|
|
|
validators.Regexp("\d+", |
|
|
|
|
|
message=u"Le numéro de téléphone mobile ne doit contenir que des chiffres")], |
|
|
|
|
|
filters=[strip_filter], |
|
|
|
|
|
description=u"Un numéro de mobile valide. Afin de pouvoir rester en" + |
|
|
|
|
|
u"contact avec les personne de l'organisation, et pour vos échanges. " + |
|
|
|
|
|
u"Ce numéro ne sera pas publié, et ne sera utilisé que si " + |
|
|
|
|
|
u"vous désirez recevoir personnellement certaines nouvelles ou alertes." |
|
|
) |
|
|
) |
|
|
|
|
|
|
|
|
gpg_key = TextAreaField(u'Ma clé GPG', |
|
|
|
|
|
[validators.optional(), validators.Length(max=9000)], |
|
|
|
|
|
filters=[strip_filter], |
|
|
|
|
|
description = u"Vous pouvez insérer votre clé GPG publique pour " + |
|
|
|
|
|
u"échanger des données sécurisées." |
|
|
|
|
|
) |
|
|
|
|
|
soc_link = TextAreaField('Mes autres identifiants', |
|
|
|
|
|
[validators.optional(), validators.Length(max=1000000)], |
|
|
|
|
|
filters=[strip_filter], |
|
|
|
|
|
description = u"Vous pouvez insérer ici d'autres identifiants " + |
|
|
|
|
|
u"permettant aux autres de vous retrouver sur la toile (IRC, jabber, réseaux sociaux etc)." |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
website = StringField(u'Site web', [validators.optional(), validators.URL(), validators.Length(max=100)], |
|
|
|
|
|
filters=[strip_filter], |
|
|
|
|
|
description="Renseignez ici votre site Web." |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
gpg_key = TextAreaField(u'Ma clé GPG', |
|
|
|
|
|
[validators.optional(), validators.Length(max=9000)], |
|
|
|
|
|
filters=[strip_filter], |
|
|
|
|
|
description=u"Vous pouvez insérer votre clé GPG publique pour " + |
|
|
|
|
|
u"échanger des données sécurisées." |
|
|
|
|
|
) |
|
|
|
|
|
soc_link = TextAreaField('Mes autres identifiants', |
|
|
|
|
|
[validators.optional(), validators.Length(max=1000000)], |
|
|
|
|
|
filters=[strip_filter], |
|
|
|
|
|
description=u"Vous pouvez insérer ici d'autres identifiants " + |
|
|
|
|
|
u"permettant aux autres de vous retrouver sur la toile (IRC, jabber, réseaux sociaux etc)." |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
bio = TextAreaField('Biographie', [validators.optional(), validators.Length(max=1000000)], |
|
|
bio = TextAreaField('Biographie', [validators.optional(), validators.Length(max=1000000)], |
|
|
filters=[strip_filter] |
|
|
filters=[strip_filter] |
|
|
) |
|
|
) |
|
|
|
|
|
|
|
|
tiersship = FieldList(FormField(TiersChoice)) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
tiersship = FieldList(FormField(TiersChoice)) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class MiamForm(MyBaseForm): |
|
|
class MiamForm(MyBaseForm): |
|
|
RepasVendredi = SelectField(u'Je viens au dîner convivial vendredi soir', |
|
|
RepasVendredi = SelectField(u'Je viens au dîner convivial vendredi soir', |
|
|
choices=YESNO, |
|
|
|
|
|
description = u"L'organisation réserve le " + |
|
|
|
|
|
u"restaurant pour ce dîner convivial. De petites " + |
|
|
|
|
|
u"animations vous seront proposées. " + |
|
|
|
|
|
u"Il nous faut savoir si on vous réserve une place !" |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
RepasSamediMidi = SelectField(u'Je déjeune sur place samedi midi', choices=YESNO ) |
|
|
|
|
|
|
|
|
|
|
|
RepasSamediSoir = SelectField(u'Je viens au repas de clôture samedi soir', choices=YESNO, |
|
|
|
|
|
description = u"L'organisation réserve le " + |
|
|
|
|
|
u"restaurant pour le dîner de clôture. De petites " + |
|
|
|
|
|
u"animations vous seront proposées. " + |
|
|
|
|
|
u"Il nous faut savoir si on vous réserve une place !" |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
Allergies = TextAreaField(u'Allergies', [validators.Length(max=100)], |
|
|
|
|
|
filters=[strip_filter], |
|
|
|
|
|
description = u"Entrez ici vos allergies éventuelles, " + |
|
|
|
|
|
u"Ce que votre organisme ne supporte absolument pas." + |
|
|
|
|
|
u"L'organisation fera alors en sorte de les éviter ou " + |
|
|
|
|
|
u"de les identifier explicitement." |
|
|
|
|
|
) |
|
|
|
|
|
Contraintes = TextAreaField(u'Contraintes', [validators.Length(max=100)], |
|
|
|
|
|
filters=[strip_filter], |
|
|
|
|
|
description = u"Entrez ici ce que vous n'aimez pas, " + |
|
|
|
|
|
u"Cela ne consititue pas pour vous un allérgène, " + |
|
|
|
|
|
u"mais vous n'aimez simplement pas. (Gluten / Laitage etc ...)" |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
choices=YESNO, |
|
|
|
|
|
description=u"L'organisation réserve le " + |
|
|
|
|
|
u"restaurant pour ce dîner convivial. De petites " + |
|
|
|
|
|
u"animations vous seront proposées. " + |
|
|
|
|
|
u"Il nous faut savoir si on vous réserve une place !" |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
RepasSamediMidi = SelectField(u'Je déjeune sur place samedi midi', choices=YESNO) |
|
|
|
|
|
|
|
|
|
|
|
RepasSamediSoir = SelectField(u'Je viens au repas de clôture samedi soir', choices=YESNO, |
|
|
|
|
|
description=u"L'organisation réserve le " + |
|
|
|
|
|
u"restaurant pour le dîner de clôture. De petites " + |
|
|
|
|
|
u"animations vous seront proposées. " + |
|
|
|
|
|
u"Il nous faut savoir si on vous réserve une place !" |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
Allergies = TextAreaField(u'Allergies', [validators.Length(max=100)], |
|
|
|
|
|
filters=[strip_filter], |
|
|
|
|
|
description=u"Entrez ici vos allergies éventuelles, " + |
|
|
|
|
|
u"Ce que votre organisme ne supporte absolument pas." + |
|
|
|
|
|
u"L'organisation fera alors en sorte de les éviter ou " + |
|
|
|
|
|
u"de les identifier explicitement." |
|
|
|
|
|
) |
|
|
|
|
|
Contraintes = TextAreaField(u'Contraintes', [validators.Length(max=100)], |
|
|
|
|
|
filters=[strip_filter], |
|
|
|
|
|
description=u"Entrez ici ce que vous n'aimez pas, " + |
|
|
|
|
|
u"Cela ne consititue pas pour vous un allérgène, " + |
|
|
|
|
|
u"mais vous n'aimez simplement pas. (Gluten / Laitage etc ...)" |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class DateStartConfidenceForm(MyBaseForm): |
|
|
class DateStartConfidenceForm(MyBaseForm): |
|
|
ConfidenceLevel = [ |
|
|
ConfidenceLevel = [ |
|
|
("0",u"exactement à"), |
|
|
|
|
|
("1",u"approximativement à"), |
|
|
|
|
|
("2",u"à peu près (5 à 15 min) vers"), |
|
|
|
|
|
("3",u"à une vache près (1h) vers") |
|
|
|
|
|
|
|
|
("0", u"exactement à"), |
|
|
|
|
|
("1", u"approximativement à"), |
|
|
|
|
|
("2", u"à peu près (5 à 15 min) vers"), |
|
|
|
|
|
("3", u"à une vache près (1h) vers") |
|
|
] |
|
|
] |
|
|
DayChoice = [("4","Jeudi"), ("5","Vendredi"), ("6","Samedi"), ("0","Dimanche"), ("1","Lundi")] |
|
|
|
|
|
Day = SelectField(u'Jour', choices=DayChoice ) |
|
|
|
|
|
Confidence = SelectField(u'Confiance', choices=ConfidenceLevel) |
|
|
|
|
|
Hour = StringField(u'Heure', [validators.Length(max=5, |
|
|
|
|
|
message=u"doit faire au maximum 5 caractères"), |
|
|
|
|
|
validators.Regexp("\d+:\d+", |
|
|
|
|
|
message=u"doit être sous la forme HH:MM")], |
|
|
|
|
|
filters=[strip_filter]) |
|
|
|
|
|
start_time = HiddenField() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DayChoice = [("4", "Jeudi"), ("5", "Vendredi"), ("6", "Samedi"), ("0", "Dimanche"), ("1", "Lundi")] |
|
|
|
|
|
Day = SelectField(u'Jour', choices=DayChoice) |
|
|
|
|
|
Confidence = SelectField(u'Confiance', choices=ConfidenceLevel) |
|
|
|
|
|
Hour = StringField(u'Heure', [validators.Length(max=5, |
|
|
|
|
|
message=u"doit faire au maximum 5 caractères"), |
|
|
|
|
|
validators.Regexp("\d+:\d+", |
|
|
|
|
|
message=u"doit être sous la forme HH:MM")], |
|
|
|
|
|
filters=[strip_filter]) |
|
|
|
|
|
start_time = HiddenField() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class ItineraireForm(Form): |
|
|
class ItineraireForm(Form): |
|
|
start_place = SelectField(u'En partant de', coerce=int) |
|
|
|
|
|
|
|
|
start_place = SelectField(u'En partant de', coerce=int) |
|
|
arrival_place = SelectField(u'et à destination de', coerce=int) |
|
|
arrival_place = SelectField(u'et à destination de', coerce=int) |
|
|
itin_id = HiddenField() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
itin_id = HiddenField() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class AddItineraireForm(Form): |
|
|
class AddItineraireForm(Form): |
|
|
|
|
|
itin = FormField(ItineraireForm) |
|
|
|
|
|
distance = DecimalField(u'Distance', [validators.Length(min=1, max=4)], |
|
|
|
|
|
filters=[strip_filter]) |
|
|
|
|
|
duration = DateTimeField(u'Durée', [validators.Length(min=4, max=5)], |
|
|
|
|
|
filters=[strip_filter]) |
|
|
|
|
|
price = DecimalField(u'Prix approx.', [validators.Length(min=1, max=5)], |
|
|
|
|
|
filters=[strip_filter]) |
|
|
|
|
|
tr_pied = BooleanField(u'à pied') |
|
|
|
|
|
tr_velo = BooleanField(u'à vélo') |
|
|
|
|
|
tr_moto = BooleanField(u'à moto') |
|
|
|
|
|
tr_voiture = BooleanField(u'en voiture') |
|
|
|
|
|
tr_taxi = BooleanField(u'en taxi') |
|
|
|
|
|
tr_bus = BooleanField(u'en bus') |
|
|
|
|
|
tr_avion = BooleanField(u'en avion') |
|
|
|
|
|
description = TextAreaField(u'Description de l\'itinéraire') |
|
|
|
|
|
|
|
|
itin = FormField(ItineraireForm) |
|
|
|
|
|
distance = DecimalField(u'Distance', [validators.Length(min=1, max=4)], |
|
|
|
|
|
filters=[strip_filter]) |
|
|
|
|
|
duration = DateTimeField(u'Durée', [validators.Length(min=4, max=5)], |
|
|
|
|
|
filters=[strip_filter]) |
|
|
|
|
|
price = DecimalField(u'Prix approx.', [validators.Length(min=1, max=5)], |
|
|
|
|
|
filters=[strip_filter]) |
|
|
|
|
|
tr_pied = BooleanField(u'à pied') |
|
|
|
|
|
tr_velo = BooleanField(u'à vélo') |
|
|
|
|
|
tr_moto = BooleanField(u'à moto') |
|
|
|
|
|
tr_voiture = BooleanField(u'en voiture') |
|
|
|
|
|
tr_taxi = BooleanField(u'en taxi') |
|
|
|
|
|
tr_bus = BooleanField(u'en bus') |
|
|
|
|
|
tr_avion = BooleanField(u'en avion') |
|
|
|
|
|
description = TextAreaField(u'Description de l\'itinéraire') |
|
|
|
|
|
|
|
|
|
|
|
class AddMember(MyBaseForm): |
|
|
class AddMember(MyBaseForm): |
|
|
tiers_uid = HiddenField() |
|
|
tiers_uid = HiddenField() |
|
|
nom = StringField(u'Nom', [validators.Length(max=80)], |
|
|
nom = StringField(u'Nom', [validators.Length(max=80)], |
|
|
filters=[strip_filter], |
|
|
|
|
|
description = u"Les espaces sont autorisés, la ponctuation n'est " + |
|
|
|
|
|
u"pas autorisée à l'exception des points, traits d'union, " + |
|
|
|
|
|
u"apostrophes et tirets bas." |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
filters=[strip_filter], |
|
|
|
|
|
description=u"Les espaces sont autorisés, la ponctuation n'est " + |
|
|
|
|
|
u"pas autorisée à l'exception des points, traits d'union, " + |
|
|
|
|
|
u"apostrophes et tirets bas." |
|
|
|
|
|
) |
|
|
prenom = StringField(u'Prénom', [validators.Length(max=80)], |
|
|
prenom = StringField(u'Prénom', [validators.Length(max=80)], |
|
|
filters=[strip_filter], |
|
|
|
|
|
description = u"Les espaces sont autorisés, la ponctuation n'est " + |
|
|
|
|
|
u"pas autorisée à l'exception des points, traits d'union, " + |
|
|
|
|
|
u"apostrophes et tirets bas." |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
filters=[strip_filter], |
|
|
|
|
|
description=u"Les espaces sont autorisés, la ponctuation n'est " + |
|
|
|
|
|
u"pas autorisée à l'exception des points, traits d'union, " + |
|
|
|
|
|
u"apostrophes et tirets bas." |
|
|
|
|
|
) |
|
|
email = StringField(u'Email', [validators.required(), |
|
|
email = StringField(u'Email', [validators.required(), |
|
|
validators.length(max=10), |
|
|
|
|
|
validators.Email(message='Ceci ne ressemble pas à une adresse valide')], |
|
|
|
|
|
description=u"Afin d'éviter la duplication d'information et les doublons inutile, "+ |
|
|
|
|
|
u"pensez d'abord à lui demander de confirmer le mail qu'il a utilisé lors de "+ |
|
|
|
|
|
u"son inscription sur le site.") |
|
|
|
|
|
|
|
|
validators.length(max=10), |
|
|
|
|
|
validators.Email(message='Ceci ne ressemble pas à une adresse valide')], |
|
|
|
|
|
description=u"Afin d'éviter la duplication d'information et les doublons inutile, " + |
|
|
|
|
|
u"pensez d'abord à lui demander de confirmer le mail qu'il a utilisé lors de " + |
|
|
|
|
|
u"son inscription sur le site.") |
|
|
add = SubmitField('Ajouter des membres') |
|
|
add = SubmitField('Ajouter des membres') |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TiersForm(MyBaseForm): |
|
|
class TiersForm(MyBaseForm): |
|
|
name = StringField(u'Nom', [validators.Length(max=100)], |
|
|
name = StringField(u'Nom', [validators.Length(max=100)], |
|
|
filters=[strip_filter], |
|
|
|
|
|
description = u"Les espaces sont autorisés, la ponctuation n'est " + |
|
|
|
|
|
u"pas autorisée à l'exception des points, traits d'union, " + |
|
|
|
|
|
u"apostrophes et tirets bas." |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
filters=[strip_filter], |
|
|
|
|
|
description=u"Les espaces sont autorisés, la ponctuation n'est " + |
|
|
|
|
|
u"pas autorisée à l'exception des points, traits d'union, " + |
|
|
|
|
|
u"apostrophes et tirets bas." |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
tiers_type = MySelectField('Nature', coerce=int) |
|
|
tiers_type = MySelectField('Nature', coerce=int) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
website = StringField(u'Site web', [validators.optional(), validators.URL(), validators.Length(max=100)], |
|
|
website = StringField(u'Site web', [validators.optional(), validators.URL(), validators.Length(max=100)], |
|
|
filters=[strip_filter], |
|
|
|
|
|
description = "Renseignez ici le site Web." |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
filters=[strip_filter], |
|
|
|
|
|
description="Renseignez ici le site Web." |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
description = TextAreaField('Descriptif', |
|
|
|
|
|
[validators.optional(), validators.Length(max=1000000)], |
|
|
|
|
|
filters=[strip_filter], |
|
|
|
|
|
description=u"Vous pouvez insérer les détails" |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
description = TextAreaField('Descriptif', |
|
|
|
|
|
[validators.optional(), validators.Length(max=1000000)], |
|
|
|
|
|
filters=[strip_filter], |
|
|
|
|
|
description = u"Vous pouvez insérer les détails" |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
membership = FieldList(FormField(TiersMember)) |
|
|
membership = FieldList(FormField(TiersMember)) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
roles = FieldList(FormField(TiersRole)) |
|
|
roles = FieldList(FormField(TiersRole)) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class UpdateTiersForm(TiersForm): |
|
|
class UpdateTiersForm(TiersForm): |
|
|
uid = HiddenField() |
|
|
|
|
|
|
|
|
uid = HiddenField() |
|
|
tiers_id = HiddenField() |
|
|
tiers_id = HiddenField() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class ExchCateg(MyBaseForm): |
|
|
class ExchCateg(MyBaseForm): |
|
|
exch_type = HiddenField() |
|
|
exch_type = HiddenField() |
|
|
exch_subtype = StringField(u'Catégorie', [validators.Length(max=80)], |
|
|
exch_subtype = StringField(u'Catégorie', [validators.Length(max=80)], |
|
|
filters=[strip_filter], |
|
|
|
|
|
description = "Le nom de la categorie" |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
filters=[strip_filter], |
|
|
|
|
|
description="Le nom de la categorie" |
|
|
|
|
|
) |
|
|
description = TextAreaField('Description', |
|
|
description = TextAreaField('Description', |
|
|
filters=[strip_filter]) |
|
|
|
|
|
|
|
|
filters=[strip_filter]) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class UpdateExchangeForm(MyBaseForm): |
|
|
class UpdateExchangeForm(MyBaseForm): |
|
|
exch_id = HiddenField() |
|
|
exch_id = HiddenField() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class AskCForm(ItineraireForm): |
|
|
class AskCForm(ItineraireForm): |
|
|
ConfidenceLevel = [ |
|
|
ConfidenceLevel = [ |
|
|
("0",u"exactement à"), |
|
|
|
|
|
("1",u"approximativement à"), |
|
|
|
|
|
("2",u"à peu près (5 à 15 min) vers"), |
|
|
|
|
|
("3",u"à une vache près (1h) vers") |
|
|
|
|
|
|
|
|
("0", u"exactement à"), |
|
|
|
|
|
("1", u"approximativement à"), |
|
|
|
|
|
("2", u"à peu près (5 à 15 min) vers"), |
|
|
|
|
|
("3", u"à une vache près (1h) vers") |
|
|
] |
|
|
] |
|
|
DayChoice = [("4","Jeudi"), ("5","Vendredi"), ("6","Samedi"), ("0","Dimanche"), ("1","Lundi")] |
|
|
|
|
|
Day_start = SelectField(u'Jour', choices=DayChoice ) |
|
|
|
|
|
Confidence = SelectField(u'Confiance', choices=ConfidenceLevel) |
|
|
|
|
|
Hour_start = StringField(u'Heure', [validators.Length(max=5, |
|
|
|
|
|
message=u"doit faire au maximum 5 caractères"), |
|
|
|
|
|
validators.Regexp("\d+:\d+", |
|
|
|
|
|
message=u"doit être sous la forme HH:MM")], |
|
|
|
|
|
filters=[strip_filter]) |
|
|
|
|
|
start_time = HiddenField() |
|
|
|
|
|
start_place = SelectField(u'En partant de', coerce=int) |
|
|
|
|
|
|
|
|
DayChoice = [("4", "Jeudi"), ("5", "Vendredi"), ("6", "Samedi"), ("0", "Dimanche"), ("1", "Lundi")] |
|
|
|
|
|
Day_start = SelectField(u'Jour', choices=DayChoice) |
|
|
|
|
|
Confidence = SelectField(u'Confiance', choices=ConfidenceLevel) |
|
|
|
|
|
Hour_start = StringField(u'Heure', [validators.Length(max=5, |
|
|
|
|
|
message=u"doit faire au maximum 5 caractères"), |
|
|
|
|
|
validators.Regexp("\d+:\d+", |
|
|
|
|
|
message=u"doit être sous la forme HH:MM")], |
|
|
|
|
|
filters=[strip_filter]) |
|
|
|
|
|
start_time = HiddenField() |
|
|
|
|
|
start_place = SelectField(u'En partant de', coerce=int) |
|
|
arrival_place = SelectField(u'et à destination de', coerce=int) |
|
|
arrival_place = SelectField(u'et à destination de', coerce=int) |
|
|
itin_id = HiddenField() |
|
|
|
|
|
|
|
|
itin_id = HiddenField() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class AskHForm(MyBaseForm): |
|
|
class AskHForm(MyBaseForm): |
|
|
DayChoice = [("4",u"Jeudi à Vendredi"), ("5",u"Vendredi à Samedi"), ("6",u"Samedi à Dimanche"), ("0",u"Dimanche à Lundi")] |
|
|
|
|
|
Day_start = SelectField(u'Pour la nuit de', choices=DayChoice ) |
|
|
|
|
|
start_time = HiddenField() |
|
|
|
|
|
description = TextAreaField(u'Description de vos contraintes éventuelles', filters=[strip_filter], |
|
|
|
|
|
description = u"Décrivez ici vos souhaits et éventuellement " |
|
|
|
|
|
+ u"les contraintes à prendre en compte. N'hésitez pas à donner des détails." |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DayChoice = [("4", u"Jeudi à Vendredi"), ("5", u"Vendredi à Samedi"), ("6", u"Samedi à Dimanche"), |
|
|
|
|
|
("0", u"Dimanche à Lundi")] |
|
|
|
|
|
Day_start = SelectField(u'Pour la nuit de', choices=DayChoice) |
|
|
|
|
|
start_time = HiddenField() |
|
|
|
|
|
description = TextAreaField(u'Description de vos contraintes éventuelles', filters=[strip_filter], |
|
|
|
|
|
description=u"Décrivez ici vos souhaits et éventuellement " |
|
|
|
|
|
+ u"les contraintes à prendre en compte. N'hésitez pas à donner des détails." |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class AskMForm(MyBaseForm): |
|
|
class AskMForm(MyBaseForm): |
|
|
DayChoice = [("4","Jeudi"), ("5","Vendredi"), ("6","Samedi"), ("0","Dimanche"), ("1","Lundi")] |
|
|
|
|
|
Day_start = SelectField(u"à partir de", choices=DayChoice ) |
|
|
|
|
|
Hour_start = StringField(u'vers', [validators.Length(max=5, |
|
|
|
|
|
message=u"doit faire au maximum 5 caractères"), |
|
|
|
|
|
validators.Regexp("\d+:\d+", |
|
|
|
|
|
message=u"doit être sous la forme HH:MM")], |
|
|
|
|
|
filters=[strip_filter]) |
|
|
|
|
|
start_time = HiddenField() |
|
|
|
|
|
Day_end = SelectField(u"Jusqu'à", choices=DayChoice ) |
|
|
|
|
|
Hour_end = StringField(u'vers', [validators.Length(max=5, |
|
|
|
|
|
message=u"doit faire au maximum 5 caractères"), |
|
|
|
|
|
validators.Regexp("\d+:\d+", |
|
|
|
|
|
message=u"doit être sous la forme HH:MM")], |
|
|
|
|
|
filters=[strip_filter]) |
|
|
|
|
|
end_time = HiddenField() |
|
|
|
|
|
exch_categ = SelectField(u'Catégorie de matériel', coerce=int, |
|
|
|
|
|
description = u"Choisissez une catégorie de bien" |
|
|
|
|
|
) |
|
|
|
|
|
description = TextAreaField(u'Description du bien', filters=[strip_filter], |
|
|
|
|
|
description = u"Décrivez ici les biens que vous souhaitez" |
|
|
|
|
|
+ u"échanger. N'hésitez pas à donner des détails." |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DayChoice = [("4", "Jeudi"), ("5", "Vendredi"), ("6", "Samedi"), ("0", "Dimanche"), ("1", "Lundi")] |
|
|
|
|
|
Day_start = SelectField(u"à partir de", choices=DayChoice) |
|
|
|
|
|
Hour_start = StringField(u'vers', [validators.Length(max=5, |
|
|
|
|
|
message=u"doit faire au maximum 5 caractères"), |
|
|
|
|
|
validators.Regexp("\d+:\d+", |
|
|
|
|
|
message=u"doit être sous la forme HH:MM")], |
|
|
|
|
|
filters=[strip_filter]) |
|
|
|
|
|
start_time = HiddenField() |
|
|
|
|
|
Day_end = SelectField(u"Jusqu'à", choices=DayChoice) |
|
|
|
|
|
Hour_end = StringField(u'vers', [validators.Length(max=5, |
|
|
|
|
|
message=u"doit faire au maximum 5 caractères"), |
|
|
|
|
|
validators.Regexp("\d+:\d+", |
|
|
|
|
|
message=u"doit être sous la forme HH:MM")], |
|
|
|
|
|
filters=[strip_filter]) |
|
|
|
|
|
end_time = HiddenField() |
|
|
|
|
|
exch_categ = SelectField(u'Catégorie de matériel', coerce=int, |
|
|
|
|
|
description=u"Choisissez une catégorie de bien" |
|
|
|
|
|
) |
|
|
|
|
|
description = TextAreaField(u'Description du bien', filters=[strip_filter], |
|
|
|
|
|
description=u"Décrivez ici les biens que vous souhaitez" |
|
|
|
|
|
+ u"échanger. N'hésitez pas à donner des détails." |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class PropCForm(ItineraireForm): |
|
|
class PropCForm(ItineraireForm): |
|
|
ConfidenceLevel = [ |
|
|
ConfidenceLevel = [ |
|
|
("0",u"exactement à"), |
|
|
|
|
|
("1",u"approximativement à"), |
|
|
|
|
|
("2",u"à peu près (5 à 15 min) vers"), |
|
|
|
|
|
("3",u"à une vache près (1h) vers") |
|
|
|
|
|
|
|
|
("0", u"exactement à"), |
|
|
|
|
|
("1", u"approximativement à"), |
|
|
|
|
|
("2", u"à peu près (5 à 15 min) vers"), |
|
|
|
|
|
("3", u"à une vache près (1h) vers") |
|
|
] |
|
|
] |
|
|
DayChoice = [("4","Jeudi"), ("5","Vendredi"), ("6","Samedi"), ("0","Dimanche"), ("1","Lundi")] |
|
|
|
|
|
Day_start = SelectField(u'Jour', choices=DayChoice ) |
|
|
|
|
|
Confidence = SelectField(u'Confiance', choices=ConfidenceLevel) |
|
|
|
|
|
Hour_start = StringField(u'Heure', [validators.Length(max=5, |
|
|
|
|
|
message=u"doit faire au maximum 5 caractères"), |
|
|
|
|
|
validators.Regexp("\d+:\d+", |
|
|
|
|
|
message=u"doit être sous la forme HH:MM")], |
|
|
|
|
|
filters=[strip_filter]) |
|
|
|
|
|
start_time = HiddenField() |
|
|
|
|
|
start_place = SelectField(u'En partant de', coerce=int) |
|
|
|
|
|
|
|
|
DayChoice = [("4", "Jeudi"), ("5", "Vendredi"), ("6", "Samedi"), ("0", "Dimanche"), ("1", "Lundi")] |
|
|
|
|
|
Day_start = SelectField(u'Jour', choices=DayChoice) |
|
|
|
|
|
Confidence = SelectField(u'Confiance', choices=ConfidenceLevel) |
|
|
|
|
|
Hour_start = StringField(u'Heure', [validators.Length(max=5, |
|
|
|
|
|
message=u"doit faire au maximum 5 caractères"), |
|
|
|
|
|
validators.Regexp("\d+:\d+", |
|
|
|
|
|
message=u"doit être sous la forme HH:MM")], |
|
|
|
|
|
filters=[strip_filter]) |
|
|
|
|
|
start_time = HiddenField() |
|
|
|
|
|
start_place = SelectField(u'En partant de', coerce=int) |
|
|
arrival_place = SelectField(u'et à destination de', coerce=int) |
|
|
arrival_place = SelectField(u'et à destination de', coerce=int) |
|
|
itin_id = HiddenField() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
itin_id = HiddenField() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class PropHForm(MyBaseForm): |
|
|
class PropHForm(MyBaseForm): |
|
|
DayChoice = [("4",u"Jeudi à Vendredi"), ("5",u"Vendredi à Samedi"), ("6",u"Samedi à Dimanche"), ("0",u"Dimanche à Lundi")] |
|
|
|
|
|
Day_start = SelectField(u'Pour la nuit de', choices=DayChoice ) |
|
|
|
|
|
start_time = HiddenField() |
|
|
|
|
|
exch_categ = SelectField(u'Type de couchage', coerce=int, |
|
|
|
|
|
description = u"Indiquez ici le type de couchage proposé") |
|
|
|
|
|
description = TextAreaField(u'Quelques mots autour du logement que vous proposez', filters=[strip_filter], |
|
|
|
|
|
description = u"Décrivez ici quelques détails sur le logement que vous souhaitez " |
|
|
|
|
|
+ u"proposer, les contraintes à prendre en compte. N'hésitez pas à donner des détails." |
|
|
|
|
|
) |
|
|
|
|
|
place_id = SelectField(u'Emplacement', coerce=int, |
|
|
|
|
|
description = u"Indiquez ici une des adresses que vous avez proposé") |
|
|
|
|
|
|
|
|
DayChoice = [("4", u"Jeudi à Vendredi"), ("5", u"Vendredi à Samedi"), ("6", u"Samedi à Dimanche"), |
|
|
|
|
|
("0", u"Dimanche à Lundi")] |
|
|
|
|
|
Day_start = SelectField(u'Pour la nuit de', choices=DayChoice) |
|
|
|
|
|
start_time = HiddenField() |
|
|
|
|
|
exch_categ = SelectField(u'Type de couchage', coerce=int, |
|
|
|
|
|
description=u"Indiquez ici le type de couchage proposé") |
|
|
|
|
|
description = TextAreaField(u'Quelques mots autour du logement que vous proposez', filters=[strip_filter], |
|
|
|
|
|
description=u"Décrivez ici quelques détails sur le logement que vous souhaitez " |
|
|
|
|
|
+ u"proposer, les contraintes à prendre en compte. N'hésitez pas à donner des détails." |
|
|
|
|
|
) |
|
|
|
|
|
place_id = SelectField(u'Emplacement', coerce=int, |
|
|
|
|
|
description=u"Indiquez ici une des adresses que vous avez proposé") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class PropMForm(MyBaseForm): |
|
|
class PropMForm(MyBaseForm): |
|
|
DayChoice = [("4","Jeudi"), ("5","Vendredi"), ("6","Samedi"), ("0","Dimanche"), ("1","Lundi")] |
|
|
|
|
|
Day_start = SelectField(u"à partir de", choices=DayChoice ) |
|
|
|
|
|
Hour_start = StringField(u'vers', [validators.Length(max=5, |
|
|
|
|
|
message=u"doit faire au maximum 5 caractères"), |
|
|
|
|
|
validators.Regexp("\d+:\d+", |
|
|
|
|
|
message=u"doit être sous la forme HH:MM")], |
|
|
|
|
|
filters=[strip_filter]) |
|
|
|
|
|
start_time = HiddenField() |
|
|
|
|
|
Day_end = SelectField(u"Jusqu'a ", choices=DayChoice ) |
|
|
|
|
|
Hour_end = StringField(u'vers', [validators.Length(max=5, |
|
|
|
|
|
message=u"doit faire au maximum 5 caractères"), |
|
|
|
|
|
validators.Regexp("\d+:\d+", |
|
|
|
|
|
message=u"doit être sous la forme HH:MM")], |
|
|
|
|
|
filters=[strip_filter]) |
|
|
|
|
|
end_time = HiddenField() |
|
|
|
|
|
exch_categ = SelectField(u'Catégorie de matériel', coerce=int, |
|
|
|
|
|
description = u"Choisissez une catégorie de bien matériel" |
|
|
|
|
|
) |
|
|
|
|
|
description = TextAreaField(u'Ajoutez quelques mots autour du matériel que vous proposez', filters=[strip_filter], |
|
|
|
|
|
description = u"Décrivez ici quelques détails sur le matériel que vous souhaitez " |
|
|
|
|
|
+ u"proposer. N'hésitez pas à donner des détails." |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
DayChoice = [("4", "Jeudi"), ("5", "Vendredi"), ("6", "Samedi"), ("0", "Dimanche"), ("1", "Lundi")] |
|
|
|
|
|
Day_start = SelectField(u"à partir de", choices=DayChoice) |
|
|
|
|
|
Hour_start = StringField(u'vers', [validators.Length(max=5, |
|
|
|
|
|
message=u"doit faire au maximum 5 caractères"), |
|
|
|
|
|
validators.Regexp("\d+:\d+", |
|
|
|
|
|
message=u"doit être sous la forme HH:MM")], |
|
|
|
|
|
filters=[strip_filter]) |
|
|
|
|
|
start_time = HiddenField() |
|
|
|
|
|
Day_end = SelectField(u"Jusqu'a ", choices=DayChoice) |
|
|
|
|
|
Hour_end = StringField(u'vers', [validators.Length(max=5, |
|
|
|
|
|
message=u"doit faire au maximum 5 caractères"), |
|
|
|
|
|
validators.Regexp("\d+:\d+", |
|
|
|
|
|
message=u"doit être sous la forme HH:MM")], |
|
|
|
|
|
filters=[strip_filter]) |
|
|
|
|
|
end_time = HiddenField() |
|
|
|
|
|
exch_categ = SelectField(u'Catégorie de matériel', coerce=int, |
|
|
|
|
|
description=u"Choisissez une catégorie de bien matériel" |
|
|
|
|
|
) |
|
|
|
|
|
description = TextAreaField(u'Ajoutez quelques mots autour du matériel que vous proposez', filters=[strip_filter], |
|
|
|
|
|
description=u"Décrivez ici quelques détails sur le matériel que vous souhaitez " |
|
|
|
|
|
+ u"proposer. N'hésitez pas à donner des détails." |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class UpdateAskCForm(AskCForm, UpdateExchangeForm): |
|
|
class UpdateAskCForm(AskCForm, UpdateExchangeForm): |
|
|
pass |
|
|
pass |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class UpdateAskHForm(AskHForm, UpdateExchangeForm): |
|
|
class UpdateAskHForm(AskHForm, UpdateExchangeForm): |
|
|
pass |
|
|
pass |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class UpdateAskMForm(AskMForm, UpdateExchangeForm): |
|
|
class UpdateAskMForm(AskMForm, UpdateExchangeForm): |
|
|
pass |
|
|
pass |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class UpdatePropCForm(PropCForm, UpdateExchangeForm): |
|
|
class UpdatePropCForm(PropCForm, UpdateExchangeForm): |
|
|
pass |
|
|
pass |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class UpdatePropHForm(PropHForm, UpdateExchangeForm): |
|
|
class UpdatePropHForm(PropHForm, UpdateExchangeForm): |
|
|
pass |
|
|
pass |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class UpdatePropMForm(PropMForm, UpdateExchangeForm): |
|
|
class UpdatePropMForm(PropMForm, UpdateExchangeForm): |
|
|
pass |
|
|
pass |