From d439a5df2a51afe723844030dec917667eccb9ad Mon Sep 17 00:00:00 2001 From: tr4ck3ur Date: Tue, 26 Jun 2018 23:40:41 +0200 Subject: [PATCH] Some mandatory Fixes for 2018 year --- jm2l/__init__.py | 4 +- jm2l/const.py | 2 +- jm2l/forms.py | 2 +- jm2l/helpers.py | 10 +- jm2l/models.py | 2 +- jm2l/scripts/initializedb.py | 164 +++++++++++++++++- jm2l/security.py | 17 ++ jm2l/templates/Errors/403.mako | 2 +- jm2l/templates/Errors/404.mako | 2 +- .../Interventions/Interventions.mako | 48 ++--- jm2l/templates/Live.mako | 12 +- jm2l/templates/Logistique/Logistique.mako | 30 ++-- jm2l/templates/NewIndex.mako | 2 +- jm2l/templates/Profil/Profil.mako | 24 +-- jm2l/templates/Profil/Sejour.mako | 2 +- jm2l/templates/Public/Plan.mako | 61 ++++--- jm2l/templates/Public/Presse.mako | 2 +- jm2l/templates/Public/Programme.mako | 17 -- jm2l/templates/Salles/list.mako | 4 +- jm2l/templates/Salles/list_phy.mako | 4 +- jm2l/templates/Salles/salle.mako | 4 +- jm2l/templates/Staff/compta.mako | 2 +- jm2l/templates/Staff/list.mako | 4 +- jm2l/templates/helpers.mako | 8 +- jm2l/templates/index.mako | 2 +- jm2l/templates/jm2l.mako | 10 +- jm2l/templates/layout.mako | 23 +-- jm2l/templates/modals.mako | 6 +- jm2l/templates/view_event.mako | 1 + jm2l/templates/view_tiers.mako | 2 +- jm2l/upload.py | 3 +- jm2l/views.py | 157 +++++------------ 32 files changed, 366 insertions(+), 267 deletions(-) diff --git a/jm2l/__init__.py b/jm2l/__init__.py index 1f23a02..54cb251 100644 --- a/jm2l/__init__.py +++ b/jm2l/__init__.py @@ -26,6 +26,7 @@ import logging def add_renderer_globals(event): event['mytrip'] = Sejour_helpers(event) event['myorga'] = Orga_helpers(event) + event['SelectedYear'] = CurrentYear event['CurrentYear'] = CurrentYear #@sched.scheduled_job('cron', day_of_week='sun', hour=22, minute=07) @@ -62,7 +63,8 @@ def mailer_tasks(config): def main(global_config, **settings): """ This function returns a Pyramid WSGI application. """ - locale.setlocale(locale.LC_ALL, "fr_FR.UTF-8") + #locale.setlocale(locale.LC_ALL, "fr_FR.UTF-8") + locale.setlocale(locale.LC_ALL, "fr_FR.utf8") engine = engine_from_config(settings, 'sqlalchemy.') DBSession.configure(bind=engine) # Extract secrets from configuration file if any diff --git a/jm2l/const.py b/jm2l/const.py index 01b0230..c264c9f 100644 --- a/jm2l/const.py +++ b/jm2l/const.py @@ -1 +1 @@ -CurrentYear = 2017 \ No newline at end of file +CurrentYear = 2018 diff --git a/jm2l/forms.py b/jm2l/forms.py index 93ba72d..f2441f7 100644 --- a/jm2l/forms.py +++ b/jm2l/forms.py @@ -189,7 +189,7 @@ class PlaceCreateForm(MyBaseForm): name = StringField('Nom Complet', [validators.Length(min=1, max=80)], filters=[strip_filter]) gps_coord = StringField(u'Coordonnées GPS', [validators.Length(max=30), - validators.Regexp( "^[0-9]*\.?[0-9],[0-9]*\.?[0-9]+", + 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)], diff --git a/jm2l/helpers.py b/jm2l/helpers.py index 0391e47..2a0aa6f 100644 --- a/jm2l/helpers.py +++ b/jm2l/helpers.py @@ -42,11 +42,11 @@ class Sejour_helpers(DummySejour): return TabResult if self.Sejour: - ArrDate = datetime.strftime(self.Sejour.arrival_time,"%d %B %Y") - DepDate = datetime.strftime(self.Sejour.depart_time,"%d %B %Y") + ArrDate = datetime.strftime(self.Sejour.arrival_time,"%d %B %Y").decode('utf-8') + DepDate = datetime.strftime(self.Sejour.depart_time,"%d %B %Y").decode('utf-8') else: - ArrDate = datetime.strftime( self.CurrentEventYear.start_time,"%d %B %Y" ) - DepDate = datetime.strftime( self.CurrentEventYear.end_time,"%d %B %Y" ) + ArrDate = datetime.strftime( self.CurrentEventYear.start_time,"%d %B %Y" ).decode('utf-8') + DepDate = datetime.strftime( self.CurrentEventYear.end_time,"%d %B %Y" ).decode('utf-8') for oneday in myDayRange: if arrival: @@ -55,7 +55,7 @@ class Sejour_helpers(DummySejour): TmpDay = self.CurrentEventYear.start_time + timedelta(days=oneday) DayName = datetime.strftime(TmpDay,"%A") DayNum = datetime.strftime(TmpDay,"%d/%m/%y") - DayString = datetime.strftime(TmpDay,"%d %B %Y") + DayString = datetime.strftime(TmpDay,"%d %B %Y").decode('utf-8') if arrival and ArrDate==DayString: TabResult.append((DayNum, DayName, 'selected="selected"')) elif departure and DepDate==DayString: diff --git a/jm2l/models.py b/jm2l/models.py index b4b3067..af46e2b 100644 --- a/jm2l/models.py +++ b/jm2l/models.py @@ -102,7 +102,7 @@ class JM2L_Year(Base): .filter(JM2L_Year.start_time == DBSession.query(func.max(JM2L_Year.start_time)) ).one() - return last_record.start_time.strftime("%A %d %b %Y") + return last_record.start_time.strftime("%A %d %b %Y").decode('utf-8') @property def AvailableTimeSlots(self, TimeStep=30): diff --git a/jm2l/scripts/initializedb.py b/jm2l/scripts/initializedb.py index 314e66b..cda8d2e 100644 --- a/jm2l/scripts/initializedb.py +++ b/jm2l/scripts/initializedb.py @@ -6,12 +6,13 @@ import time import lxml.etree as ET from sqlalchemy import engine_from_config -from sqlalchemy import create_engine +from sqlalchemy import create_engine, MetaData, Table import unicodedata import urllib # Usefull tools from slugify import slugify from sqlite3 import dbapi2 as sqlite +import sqlite3 from os import path from pyramid.paster import ( get_appsettings, @@ -19,7 +20,7 @@ from pyramid.paster import ( ) from string import printable from random import choice - +from sqlalchemy import orm, or_ from jm2l.models import * from datetime import datetime @@ -30,8 +31,139 @@ def usage(argv): '(example: "%s development.ini")' % (cmd, cmd)) sys.exit(1) +def make_session(connection_string): + engine = create_engine(connection_string, echo=False, convert_unicode=True) + Session = sessionmaker(bind=engine) + return Session(), engine + +def quick_mapper(table): + Base = declarative_base() + class GenericMapper(Base): + __table__ = table + return GenericMapper + +def pull_data(from_db, to_db, tables): + source, sengine = make_session(from_db) + smeta = MetaData(bind=sengine) + destination, dengine = make_session(to_db) + + for table_name in tables: + print 'Processing', table_name + print 'Pulling schema from source server' + table = Table(table_name, smeta, autoload=True) + print 'Creating table on destination server' + table.metadata.create_all(dengine) + NewRecord = quick_mapper(table) + columns = table.columns.keys() + print 'Transferring records' + for record in source.query(table).all(): + data = dict( + [(str(column), getattr(record, column)) for column in columns] + ) + if table_name=='salle': + if data['place_type']=='Ateliers': + data['place_type']='Atelier' + if table_name=='events': + if data['event_type']=='Concert': + data['event_type']='MAO' + try: + destination.merge(NewRecord(**data)) + except: + print data + pass + print 'Committing changes' + destination.commit() + def main(argv=sys.argv): + connection_string = "sqlite:////home/tr4ck3ur/Dev/jm2l/JM2L.sqlite" + engine = create_engine(connection_string, echo=False, convert_unicode=True) + DBSession.configure(bind=engine) + Users = DBSession.query(User) + ListUser = filter(lambda x: x.is_Intervenant, Users) + for i in ListUser: + print i.mail + +def main4(argv=sys.argv): + import csv + from sqlalchemy import func + + connection_string = "sqlite:////home/tr4ck3ur/Dev/jm2l/JM2L.sqlite" + + if 1: + conn = sqlite3.connect("/home/tr4ck3ur/Dev/jm2l/JM2L.sqlite") + c = conn.cursor() + try: + c.execute("ALTER TABLE users ADD COLUMN wifi_user VARCHAR(80);") + c.execute("ALTER TABLE users ADD COLUMN wifi_pass VARCHAR(80);") + except: + pass # handle the error + c.close() + + engine = create_engine(connection_string, echo=False, convert_unicode=True) + DBSession.configure(bind=engine) + + with transaction.manager: + f = open("/home/tr4ck3ur/Dev/jm2l/wifi-11-11-pass.csv", 'rt') + try: + reader = csv.reader(f) + for row in reader: + prenom, nom, w_user, w_pass = row + slug = unicode( slugify(prenom +" "+nom) ) + u = DBSession.query(User)\ + .filter(User.slug==slug).first() + if u: + u.wifi_user = w_user + u.wifi_pass = w_pass + DBSession.merge(u) + print row, u + finally: + f.close() + + if 0: + + p0, p1 = orm.aliased(User,name="p0"), orm.aliased(User ,name="p1") + import pprint + + +def main_3(argv=sys.argv): + connection_string = "sqlite:////home/tr4ck3ur/Dev/jm2l/JM2L.sqlite" + engine = create_engine(connection_string, echo=True, convert_unicode=True) + DBSession.configure(bind=engine) + p0, p1 = orm.aliased(User,name="p0"), orm.aliased(User ,name="p1") + import pprint + + ## permtation + with transaction.manager: + Datas = DBSession.query(p0, p1)\ + .filter(p0.slug==p1.slug)\ + .filter(p0.uid!=p1.uid)\ + .filter(p0.last_logged${reason}

% else: -

Vous n'êtes pas authentifié, ou n'avez pas les autorisations nécessaires.

+

Vous n'êtes pas authentifié, ou n'avez pas les authorisations nécessaires.

% endif diff --git a/jm2l/templates/Errors/404.mako b/jm2l/templates/Errors/404.mako index 6379cd4..addc398 100644 --- a/jm2l/templates/Errors/404.mako +++ b/jm2l/templates/Errors/404.mako @@ -54,7 +54,7 @@ -

Page non trouvée

+

Page non trouvée

% if reason:

${reason}

% else: diff --git a/jm2l/templates/Interventions/Interventions.mako b/jm2l/templates/Interventions/Interventions.mako index 262704b..a783f67 100644 --- a/jm2l/templates/Interventions/Interventions.mako +++ b/jm2l/templates/Interventions/Interventions.mako @@ -10,7 +10,7 @@ - Conférences + Conférences % if len( request.user.year_events('Conference') ): % for evt in request.user.year_events('Conference'): % endfor @@ -106,11 +106,11 @@ elif Type=='T': %> % if Type!='O':
- Vos ${CurTitles} programmés pour ${CurrentYear} + Vos ${CurTitles} programmés pour ${CurrentYear} <% Selection = filter(lambda x:(x.event_type==CurEventType and x.for_year==CurrentYear), uprofil.events) HeadHistTitle = u"L'historique de vos %s ( %d ) " % ( CurTitles, len(Selection) ) -NothingTitle = u"Vous n'avez pas sollicité d'intervention %s." % CurEvent +NothingTitle = u"Vous n'avez pas sollicité d'intervention %s." % CurEvent %> ${helpers.show_Interventions(Selection, "Sujet", NothingTitle )}
@@ -118,31 +118,31 @@ NothingTitle = u"Vous n'avez pas sollicité d'intervention %s." % CurEvent % if Type=='C':

- Proposer une conférence / un lighting talk
+ Proposer une conférence / un lighting talk

- Nous serons heureux de vous écouter. + Nous serons heureux de vous écouter.
- Nous souhaitons proposer des conférences pour un public débutant + Nous souhaitons proposer des conférences pour un public débutant autant que pour des visiteurs avertis. Les sujets ne doivent pas - forcément être techniques, mais aussi d’ordre général avec la seule + forcément être techniques, mais aussi d’ordre général avec la seule contrainte de traiter de près ou de loin des logiciels libres, de la - communauté ou de vos propres expériences d’utilisateur quotidien.
- Le but de ces conférences est double : + communauté ou de vos propres expériences d’utilisateur quotidien.
+ Le but de ces conférences est double : - Les conférences ont un format défini de 5, 20, 50 ou 70 minutes, - modulable à loisir entre présentation et questions. Vous aideriez l'équipe - d'organisation en essayant au maximum de ne pas dépasser la durée que vous réservez. - Dans tous les cas, 5 minutes supplémentaires vous sont attribuées pour - la mise en place de votre conférence. + Les conférences ont un format défini de 5, 20, 50 ou 70 minutes, + modulable à loisir entre présentation et questions. Vous aideriez l'équipe + d'organisation en essayant au maximum de ne pas dépasser la durée que vous réservez. + Dans tous les cas, 5 minutes supplémentaires vous sont attribuées pour + la mise en place de votre conférence.

% elif Type=='A':

@@ -154,10 +154,10 @@ NothingTitle = u"Vous n'avez pas sollicité d'intervention %s." % CurEvent l’utilisation de Linux et des logiciels libres standards pour une utilisation familiale : soyez les bienvenus. - Les ateliers sont organisés dans des salles équipées en matériel - informatique et en vidéo-projecteur. Afin de ne pas perdre de temps, + Les ateliers sont organisés dans des salles équipées en matériel + informatique et en vidéo-projecteur. Afin de ne pas perdre de temps, nous avons besoin de connaître les logiciels et installations - spéciales à préparer avant la session de l’atelier. + spéciales à préparer avant la session de l’atelier.

% endif @@ -172,8 +172,8 @@ NothingTitle = u"Vous n'avez pas sollicité d'intervention %s." % CurEvent c'est celle où chacun apporte sa contribution.

- Dans ce genre d'évènement nous avons besoin de bras et de bonnes volontés. - Vous pouvez nous aider en vous inscrivant en tant que "bénévole du jour" sur un + Dans ce genre d'évènement nous avons besoin de bras et de bonnes volontés. + Vous pouvez nous aider en vous inscrivant en tant que "bénévole du jour" sur un certains nombre de missions :

@@ -189,7 +189,7 @@ NothingTitle = u"Vous n'avez pas sollicité d'intervention %s." % CurEvent % endfor

- Avant l'évènement, et en fonction des cases cochés, les coordinateurs metterons à jour le planning et vous receverez les instructions par mail. + Avant l'évènement, et en fonction des cases cochés, les coordinateurs metterons à jour le planning et vous receverez les instructions par mail.

@@ -207,7 +207,7 @@ NothingTitle = u"Vous n'avez pas sollicité d'intervention %s." % CurEvent <% Selection = filter(lambda x:(x.event_type==CurEventType and x.for_year!=CurrentYear), uprofil.events) HeadHistTitle = u"L'historique de vos %s ( %d ) " % ( CurTitles, len(Selection) ) -NothingTitle = u"Désolé, Il n'y a rien dans l'historique vous concernant." +NothingTitle = u"Désolé, Il n'y a rien dans l'historique vous concernant." %> ${helpers.show_Interventions(Selection, HeadHistTitle, NothingTitle )} diff --git a/jm2l/templates/Live.mako b/jm2l/templates/Live.mako index b74928e..8d91765 100644 --- a/jm2l/templates/Live.mako +++ b/jm2l/templates/Live.mako @@ -17,24 +17,24 @@

Live JM2L

-Voici les liens vers les conférences Live: +Voici les liens vers les conférences Live:

En ce moment:

% for ev in events: - Live Vidéo - -## Live Vidéo - + Live Vidéo - +## Live Vidéo - ${ev.event_type} - ${ev.name}
% endfor

- Réalisé avec le concours des admins réseau Polytech'Nice. Encore merci pour leur disponibilité ..
- Rechargez la page pour voir les évenements en cours en fonction de l'heure...
+ Réalisé avec le concours des admins réseau Polytech'Nice. Encore merci pour leur disponibilité ..
+ Rechargez la page pour voir les évenements en cours en fonction de l'heure...

NB : si vous n'avez pas l'audio à travers votre navigateur...
- n'hésitez pas à mettre à contribution votre lecteur de vidéo préféré ( VLC, ffmpeg )
+ n'hésitez pas à mettre à contribution votre lecteur de vidéo préféré ( VLC, ffmpeg )

Vous avez le droit de vous plaindre, c'est du Do It Yourself ;) diff --git a/jm2l/templates/Logistique/Logistique.mako b/jm2l/templates/Logistique/Logistique.mako index 3f79dfb..bf0c121 100644 --- a/jm2l/templates/Logistique/Logistique.mako +++ b/jm2l/templates/Logistique/Logistique.mako @@ -9,10 +9,10 @@ DicExch = Exchanges.get_overview( request.user.uid )

@@ -30,7 +30,7 @@ DicExch = Exchanges.get_overview( request.user.uid ) ${tables.DoTable(Type, 'Ask', DicExch)} ${tables.DoTable(Type, 'Proposal', DicExch)}
- Tous les échanges + Tous les échanges ${Missing(Type, DicExch['Missing'])}
@@ -59,23 +59,23 @@ DicForm = {

- Complétez dès à présent votre partie repas afin que l'on puisse faire les réservations nécessaires ! + Complétez dès à présent votre partie repas afin que l'on puisse faire les réservations nécessaires !

Vendredi soir :

- Certains conférenciers viennent de très loin et seront présent dés le vendredi.
- Nous vous proposons de nous retrouver à proximité, à la CASA.
+ Certains conférenciers viennent de très loin et seront présent dés le vendredi.
+ Nous vous proposons de nous retrouver à proximité, à la CASA.
La carte CASA le vendredi soir autour d'un verre et d'un bon repas !

Samedi Midi :

- À la pause du midi, nous vous proposons un repas avec le food-truck 'les frères toqués' qui sera présent sur le parking de PolyTech
+ À la pause du midi, nous vous proposons un repas avec le food-truck 'les frères toqués' qui sera présent sur le parking de PolyTech

Samedi Soir :

- Pour conclure la journée nous avons l'habitude de nous retrouver au repas de cloture.
+ Pour conclure la journée nous avons l'habitude de nous retrouver au repas de cloture.
Nous vous proposons de nous retrouver à Antibes au restaurant Les Tonnelles
Les Tonnelles

@@ -100,7 +100,7 @@ elif Type=='M': - Les échanges ${CurTitle} + Les échanges ${CurTitle} % if 0: @@ -124,7 +124,7 @@ elif Type=='M': - Détails + Détails @@ -132,7 +132,7 @@ elif Type=='M': % if len(Selection)==0: - Il n'y a aucun échange ${CurTitle} proposé actuellement... + Il n'y a aucun échange ${CurTitle} proposé actuellement... % else: @@ -284,7 +284,7 @@ ListWrap = ["Co-voiturage",u"Hébergement","Matos"]
@@ -338,7 +338,7 @@ ListWrap = ["Co-voiturage",u"Hébergement","Matos"]

Rendez-vous à l'accueil pour retirer votre badge !
- Pour que tout se passe pour le mieux dans l'organisation de l'événement, nous vous invitons à : + Pour que tout se passe pour le mieux dans l'organisation de l'événement, nous vous invitons à :

  • Renseigner et valider vos horaires d'arrivée / de départ dans la section "Mon Séjour".
  • Procéder à la réservation de vos repas dans la section "Miam" !
  • diff --git a/jm2l/templates/NewIndex.mako b/jm2l/templates/NewIndex.mako index 3438858..39076dc 100644 --- a/jm2l/templates/NewIndex.mako +++ b/jm2l/templates/NewIndex.mako @@ -2,7 +2,7 @@ <%def name="jsAddOn()"> diff --git a/jm2l/templates/Profil/Profil.mako b/jm2l/templates/Profil/Profil.mako index 754ab08..6b1b580 100644 --- a/jm2l/templates/Profil/Profil.mako +++ b/jm2l/templates/Profil/Profil.mako @@ -23,12 +23,12 @@ <% DicFormA = { 'nom': {'PlaceHolder':u"Mon Nom", 'ContainerClass':"span6", 'next':False}, - 'prenom': {'PlaceHolder':u"Mon Prénom", 'ContainerClass':"span6", 'next':True}, + 'prenom': {'PlaceHolder':u"Mon Prénom", 'ContainerClass':"span6", 'next':True}, 'pseudo': {'PlaceHolder':u"Mon Pseudo", 'ContainerClass':"span6", 'next':False}, 'mail': {'PlaceHolder':u"mon.mail@fqdn.tld", 'ContainerClass':"span6", 'next':True}, 'phone': {'PlaceHolder':u"0612345678", 'ContainerClass':"span6", 'next':False}, 'website': {'PlaceHolder':u"http://ma-page-web.moi",'ContainerClass':"span6", 'next':True}, - 'gpg_key': {'PlaceHolder':u"Ma clé gpg", 'ContainerClass':"span6", 'next':False}, + 'gpg_key': {'PlaceHolder':u"Ma clé gpg", 'ContainerClass':"span6", 'next':False}, 'soc_link':{'PlaceHolder':u"#jm2l sur irc.freenode.org",'ContainerClass':"span6", 'next':True}, 'bio': {'Ignore':True}, 'tiersship': {'Ignore':True}, @@ -52,12 +52,12 @@ DicFormB = { DicForm2 = { 'nom': {'PlaceHolder':u"Mon Nom", "FieldStyle":"width:16em;", 'ContainerStyle':"float:left;"}, - 'prenom': {'PlaceHolder':u"Mon Prénom", "FieldStyle":"width:16em;"}, + 'prenom': {'PlaceHolder':u"Mon Prénom", "FieldStyle":"width:16em;"}, 'pseudo': {'PlaceHolder':u"Mon Pseudo", "FieldStyle":"width:16em;", 'ContainerStyle':"float:left;"}, 'mail': {'PlaceHolder':u"mon.mail@fqdn.tld", "FieldStyle":"width:16em;"}, 'phone': {'PlaceHolder':u"0612345678", "FieldStyle":"width:16em;", 'ContainerStyle':"float:left;"}, 'website': {'PlaceHolder':u"http://ma-page-web.moi","FieldStyle":"width:16em;"}, - 'gpg_key': {'PlaceHolder':u"Ma clé gpg", "FieldStyle":"width:90%;"}, + 'gpg_key': {'PlaceHolder':u"Ma clé gpg", "FieldStyle":"width:90%;"}, 'soc_link':{'PlaceHolder':u"#jm2l sur irc.freenode.org","FieldStyle":"width:90%;"}, 'bio': {'PlaceHolder':u"Ma Bilibiographie", "FieldStyle":"width:95%;min-height:150px;", "fieldset":True, "ckeditor":1 }, 'tiersship': {'Ignore':True} @@ -84,7 +84,7 @@ DicForm2 = {
    Vos identifiants:
    Nous n'avons pas encore l'information
    - Plus de détails ... + Plus de détails ...
@@ -92,21 +92,21 @@ DicForm2 = { ${helpers.DisplayRespForm(profil_form, DicFormB)}
- Activité + Activité - Saisissez ci-dessous les entités que vous souhaiter représenter pendant l'événement. + Saisissez ci-dessous les entités que vous souhaiter représenter pendant l'événement. (Association, GULL, Entreprise, Logiciel, ...).
- Si elle n'existe pas dans la liste proposée, vous pouvez en ajouter une. + Si elle n'existe pas dans la liste proposée, vous pouvez en ajouter une.
- - + + diff --git a/jm2l/templates/Profil/Sejour.mako b/jm2l/templates/Profil/Sejour.mako index 67520ed..bd51349 100644 --- a/jm2l/templates/Profil/Sejour.mako +++ b/jm2l/templates/Profil/Sejour.mako @@ -68,7 +68,7 @@ fieldset:disabled {
  • + d'un covoiturage, d'un hébergement...
    (j'ai rempli/je vais remplir la section Logistique).
  • AnnéeEntitéAnnéeEntité Rôle Action
    @@ -159,13 +148,7 @@ if Counter==0: % endfor
    - -##
    -##
    -##
    - % endfor -## diff --git a/jm2l/templates/Salles/list.mako b/jm2l/templates/Salles/list.mako index 03f0646..08f2ec5 100644 --- a/jm2l/templates/Salles/list.mako +++ b/jm2l/templates/Salles/list.mako @@ -37,7 +37,7 @@ from slugify import slugify % if len(DicSalle[Entity])==0: - Il n'y a pas de salle définie pour l'année ${Entity.year_uid} + Il n'y a pas de salle définie pour l'année ${Entity.year_uid} % endif @@ -54,7 +54,7 @@ from slugify import slugify % if Salle.phy_salle_id: [ ${Salle.phy.name} ${Salle.phy.nb_places} places ] % else: - [ Créer ] + [ Créer ] % endif diff --git a/jm2l/templates/Salles/list_phy.mako b/jm2l/templates/Salles/list_phy.mako index 5b4959a..23aaa29 100644 --- a/jm2l/templates/Salles/list_phy.mako +++ b/jm2l/templates/Salles/list_phy.mako @@ -24,7 +24,7 @@ from slugify import slugify % if len(DicSallePhy)==0: - Il n'y a pas de salle définie pour le moment. + Il n'y a pas de salle définie pour le moment. % endif @@ -43,7 +43,7 @@ from slugify import slugify % if SallePhy.uid: [ ${SallePhy.nb_places} places ] % else: - [ Créer ] + [ Créer ] % endif diff --git a/jm2l/templates/Salles/salle.mako b/jm2l/templates/Salles/salle.mako index cb53667..8bdcb49 100644 --- a/jm2l/templates/Salles/salle.mako +++ b/jm2l/templates/Salles/salle.mako @@ -29,9 +29,9 @@ %endif <% DicForm = { - 'year_uid': {'PlaceHolder':u"Année", "FieldStyle":"width:7em;", "ContainerStyle":"float:left;" }, + 'year_uid': {'PlaceHolder':u"Année", "FieldStyle":"width:7em;", "ContainerStyle":"float:left;" }, 'phy_salle_id': {'PlaceHolder':u"Salle Physique", "FieldStyle":"width:20em;", "ContainerStyle":"float:left;" }, - 'place_type': {'PlaceHolder':u"Type d'évènement","FieldStyle":"width:15em;" }, + 'place_type': {'PlaceHolder':u"Type d'évènement","FieldStyle":"width:15em;" }, 'name': {'PlaceHolder':u"Nom de la salle", "FieldStyle":"width:90%;" }, 'description': {'PlaceHolder':u"Description", "ContainerStyle":"width:95%;min-height:150px;padding-top: 12px;", "ckeditor":"1" }, } diff --git a/jm2l/templates/Staff/compta.mako b/jm2l/templates/Staff/compta.mako index ea8feb3..e734fa4 100644 --- a/jm2l/templates/Staff/compta.mako +++ b/jm2l/templates/Staff/compta.mako @@ -42,7 +42,7 @@ % if len(found)==0: - Aucun justificatif trouvé + Aucun justificatif trouvé % endif diff --git a/jm2l/templates/Staff/list.mako b/jm2l/templates/Staff/list.mako index 12d1e5b..ce0ce39 100644 --- a/jm2l/templates/Staff/list.mako +++ b/jm2l/templates/Staff/list.mako @@ -4,7 +4,7 @@ from slugify import slugify %> - Ajouter un Pôle d'activité + Ajouter un Pôle d'activité

    Liste des tâches JM2L Staff

    @@ -70,7 +70,7 @@ from slugify import slugify
    % if task.closed: - [ ré-ouvrir ] + [ ré-ouvrir ] % else: [ c'est fait ] % endif diff --git a/jm2l/templates/helpers.mako b/jm2l/templates/helpers.mako index 3811474..22a3d3e 100644 --- a/jm2l/templates/helpers.mako +++ b/jm2l/templates/helpers.mako @@ -142,7 +142,7 @@ TabJs = {'select':[], 'desc':[]} <%def name="sejour_wrapper(Places)">
    - Départ : + Départ : % for place in Places: @@ -184,7 +184,7 @@ TabJs = {'select':[], 'desc':[]} ${itin_form.arrival_place(style='width:17em;')}
    - Si je n´ai pas trouvé le lieu dont j´ai besoin dans ces listes... + Si je n´ai pas trouvé le lieu dont j´ai besoin dans ces listes...
    Je peux @@ -352,7 +352,7 @@ TabJs = {'select':[], 'desc':[]} % if NotFoundTitle: ${NotFoundTitle} % else: - Désolé, Il n'y a rien dans l'historique. + Désolé, Il n'y a rien dans l'historique. % endif diff --git a/jm2l/templates/index.mako b/jm2l/templates/index.mako index 0580c6f..aee8900 100644 --- a/jm2l/templates/index.mako +++ b/jm2l/templates/index.mako @@ -1,6 +1,6 @@ <%inherit file="jm2l:templates/layout.mako"/>

    - Pour que l'évenement JM2L 2017 se passe dans les meilleures conditions + Pour que l'évenement JM2L context._kwargs['CurrentYear'] se passe dans les meilleures conditions possible. Il s'agit ici pour toi de te connecter et de compléter les formulaires, d'essayer de les tenir à jour au fur et à meusure, de les compléter diff --git a/jm2l/templates/jm2l.mako b/jm2l/templates/jm2l.mako index 3fc5963..cda6be0 100644 --- a/jm2l/templates/jm2l.mako +++ b/jm2l/templates/jm2l.mako @@ -79,7 +79,7 @@

    @@ -189,7 +184,7 @@ ${helpers.uploader_js()}