| @@ -18,12 +18,14 @@ from apscheduler.schedulers.background import BackgroundScheduler | |||||
| from pyramid.request import Request | from pyramid.request import Request | ||||
| from mako.template import Template | from mako.template import Template | ||||
| from .models import User | from .models import User | ||||
| import logging | |||||
| from jm2l.const import CurrentYear | |||||
| import logging | |||||
| def add_renderer_globals(event): | def add_renderer_globals(event): | ||||
| event['mytrip'] = Sejour_helpers(event) | event['mytrip'] = Sejour_helpers(event) | ||||
| event['myorga'] = Orga_helpers(event) | event['myorga'] = Orga_helpers(event) | ||||
| event['CurrentYear'] = CurrentYear | |||||
| #@sched.scheduled_job('cron', day_of_week='sun', hour=22, minute=07) | #@sched.scheduled_job('cron', day_of_week='sun', hour=22, minute=07) | ||||
| def mailer_tasks(config): | def mailer_tasks(config): | ||||
| @@ -0,0 +1 @@ | |||||
| CurrentYear = 2017 | |||||
| @@ -2,6 +2,7 @@ | |||||
| from .models import DBSession, JM2L_Year, Sejour | from .models import DBSession, JM2L_Year, Sejour | ||||
| from datetime import timedelta, datetime | from datetime import timedelta, datetime | ||||
| import itertools | import itertools | ||||
| from jm2l.const import CurrentYear | |||||
| class DummySejour(object): | class DummySejour(object): | ||||
| @@ -31,12 +31,11 @@ from sqlalchemy.orm import ( | |||||
| ) | ) | ||||
| from zope.sqlalchemy import ZopeTransactionExtension | from zope.sqlalchemy import ZopeTransactionExtension | ||||
| from jm2l.const import CurrentYear | |||||
| DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension())) | DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension())) | ||||
| Base = declarative_base() | Base = declarative_base() | ||||
| CurrentYear = 2015 | |||||
| class TasksArea(Base): | class TasksArea(Base): | ||||
| __tablename__ = 'staff_tasks_area' | __tablename__ = 'staff_tasks_area' | ||||
| uid = Column(Integer, primary_key=True) | uid = Column(Integer, primary_key=True) | ||||
| @@ -174,19 +173,19 @@ class User(Base): | |||||
| return None | return None | ||||
| @property | @property | ||||
| def is_Intervenant(self, year=2015): | |||||
| def is_Intervenant(self, year=CurrentYear): | |||||
| """ This property will return if User do an event on specified year """ | """ This property will return if User do an event on specified year """ | ||||
| return DBSession.query(Event).join(User_Event) \ | return DBSession.query(Event).join(User_Event) \ | ||||
| .filter(User_Event.user_uid==self.uid) \ | .filter(User_Event.user_uid==self.uid) \ | ||||
| .filter(Event.for_year==year).count() | .filter(Event.for_year==year).count() | ||||
| @property | @property | ||||
| def is_crew(self, year=2015): | |||||
| def is_crew(self, year=CurrentYear): | |||||
| """ This property will return if User subscribe orga task on specified year """ | """ This property will return if User subscribe orga task on specified year """ | ||||
| return DBSession.query(User,Sejour.orga_part).outerjoin(Sejour).filter(User.uid == self.uid).one()[1] | return DBSession.query(User,Sejour.orga_part).outerjoin(Sejour).filter(User.uid == self.uid).one()[1] | ||||
| def year_events(self, EventType='All', year=2015): | |||||
| def year_events(self, EventType='All', year=CurrentYear): | |||||
| if EventType=='All': | if EventType=='All': | ||||
| return filter(lambda e: e.for_year==year, self.events) | return filter(lambda e: e.for_year==year, self.events) | ||||
| else: | else: | ||||
| @@ -490,13 +489,13 @@ class Exchange(Base): | |||||
| @classmethod | @classmethod | ||||
| def get_counters(cls): | def get_counters(cls): | ||||
| return DBSession.query(cls.exch_state, cls.exch_type, cls.exch_done, func.count(cls.exch_id))\ | return DBSession.query(cls.exch_state, cls.exch_type, cls.exch_done, func.count(cls.exch_id))\ | ||||
| .filter(cls.for_year==2015)\ | |||||
| .filter(cls.for_year==CurrentYear)\ | |||||
| .group_by(cls.exch_state, cls.exch_type, cls.exch_done) | .group_by(cls.exch_state, cls.exch_type, cls.exch_done) | ||||
| @classmethod | @classmethod | ||||
| def get_my_counters(cls, uid): | def get_my_counters(cls, uid): | ||||
| return DBSession.query(cls.exch_state, cls.exch_type, cls.exch_done, func.count(cls.exch_id))\ | return DBSession.query(cls.exch_state, cls.exch_type, cls.exch_done, func.count(cls.exch_id))\ | ||||
| .filter(cls.for_year==2015)\ | |||||
| .filter(cls.for_year==CurrentYear)\ | |||||
| .filter( or_(cls.asker_id==uid, cls.provider_id==uid) )\ | .filter( or_(cls.asker_id==uid, cls.provider_id==uid) )\ | ||||
| .group_by(cls.exch_state, cls.exch_type, cls.exch_done) | .group_by(cls.exch_state, cls.exch_type, cls.exch_done) | ||||
| @@ -510,7 +509,7 @@ class Exchange(Base): | |||||
| DicResult[extype][exstate]=[] | DicResult[extype][exstate]=[] | ||||
| DicResult[extype]['Counters']={'AllAsk':0, 'AllProp':0, 'AllAgree':0} | DicResult[extype]['Counters']={'AllAsk':0, 'AllProp':0, 'AllAgree':0} | ||||
| Query = DBSession.query(cls)\ | Query = DBSession.query(cls)\ | ||||
| .filter(cls.for_year==2015)\ | |||||
| .filter(cls.for_year==CurrentYear)\ | |||||
| .order_by(cls.start_time).all() | .order_by(cls.start_time).all() | ||||
| for item in Query: | for item in Query: | ||||
| if item.exch_done: | if item.exch_done: | ||||
| @@ -537,7 +536,7 @@ class Exchange(Base): | |||||
| @classmethod | @classmethod | ||||
| def get_pub_list(cls, exch_type): | def get_pub_list(cls, exch_type): | ||||
| return DBSession.query(cls).filter(cls.for_year==2015 and cls.exch_state in ['Ask','Proposal'])\ | |||||
| return DBSession.query(cls).filter(cls.for_year==CurrentYear and cls.exch_state in ['Ask','Proposal'])\ | |||||
| .filter(cls.exch_type=='%s' % exch_type)\ | .filter(cls.exch_type=='%s' % exch_type)\ | ||||
| .filter(cls.exch_done==False)\ | .filter(cls.exch_done==False)\ | ||||
| .all() | .all() | ||||
| @@ -546,13 +545,13 @@ class Exchange(Base): | |||||
| def get_my_list(cls, uid, exch_type): | def get_my_list(cls, uid, exch_type): | ||||
| DicResult = {} | DicResult = {} | ||||
| DicResult['Ask']=DBSession.query(cls)\ | DicResult['Ask']=DBSession.query(cls)\ | ||||
| .filter(cls.for_year==2015)\ | |||||
| .filter(cls.for_year==CurrentYear)\ | |||||
| .filter( or_(cls.asker_id==uid, cls.provider_id==uid) )\ | .filter( or_(cls.asker_id==uid, cls.provider_id==uid) )\ | ||||
| .filter(cls.exch_type=='%s' % exch_type)\ | .filter(cls.exch_type=='%s' % exch_type)\ | ||||
| .filter(cls.exch_state=='Ask')\ | .filter(cls.exch_state=='Ask')\ | ||||
| .order_by(cls.start_time).all() | .order_by(cls.start_time).all() | ||||
| DicResult['Proposal']=DBSession.query(cls)\ | DicResult['Proposal']=DBSession.query(cls)\ | ||||
| .filter(cls.for_year==2015)\ | |||||
| .filter(cls.for_year==CurrentYear)\ | |||||
| .filter( or_(cls.asker_id==uid, cls.provider_id==uid) )\ | .filter( or_(cls.asker_id==uid, cls.provider_id==uid) )\ | ||||
| .filter(cls.exch_type=='%s' % exch_type)\ | .filter(cls.exch_type=='%s' % exch_type)\ | ||||
| .filter(cls.exch_state=='Proposal')\ | .filter(cls.exch_state=='Proposal')\ | ||||
| @@ -106,9 +106,9 @@ elif Type=='T': | |||||
| %> | %> | ||||
| % if Type!='O': | % if Type!='O': | ||||
| <fieldset> | <fieldset> | ||||
| <legend class="lowshadow">Vos ${CurTitles} programmés pour 2015</legend> | |||||
| <legend class="lowshadow">Vos ${CurTitles} programmés pour ${CurrentYear}</legend> | |||||
| <% | <% | ||||
| Selection = filter(lambda x:(x.event_type==CurEventType and x.for_year==2015), uprofil.events) | |||||
| 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) ) | 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 | ||||
| %> | %> | ||||
| @@ -200,12 +200,12 @@ NothingTitle = u"Vous n'avez pas sollicité d'intervention %s." % CurEvent | |||||
| % endif | % endif | ||||
| % if Type!='O': | % if Type!='O': | ||||
| <a href="/MesJM2L/2015/${CurEventType.replace(' ','_')}">Je souhaite ajouter ${CurTitle} pour les JM2L 2015 !</a> | |||||
| <a href="/MesJM2L/${CurrentYear}/${CurEventType.replace(' ','_')}">Je souhaite ajouter ${CurTitle} pour les JM2L ${CurrentYear} !</a> | |||||
| <fieldset> | <fieldset> | ||||
| <legend class="lowshadow">Historique</legend> | <legend class="lowshadow">Historique</legend> | ||||
| <% | <% | ||||
| Selection = filter(lambda x:(x.event_type==CurEventType and x.for_year!=2015), uprofil.events) | |||||
| 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) ) | 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." | ||||
| %> | %> | ||||
| @@ -23,9 +23,9 @@ elif Type=='M': | |||||
| </div> | </div> | ||||
| <div class="modal-body"> | <div class="modal-body"> | ||||
| %if 'exch_id' in form._fields.keys(): | %if 'exch_id' in form._fields.keys(): | ||||
| <form id="ModalForm" action="javascript:DoPost('/2015/modal/Prop${Type}/${form.exch_id.data}');"> | |||||
| <form id="ModalForm" action="javascript:DoPost('/${CurrentYear}/modal/Prop${Type}/${form.exch_id.data}');"> | |||||
| %else: | %else: | ||||
| <form id="ModalForm" action="javascript:DoPost('/2015/modal/Prop${Type}/0');"> | |||||
| <form id="ModalForm" action="javascript:DoPost('/${CurrentYear}/modal/Prop${Type}/0');"> | |||||
| %endif | %endif | ||||
| <p>Je propose mes service pour ${CurTitle}</p> | <p>Je propose mes service pour ${CurTitle}</p> | ||||
| % if Type=='H': | % if Type=='H': | ||||
| @@ -65,9 +65,9 @@ elif Type=='M': | |||||
| </div> | </div> | ||||
| <div class="modal-body"> | <div class="modal-body"> | ||||
| % if 'exch_id' in form._fields.keys(): | % if 'exch_id' in form._fields.keys(): | ||||
| <form id="ModalForm" action="javascript:DoPost('/2015/modal/Ask${Type}/${form.exch_id.data}');"> | |||||
| <form id="ModalForm" action="javascript:DoPost('/${CurrentYear}/modal/Ask${Type}/${form.exch_id.data}');"> | |||||
| % else: | % else: | ||||
| <form id="ModalForm" action="javascript:DoPost('/2015/modal/Ask${Type}/0');"> | |||||
| <form id="ModalForm" action="javascript:DoPost('/${CurrentYear}/modal/Ask${Type}/0');"> | |||||
| %endif | %endif | ||||
| <p>Je demande ${CurTitle}</p> | <p>Je demande ${CurTitle}</p> | ||||
| % if Type=='H': | % if Type=='H': | ||||
| @@ -114,9 +114,9 @@ elif Exch.exch_type=='M': | |||||
| ${dialogM.ShowM(Exch)} | ${dialogM.ShowM(Exch)} | ||||
| % endif | % endif | ||||
| % if Exch.exch_state=='Ask': | % if Exch.exch_state=='Ask': | ||||
| <form id="ModalForm" action="javascript:DoPost('/2015/exchange/Ask${Type}/${Exch.exch_id}/deal');"></form> | |||||
| <form id="ModalForm" action="javascript:DoPost('/${CurrentYear}/exchange/Ask${Type}/${Exch.exch_id}/deal');"></form> | |||||
| % elif Exch.exch_state=='Proposal': | % elif Exch.exch_state=='Proposal': | ||||
| <form id="ModalForm" action="javascript:DoPost('/2015/exchange/Prop${Type}/${Exch.exch_id}/deal');"></form> | |||||
| <form id="ModalForm" action="javascript:DoPost('/${CurrentYear}/exchange/Prop${Type}/${Exch.exch_id}/deal');"></form> | |||||
| % endif | % endif | ||||
| </div> | </div> | ||||
| <div class="modal-footer"> | <div class="modal-footer"> | ||||
| @@ -100,7 +100,7 @@ | |||||
| <small style="color:#999">Si je n´ai pas trouvé le lieu dont j´ai besoin dans ces listes...</small> | <small style="color:#999">Si je n´ai pas trouvé le lieu dont j´ai besoin dans ces listes...</small> | ||||
| <br /> | <br /> | ||||
| <small style="color:#999">Je peux </small> | <small style="color:#999">Je peux </small> | ||||
| <a class="btn btn-mini btn-info" role="button" href="javascript:DoGetLieu('/2015/modal/Place/0');"> | |||||
| <a class="btn btn-mini btn-info" role="button" href="javascript:DoGetLieu('/${CurrentYear}/modal/Place/0');"> | |||||
| <i class="icon-plus-sign icon-white"></i> Ajouter un lieu | <i class="icon-plus-sign icon-white"></i> Ajouter un lieu | ||||
| </a> | </a> | ||||
| </div> | </div> | ||||
| @@ -124,7 +124,7 @@ | |||||
| <small style="color:#999">Si je n´ai pas trouvé le lieu dont j´ai besoin dans ces listes...</small> | <small style="color:#999">Si je n´ai pas trouvé le lieu dont j´ai besoin dans ces listes...</small> | ||||
| <br /> | <br /> | ||||
| <small style="color:#999">Je peux </small> | <small style="color:#999">Je peux </small> | ||||
| <a class="btn btn-mini btn-info" role="button" href="javascript:DoGetLieu('/2015/modal/Place/0');"> | |||||
| <a class="btn btn-mini btn-info" role="button" href="javascript:DoGetLieu('/${CurrentYear}/modal/Place/0');"> | |||||
| <i class="icon-plus-sign icon-white"></i> Ajouter un lieu | <i class="icon-plus-sign icon-white"></i> Ajouter un lieu | ||||
| </a> | </a> | ||||
| </div> | </div> | ||||
| @@ -33,7 +33,7 @@ | |||||
| ${helper.DisplayForm(form, DicFormat)} | ${helper.DisplayForm(form, DicFormat)} | ||||
| NB: Vous devez faire une proposition différente pour chaque nuit que vous proposez. | NB: Vous devez faire une proposition différente pour chaque nuit que vous proposez. | ||||
| <br> | <br> | ||||
| <a class="btn btn-mini btn-info" role="button" href="javascript:DoGetLieu('/2015/modal/Place/0');"> | |||||
| <a class="btn btn-mini btn-info" role="button" href="javascript:DoGetLieu('/${CurrentYear}/modal/Place/0');"> | |||||
| <i class="icon-plus-sign icon-white"></i> Indiquer l'adresse proposée. | <i class="icon-plus-sign icon-white"></i> Indiquer l'adresse proposée. | ||||
| </a> | </a> | ||||
| </%def> \ | </%def> \ | ||||
| @@ -156,8 +156,8 @@ elif Type=='M': | |||||
| % endif | % endif | ||||
| % if item.exch_type=="C": | % if item.exch_type=="C": | ||||
| un co-voiturage le ${item.start_time.strftime('%a %d %b vers %Hh%M').decode('utf-8')} | un co-voiturage le ${item.start_time.strftime('%a %d %b vers %Hh%M').decode('utf-8')} | ||||
| de <a href="javascript:DoGetLieu('/2015/modal/Place/${item.Itin.start.place_id}')">${item.Itin.start.display_name}</a> | |||||
| à <a href="javascript:DoGetLieu('/2015/modal/Place/${item.Itin.arrival.place_id}')">${item.Itin.arrival.display_name}</a> | |||||
| de <a href="javascript:DoGetLieu('/${CurrentYear}/modal/Place/${item.Itin.start.place_id}')">${item.Itin.start.display_name}</a> | |||||
| à <a href="javascript:DoGetLieu('/${CurrentYear}/modal/Place/${item.Itin.arrival.place_id}')">${item.Itin.arrival.display_name}</a> | |||||
| % elif item.exch_type=="M": | % elif item.exch_type=="M": | ||||
| % if item.Category: | % if item.Category: | ||||
| <i>${item.Category.exch_subtype}</i> | <i>${item.Category.exch_subtype}</i> | ||||
| @@ -181,12 +181,12 @@ elif Type=='M': | |||||
| <td style="vertical-align: middle;"> | <td style="vertical-align: middle;"> | ||||
| % if item.provider_id==request.user.uid or item.asker_id==request.user.uid: | % if item.provider_id==request.user.uid or item.asker_id==request.user.uid: | ||||
| <a class="btn btn-mini btn-primary" style="float:right" | <a class="btn btn-mini btn-primary" style="float:right" | ||||
| href="javascript:DoGet('/2015/modal/Show${Type}/${item.exch_id}')"> | |||||
| href="javascript:DoGet('/${CurrentYear}/modal/Show${Type}/${item.exch_id}')"> | |||||
| <i class="icon-search icon-white"></i> | <i class="icon-search icon-white"></i> | ||||
| </a> | </a> | ||||
| % elif (item.provider_id and item.asker_id): | % elif (item.provider_id and item.asker_id): | ||||
| <a class="btn btn-mini btn-primary" style="float:right" | <a class="btn btn-mini btn-primary" style="float:right" | ||||
| href="javascript:DoGet('/2015/modal/Show${Type}/${item.exch_id}')"> | |||||
| href="javascript:DoGet('/${CurrentYear}/modal/Show${Type}/${item.exch_id}')"> | |||||
| <i class="icon-search icon-white"></i> | <i class="icon-search icon-white"></i> | ||||
| </a> <br/> <br/> | </a> <br/> <br/> | ||||
| ## <a id="Ask${Type}-${item.exch_id}" | ## <a id="Ask${Type}-${item.exch_id}" | ||||
| @@ -200,11 +200,11 @@ elif Type=='M': | |||||
| ## <script>$("#Ask${Type}-${item.exch_id}").popover();</script> | ## <script>$("#Ask${Type}-${item.exch_id}").popover();</script> | ||||
| % else: | % else: | ||||
| <a class="btn btn-mini btn-primary" style="float:right" | <a class="btn btn-mini btn-primary" style="float:right" | ||||
| href="javascript:DoGet('/2015/modal/Show${Type}/${item.exch_id}')"> | |||||
| href="javascript:DoGet('/${CurrentYear}/modal/Show${Type}/${item.exch_id}')"> | |||||
| <i class="icon-search icon-white"></i> | <i class="icon-search icon-white"></i> | ||||
| </a> <br/> <br/> | </a> <br/> <br/> | ||||
| ## <a class="btn btn-mini btn-primary" style="float:right" | ## <a class="btn btn-mini btn-primary" style="float:right" | ||||
| ## href="javascript:DoGet('/2015/exchange/Ask${Type}/${item.exch_id}/deal')"> | |||||
| ## href="javascript:DoGet('/${CurrentYear}/exchange/Ask${Type}/${item.exch_id}/deal')"> | |||||
| ## <i class="icon-random icon-white"></i> | ## <i class="icon-random icon-white"></i> | ||||
| ## </a> | ## </a> | ||||
| % endif | % endif | ||||
| @@ -24,7 +24,7 @@ elif Type=='M': | |||||
| <thead> | <thead> | ||||
| <tr> | <tr> | ||||
| <th colspan="3"><i class="${CurIcon}"></i> ${What}s ${CurTitle} | <th colspan="3"><i class="${CurIcon}"></i> ${What}s ${CurTitle} | ||||
| <a class="btn btn-mini btn-primary" Myhref="/2015/modal/${Form}${Type}/0" | |||||
| <a class="btn btn-mini btn-primary" Myhref="/${CurrentYear}/modal/${Form}${Type}/0" | |||||
| role="button" data-target="#AjaxModal" style="float:right" handle="modal"> | role="button" data-target="#AjaxModal" style="float:right" handle="modal"> | ||||
| <i class="icon-plus-sign icon-white"></i> Ajouter | <i class="icon-plus-sign icon-white"></i> Ajouter | ||||
| </a> | </a> | ||||
| @@ -53,44 +53,44 @@ elif Type=='M': | |||||
| <td> | <td> | ||||
| % if item.exch_done: | % if item.exch_done: | ||||
| <div class="btn-group"> | <div class="btn-group"> | ||||
| <a class="btn btn-small btn-success" href="javascript:DoGet('/2015/modal/Show${Type}/${item.exch_id}')"><i class="icon-ok icon-white"></i> Validé</a> | |||||
| <a class="btn btn-small btn-success" href="javascript:DoGet('/${CurrentYear}/modal/Show${Type}/${item.exch_id}')"><i class="icon-ok icon-white"></i> Validé</a> | |||||
| <a class="btn btn-small btn-success dropdown-toggle" data-toggle="dropdown" href="#"><span class="caret"></span></a> | <a class="btn btn-small btn-success dropdown-toggle" data-toggle="dropdown" href="#"><span class="caret"></span></a> | ||||
| <ul class="dropdown-menu"> | <ul class="dropdown-menu"> | ||||
| <li><a href="javascript:DoGet('/2015/modal/Show${Type}/${item.exch_id}')"><i class="icon-search"></i> Détails</a></li> | |||||
| <li><a href="javascript:DoGet('/${CurrentYear}/modal/Show${Type}/${item.exch_id}')"><i class="icon-search"></i> Détails</a></li> | |||||
| <li class="divider"></li> | <li class="divider"></li> | ||||
| <li><a href="javascript:DoGet('/2015/exchange/${Form}${Type}/${item.exch_id}/refuse')"><i class="icon-remove"></i> Annuler</a></li> | |||||
| <li><a href="javascript:DoGet('/${CurrentYear}/exchange/${Form}${Type}/${item.exch_id}/refuse')"><i class="icon-remove"></i> Annuler</a></li> | |||||
| </ul> | </ul> | ||||
| % elif getattr(item, You) is None: | % elif getattr(item, You) is None: | ||||
| <div class="btn-group"> | <div class="btn-group"> | ||||
| <a class="btn btn-small"><i class="icon-signal"></i> Publié</a> | <a class="btn btn-small"><i class="icon-signal"></i> Publié</a> | ||||
| <a class="btn btn-small dropdown-toggle" data-toggle="dropdown" href="#"><span class="caret"></span></a> | <a class="btn btn-small dropdown-toggle" data-toggle="dropdown" href="#"><span class="caret"></span></a> | ||||
| <ul class="dropdown-menu"> | <ul class="dropdown-menu"> | ||||
| <li><a href="javascript:DoGet('/2015/modal/${Form}${Type}/${item.exch_id}')"><i class="icon-pencil"></i> Modifier</a></li> | |||||
| <li><a href="javascript:DoGet('/2015/exchange/${Form}${Type}/${item.exch_id}/delete')"><i class="icon-trash"></i> Supprimer</a></li> | |||||
| <li><a href="javascript:DoGet('/${CurrentYear}/modal/${Form}${Type}/${item.exch_id}')"><i class="icon-pencil"></i> Modifier</a></li> | |||||
| <li><a href="javascript:DoGet('/${CurrentYear}/exchange/${Form}${Type}/${item.exch_id}/delete')"><i class="icon-trash"></i> Supprimer</a></li> | |||||
| </ul> | </ul> | ||||
| % elif getattr(item, Me)==request.user.uid and item.exch_state==CurKind: | % elif getattr(item, Me)==request.user.uid and item.exch_state==CurKind: | ||||
| Je ${What} <br> | Je ${What} <br> | ||||
| <div class="btn-group"> | <div class="btn-group"> | ||||
| <a class="btn btn-small btn-warning" href="javascript:DoGet('/2015/modal/Show${Type}/${item.exch_id}')"><i class="icon-question-sign icon-white"></i> Proposition</a> | |||||
| <a class="btn btn-small btn-warning" href="javascript:DoGet('/${CurrentYear}/modal/Show${Type}/${item.exch_id}')"><i class="icon-question-sign icon-white"></i> Proposition</a> | |||||
| <a class="btn btn-small btn-warning dropdown-toggle" data-toggle="dropdown" href="#"><span class="caret"></span></a> | <a class="btn btn-small btn-warning dropdown-toggle" data-toggle="dropdown" href="#"><span class="caret"></span></a> | ||||
| <ul class="dropdown-menu"> | <ul class="dropdown-menu"> | ||||
| <li><a href="javascript:DoGet('/2015/modal/Show${Type}/${item.exch_id}')"><i class="icon-search"></i> Détails</a></li> | |||||
| <li><a href="javascript:DoGet('/${CurrentYear}/modal/Show${Type}/${item.exch_id}')"><i class="icon-search"></i> Détails</a></li> | |||||
| <li class="divider"></li> | <li class="divider"></li> | ||||
| <li><a href="javascript:DoGet('/2015/exchange/${Form}${Type}/${item.exch_id}/accept')"><i class="icon-ok"></i> Accepter</a></li> | |||||
| <li><a href="javascript:DoGet('/2015/exchange/${Form}${Type}/${item.exch_id}/refuse')"><i class="icon-remove"></i> Refuser</a></li> | |||||
| <li><a href="javascript:DoGet('/${CurrentYear}/exchange/${Form}${Type}/${item.exch_id}/accept')"><i class="icon-ok"></i> Accepter</a></li> | |||||
| <li><a href="javascript:DoGet('/${CurrentYear}/exchange/${Form}${Type}/${item.exch_id}/refuse')"><i class="icon-remove"></i> Refuser</a></li> | |||||
| <li class="divider"></li> | <li class="divider"></li> | ||||
| <li><a href="javascript:DoGet('/2015/exchange/${Form}${Type}/${item.exch_id}/delete')"><i class="icon-trash"></i> Supprimer</a></li> | |||||
| <li><a href="javascript:DoGet('/${CurrentYear}/exchange/${Form}${Type}/${item.exch_id}/delete')"><i class="icon-trash"></i> Supprimer</a></li> | |||||
| </ul> | </ul> | ||||
| % elif getattr(item, Me)==request.user.uid: | % elif getattr(item, Me)==request.user.uid: | ||||
| Je ${What} <br> | Je ${What} <br> | ||||
| <div class="btn-group"> | <div class="btn-group"> | ||||
| <a class="btn btn-small btn-info" href="javascript:DoGet('/2015/modal/Show${Type}/${item.exch_id}')"><i class="icon-question-sign icon-white"></i> Négociation</a> | |||||
| <a class="btn btn-small btn-info" href="javascript:DoGet('/${CurrentYear}/modal/Show${Type}/${item.exch_id}')"><i class="icon-question-sign icon-white"></i> Négociation</a> | |||||
| <a class="btn btn-small btn-info dropdown-toggle" data-toggle="dropdown" href="#"><span class="caret"></span></a> | <a class="btn btn-small btn-info dropdown-toggle" data-toggle="dropdown" href="#"><span class="caret"></span></a> | ||||
| <ul class="dropdown-menu"> | <ul class="dropdown-menu"> | ||||
| <li><a href="javascript:DoGet('/2015/modal/Show${Type}/${item.exch_id}')"><i class="icon-search"></i> Détails</a></li> | |||||
| <li><a href="javascript:DoGet('/${CurrentYear}/modal/Show${Type}/${item.exch_id}')"><i class="icon-search"></i> Détails</a></li> | |||||
| <li><a href="#"><i class="icon-question-sign"></i> En Attente de réponse </a></li> | <li><a href="#"><i class="icon-question-sign"></i> En Attente de réponse </a></li> | ||||
| <li><a href="javascript:DoGet('/2015/exchange/${Form}${Type}/${item.exch_id}/refuse')"><i class="icon-remove"></i> Se désister </a></li> | |||||
| </ul> | |||||
| <li><a href="javascript:DoGet('/${CurrentYear}/exchange/${Form}${Type}/${item.exch_id}/refuse')"><i class="icon-remove"></i> Se désister </a></li> | |||||
| </ul> | |||||
| % endif | % endif | ||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| @@ -98,8 +98,8 @@ elif Type=='M': | |||||
| <td> | <td> | ||||
| %if Type=='C': | %if Type=='C': | ||||
| ${item.start_time.strftime('%A %d %b %Y').decode('utf-8')} vers ${item.start_time.strftime('%Hh%M')} | ${item.start_time.strftime('%A %d %b %Y').decode('utf-8')} vers ${item.start_time.strftime('%Hh%M')} | ||||
| de <a href="javascript:DoGetLieu('/2015/modal/Place/${item.Itin.start.place_id}')">${item.Itin.start.display_name}</a> | |||||
| à <a href="javascript:DoGetLieu('/2015/modal/Place/${item.Itin.arrival.place_id}')">${item.Itin.arrival.display_name}</a> | |||||
| de <a href="javascript:DoGetLieu('/${CurrentYear}/modal/Place/${item.Itin.start.place_id}')">${item.Itin.start.display_name}</a> | |||||
| à <a href="javascript:DoGetLieu('/${CurrentYear}/modal/Place/${item.Itin.arrival.place_id}')">${item.Itin.arrival.display_name}</a> | |||||
| %elif Type=='H': | %elif Type=='H': | ||||
| % if item.Category: | % if item.Category: | ||||
| <i>${item.Category.exch_subtype}</i>, | <i>${item.Category.exch_subtype}</i>, | ||||
| @@ -15,9 +15,9 @@ | |||||
| <br> | <br> | ||||
| <div class="center"> | <div class="center"> | ||||
| % if request.user and request.user.Staff: | % if request.user and request.user.Staff: | ||||
| <a href="/${year or 2015}/edit">Editer cette page</a> - | |||||
| <a href="/${year or CurrentYear}/edit">Editer cette page</a> - | |||||
| % endif | % endif | ||||
| <h4><a href="/${year or 2015}/le-programme">Le programme des événements ${year or 2015 }</a></h4> | |||||
| <h4><a href="/${year or CurrentYear}/le-programme">Le programme des événements ${year or CurrentYear }</a></h4> | |||||
| </div> | </div> | ||||
| <div class="row-fluid"> | <div class="row-fluid"> | ||||
| <div class="span10 offset1"> | <div class="span10 offset1"> | ||||
| @@ -105,7 +105,7 @@ ${helpers.DisplayRespForm(profil_form, DicFormB)} | |||||
| <tr class="row template" style="line-height:2.2em;"> | <tr class="row template" style="line-height:2.2em;"> | ||||
| <td style="text-align:center;"> | <td style="text-align:center;"> | ||||
| <input type="hidden" style="width:20em;" class="form-control" name="tiersship-{{row-count-placeholder}}-year_uid" | <input type="hidden" style="width:20em;" class="form-control" name="tiersship-{{row-count-placeholder}}-year_uid" | ||||
| value="2015" /> 2015 | |||||
| value="${CurrentYear}" /> ${CurrentYear} | |||||
| </td> | </td> | ||||
| <td style="text-align: center;"> | <td style="text-align: center;"> | ||||
| <input type="hidden" class="form-control" name="tiersship-{{row-count-placeholder}}-user_uid" | <input type="hidden" class="form-control" name="tiersship-{{row-count-placeholder}}-user_uid" | ||||
| @@ -150,7 +150,7 @@ fieldset:disabled { | |||||
| </button> | </button> | ||||
| % else: | % else: | ||||
| <button type="submit" class="btn btn-large btn-primary" /> | <button type="submit" class="btn btn-large btn-primary" /> | ||||
| <i class="icon-ok icon-white"></i> Je viens aux JM2L 2015 | |||||
| <i class="icon-ok icon-white"></i> Je viens aux JM2L ${CurrentYear} | |||||
| </button> | </button> | ||||
| % endif | % endif | ||||
| </div> | </div> | ||||
| @@ -14,7 +14,7 @@ | |||||
| <h2 class="shadow">Nous rejoindre ou nous joindre...</h2> | <h2 class="shadow">Nous rejoindre ou nous joindre...</h2> | ||||
| <div class="span10 offset1"> | <div class="span10 offset1"> | ||||
| <p>Le samedi 28 novembre 2015 d’où que vous veniez, tout est mis en place pour que vous | |||||
| <p>Le samedi 28 novembre ${CurrentYear} d’où que vous veniez, tout est mis en place pour que vous | |||||
| puissiez vous rendre en toute simplicité sur les lieux de l’événement. | puissiez vous rendre en toute simplicité sur les lieux de l’événement. | ||||
| <br> N'hésitez pas à utiliser la section covoiturage de votre profil. Et | <br> N'hésitez pas à utiliser la section covoiturage de votre profil. Et | ||||
| pas de panique ! Demain, ce sera pire... </p> | pas de panique ! Demain, ce sera pire... </p> | ||||
| @@ -1,7 +1,7 @@ | |||||
| <%inherit file="jm2l:templates/layout.mako"/> | <%inherit file="jm2l:templates/layout.mako"/> | ||||
| <%namespace name="helpers" file="jm2l:templates/helpers.mako"/> | <%namespace name="helpers" file="jm2l:templates/helpers.mako"/> | ||||
| <% | <% | ||||
| DisplayYear = request.session.get('year',2015) | |||||
| DisplayYear = request.session.get('year',CurrentYear) | |||||
| %> | %> | ||||
| % if request.user and request.user.Staff: | % if request.user and request.user.Staff: | ||||
| <a href="dossier-de-presse/edit">Modifier</a><br> | <a href="dossier-de-presse/edit">Modifier</a><br> | ||||
| @@ -50,7 +50,7 @@ DicForm = { | |||||
| 'name': {'PlaceHolder':u"Nom de la tâche", "FieldStyle":"width:90%;" }, | 'name': {'PlaceHolder':u"Nom de la tâche", "FieldStyle":"width:90%;" }, | ||||
| 'area_uid': {"FieldStyle":"width:16em;", 'ContainerStyle':"float:left;" }, | 'area_uid': {"FieldStyle":"width:16em;", 'ContainerStyle':"float:left;" }, | ||||
| 'closed_by': {"FieldStyle":"width:16em;", 'ContainerStyle':"float:left;" }, | 'closed_by': {"FieldStyle":"width:16em;", 'ContainerStyle':"float:left;" }, | ||||
| 'due_date': {'PlaceHolder':u"27/11/2015", "FieldStyle":"width:8em;"}, | |||||
| 'due_date': {'PlaceHolder':u"27/11/2017", "FieldStyle":"width:8em;"}, | |||||
| 'description': {'PlaceHolder':u"Description", "FieldStyle":"width:95%;min-height:150px;", "ckeditor":"1" }, | 'description': {'PlaceHolder':u"Description", "FieldStyle":"width:95%;min-height:150px;", "ckeditor":"1" }, | ||||
| } | } | ||||
| %> | %> | ||||
| @@ -23,7 +23,7 @@ | |||||
| <div id="SalleCarousel"> | <div id="SalleCarousel"> | ||||
| ${helpers.show_salles( Salles, form.salle_uid.data or form.salle_uid.choices and form.salle_uid.choices[0][0] )} | ${helpers.show_salles( Salles, form.salle_uid.data or form.salle_uid.choices and form.salle_uid.choices[0][0] )} | ||||
| </div> | </div> | ||||
| % if event.for_year==2015 and request.user and (request.user.Staff or request.user in event.intervenants): | |||||
| % if event.for_year==CurrentYear and request.user and (request.user.Staff or request.user in event.intervenants): | |||||
| <a class="btn btn-danger pull-right" type="button" href="${event.uid}/delete"> | <a class="btn btn-danger pull-right" type="button" href="${event.uid}/delete"> | ||||
| <i class="icon-remove icon-white"></i> Supprimer | <i class="icon-remove icon-white"></i> Supprimer | ||||
| </a> | </a> | ||||
| @@ -54,7 +54,7 @@ DicForm = { | |||||
| <td> | <td> | ||||
| <select class="form-control" style="width:5em;" name="membership-{{row-count-placeholder}}-year_uid" | <select class="form-control" style="width:5em;" name="membership-{{row-count-placeholder}}-year_uid" | ||||
| id="membership-{{row-count-placeholder}}-year_uid"> | id="membership-{{row-count-placeholder}}-year_uid"> | ||||
| % for year in range(2015, 2005, -1): | |||||
| % for year in range(CurrentYear, 2005, -1): | |||||
| <% | <% | ||||
| if year in [2014]: | if year in [2014]: | ||||
| continue | continue | ||||
| @@ -141,7 +141,7 @@ DicForm = { | |||||
| <td> | <td> | ||||
| <select class="form-control" style="width:5em;" name="roles-{{row-count-placeholder}}-year_uid" | <select class="form-control" style="width:5em;" name="roles-{{row-count-placeholder}}-year_uid" | ||||
| id="roles-{{row-count-placeholder}}-year_uid"> | id="roles-{{row-count-placeholder}}-year_uid"> | ||||
| % for year in range(2015, 2005, -1): | |||||
| % for year in range(CurrentYear, 2005, -1): | |||||
| <% | <% | ||||
| if year in [2014]: | if year in [2014]: | ||||
| continue | continue | ||||
| @@ -187,7 +187,7 @@ TabJs = {'select':[], 'desc':[]} | |||||
| <small style="color:#999">Si je n´ai pas trouvé le lieu dont j´ai besoin dans ces listes...</small> | <small style="color:#999">Si je n´ai pas trouvé le lieu dont j´ai besoin dans ces listes...</small> | ||||
| <br /> | <br /> | ||||
| <small style="color:#999">Je peux </small> | <small style="color:#999">Je peux </small> | ||||
| <a class="btn btn-mini btn-info" role="button" href="javascript:DoGetLieu('/2015/modal/Place/0');"> | |||||
| <a class="btn btn-mini btn-info" role="button" href="javascript:DoGetLieu('/${CurrentYear}/modal/Place/0');"> | |||||
| <i class="icon-plus-sign icon-white"></i> Ajouter un lieu | <i class="icon-plus-sign icon-white"></i> Ajouter un lieu | ||||
| </a> | </a> | ||||
| </div> | </div> | ||||
| @@ -453,7 +453,7 @@ TabJs = {'select':[], 'desc':[]} | |||||
| <% photos = uprofil.PhotosLinks %> | <% photos = uprofil.PhotosLinks %> | ||||
| <div style="text-align: center;line-height:20px;"><b>${request.user.slug}</b></div> | <div style="text-align: center;line-height:20px;"><b>${request.user.slug}</b></div> | ||||
| <div style="text-align: center;line-height:20px;"> | <div style="text-align: center;line-height:20px;"> | ||||
| <a data-target="#AjaxModal" Myhref="/2015/modal/Password/1" role="button" handle="modal">Changer mon mot de passe</a> | |||||
| <a data-target="#AjaxModal" Myhref="/${CurrentYear}/modal/Password/1" role="button" handle="modal">Changer mon mot de passe</a> | |||||
| </div> | </div> | ||||
| <div id="MyPictureCarousel" class="carousel slide"> | <div id="MyPictureCarousel" class="carousel slide"> | ||||
| % if len(photos)>1: | % if len(photos)>1: | ||||
| @@ -481,7 +481,7 @@ TabJs = {'select':[], 'desc':[]} | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| <div style="text-align: center;line-height:20px;"> | <div style="text-align: center;line-height:20px;"> | ||||
| <a data-target="#AjaxModal" Myhref="/2015/modal/UserPicture/${uprofil.uid}" handle="modal">Changer ma photo</a> | |||||
| <a data-target="#AjaxModal" Myhref="/${CurrentYear}/modal/UserPicture/${uprofil.uid}" handle="modal">Changer ma photo</a> | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| </%def> \ | </%def> \ | ||||
| @@ -1,6 +1,6 @@ | |||||
| <%inherit file="jm2l:templates/layout.mako"/> | <%inherit file="jm2l:templates/layout.mako"/> | ||||
| <p> | <p> | ||||
| Pour que l'évenement JM2L 2015 se passe dans les meilleures conditions | |||||
| Pour que l'évenement JM2L 2017 se passe dans les meilleures conditions | |||||
| possible. | possible. | ||||
| Il s'agit ici pour toi de te connecter et de compléter les formulaires, | 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 | d'essayer de les tenir à jour au fur et à meusure, de les compléter | ||||
| @@ -121,7 +121,7 @@ | |||||
| L'équipe des JM2L participe aux <u>frais de transport</u> des intervenants !<br /><br /> | L'équipe des JM2L participe aux <u>frais de transport</u> des intervenants !<br /><br /> | ||||
| Et bien oui, mais cette participation ne sera effective que si vous remplissez <u>toutes les conditions</u> suivantes: | Et bien oui, mais cette participation ne sera effective que si vous remplissez <u>toutes les conditions</u> suivantes: | ||||
| <ul style="list-style:circle;"> | <ul style="list-style:circle;"> | ||||
| <li>Vous animez <strong>un atelier, une conférence ou une table ronde</strong> aux JM2L 2015.</li> | |||||
| <li>Vous animez <strong>un atelier, une conférence ou une table ronde</strong> aux JM2L ${CurrentYear}.</li> | |||||
| <li>Votre fiche est renseignée avec <strong>votre RIB</strong>.</li> | <li>Votre fiche est renseignée avec <strong>votre RIB</strong>.</li> | ||||
| <li>Votre fiche est renseignée avec <strong>les preuves</strong> de vos achats.</li> | <li>Votre fiche est renseignée avec <strong>les preuves</strong> de vos achats.</li> | ||||
| <li>Vous <strong>présentez l'original de vos tickets</strong> à l'accueil pendant l'évènement.</li> | <li>Vous <strong>présentez l'original de vos tickets</strong> à l'accueil pendant l'évènement.</li> | ||||
| @@ -2,7 +2,7 @@ | |||||
| <html> | <html> | ||||
| <%namespace name="helpers" file="jm2l:templates/helpers.mako"/> | <%namespace name="helpers" file="jm2l:templates/helpers.mako"/> | ||||
| <head> | <head> | ||||
| <title>JM2L 2015</title> | |||||
| <title>JM2L 2017</title> | |||||
| <meta charset="utf-8"> | <meta charset="utf-8"> | ||||
| <meta name="keywords" content="python web application" /> | <meta name="keywords" content="python web application" /> | ||||
| <meta name="description" content="jm2l LinuxAzur journée méditéranéenne logiciel libre" /> | <meta name="description" content="jm2l LinuxAzur journée méditéranéenne logiciel libre" /> | ||||
| @@ -28,7 +28,7 @@ | |||||
| <body> | <body> | ||||
| <% | <% | ||||
| context._kwargs['postpone_js']=[] | context._kwargs['postpone_js']=[] | ||||
| DisplayYear = request.session.get('year', 2015) | |||||
| DisplayYear = request.session.get('year', 2017) | |||||
| %> | %> | ||||
| <%def name="jsAddOn_head()"></%def> | <%def name="jsAddOn_head()"></%def> | ||||
| <%def name="jsAddOn()"></%def> | <%def name="jsAddOn()"></%def> | ||||
| @@ -37,7 +37,7 @@ ${helpers.uploader_js()} | |||||
| <div id="wrap"> | <div id="wrap"> | ||||
| <div id="top"> | <div id="top"> | ||||
| % if DisplayYear!=2015: | |||||
| % if DisplayYear!=2017: | |||||
| <div class="align-center" style="background: url( ${'/img/%s/headerbg.png' % DisplayYear} ) repeat-x scroll 0 top #ffffff;"> | <div class="align-center" style="background: url( ${'/img/%s/headerbg.png' % DisplayYear} ) repeat-x scroll 0 top #ffffff;"> | ||||
| <a href="${"/%s/" % DisplayYear}"> | <a href="${"/%s/" % DisplayYear}"> | ||||
| <div style="height:215px;background: url( ${"/img/%s/logo.png" % DisplayYear} ) no-repeat scroll center center transparent"> | <div style="height:215px;background: url( ${"/img/%s/logo.png" % DisplayYear} ) no-repeat scroll center center transparent"> | ||||
| @@ -52,32 +52,24 @@ ${helpers.uploader_js()} | |||||
| <div class="carousel-inner" role="listbox"> | <div class="carousel-inner" role="listbox"> | ||||
| <div class="item ${["","active"][request.user and request.user.vote_logo==1 or request.user is None]}"> | <div class="item ${["","active"][request.user and request.user.vote_logo==1 or request.user is None]}"> | ||||
| <a href="/"> | <a href="/"> | ||||
| <div style="height:215px;background: url(/img/2015/logo.png) no-repeat scroll center transparent"></div> | |||||
| <div style="height:215px;background: url(/img/2017/logo.png) no-repeat scroll center transparent"></div> | |||||
| </a> | </a> | ||||
| </div> | </div> | ||||
| <div class="item ${["","active"][request.user and request.user.vote_logo==2 or 0]}"> | <div class="item ${["","active"][request.user and request.user.vote_logo==2 or 0]}"> | ||||
| <a href="/"> | <a href="/"> | ||||
| <div style="height:215px;background: url(/img/2015/logo_1.png) no-repeat scroll center transparent"></div> | |||||
| <div style="height:215px;background: url(/img/2017/logo_1.png) no-repeat scroll center transparent"></div> | |||||
| </a> | </a> | ||||
| </div> | </div> | ||||
| <div class="item ${["","active"][request.user and request.user.vote_logo==3 or 0]}"> | |||||
| <a href="/"> | |||||
| <div style="height:215px;background: url(/img/2015/logo_2.png) no-repeat scroll center transparent"></div> | |||||
| </a> | |||||
| </div> | |||||
| <div class="item ${["","active"][request.user and request.user.vote_logo==4 or 0]}"> | |||||
| <a href="/"> | |||||
| <div style="height:215px;background: url(/img/2015/logo_3.png) no-repeat scroll center transparent"></div> | |||||
| </a> | |||||
| </div> | |||||
| % if request.user and request.user.vote_logo not in [1,2,3,4]: | |||||
| % if request.user and request.user.vote_logo not in [1,2]: | |||||
| <div class="item active"> | <div class="item active"> | ||||
| <div class="align-center"> | <div class="align-center"> | ||||
| <H1>JM2L 2015</H1> | |||||
| <H1>JM2L 2017</H1> | |||||
| <H2> « Do It Yourself »</H2> | <H2> « Do It Yourself »</H2> | ||||
| <h3>Choisissez ici votre logo préféré !</h3> | <h3>Choisissez ici votre logo préféré !</h3> | ||||
| <p>Utilisez les flèches pour choisir et voter !<br> | <p>Utilisez les flèches pour choisir et voter !<br> | ||||
| Vous pouvez changer à tout moment, mais vous n'aurez droit qu'a un seul choix, le vôtre ;)</p> | Vous pouvez changer à tout moment, mais vous n'aurez droit qu'a un seul choix, le vôtre ;)</p> | ||||
| <p>Vous souhaitez proposer le vôtre ? <br> | |||||
| N'hésitez pas à envoyer vos propositions par mail à l'équipe !</p> | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| % endif | % endif | ||||
| @@ -109,8 +101,8 @@ ${helpers.uploader_js()} | |||||
| <a class="btn dropdown-toggle" data-toggle="dropdown" href="#"> | <a class="btn dropdown-toggle" data-toggle="dropdown" href="#"> | ||||
| Archives <span class="caret"></span></a> | Archives <span class="caret"></span></a> | ||||
| <ul class="dropdown-menu pull-right" style="min-width:0"> | <ul class="dropdown-menu pull-right" style="min-width:0"> | ||||
| % for tmpyear in range(2015, 2005, -1): | |||||
| % if tmpyear!=2014: | |||||
| % for tmpyear in range(2017, 2005, -1): | |||||
| % if tmpyear!=2014 and tmpyear!=2016: | |||||
| <li><a href="/year/${tmpyear}">${tmpyear}</a></li> | <li><a href="/year/${tmpyear}">${tmpyear}</a></li> | ||||
| % endif | % endif | ||||
| % endfor | % endfor | ||||
| @@ -192,7 +184,7 @@ ${helpers.uploader_js()} | |||||
| <footer class="footer"> | <footer class="footer"> | ||||
| <div class="container"> | <div class="container"> | ||||
| <h4>JM2L 2005-2015</h4> | |||||
| <h4>JM2L 2005-2017</h4> | |||||
| <p> | <p> | ||||
| Concocté par <a href="http://www.linux-azur.org/">Linux Azur</a> ~ | Concocté par <a href="http://www.linux-azur.org/">Linux Azur</a> ~ | ||||
| <a href="http://creativecommons.org/licenses/by-sa/4.0/">CopyFriendly</a> | <a href="http://creativecommons.org/licenses/by-sa/4.0/">CopyFriendly</a> | ||||
| @@ -25,11 +25,11 @@ | |||||
| <div class="tab-content"> | <div class="tab-content"> | ||||
| <div class="tab-pane fade active in" id="Place_Address"> | <div class="tab-pane fade active in" id="Place_Address"> | ||||
| % if update: | % if update: | ||||
| <form id="ModalPlaceForm" action="javascript:DoPostLieu('/2015/modal/Place/${form.place_id.data}');" style='margin:0;'> | |||||
| <form id="ModalPlaceForm" action="javascript:DoPostLieu('/${CurrentYear}/modal/Place/${form.place_id.data}');" style='margin:0;'> | |||||
| ${form.place_id()} | ${form.place_id()} | ||||
| ${form.csrf_token} | ${form.csrf_token} | ||||
| % else: | % else: | ||||
| <form id="ModalPlaceForm" action="javascript:DoPostLieu('/2015/modal/Place/0');" style='margin:0;'> | |||||
| <form id="ModalPlaceForm" action="javascript:DoPostLieu('/${CurrentYear}/modal/Place/0');" style='margin:0;'> | |||||
| ${form.csrf_token} | ${form.csrf_token} | ||||
| % endif | % endif | ||||
| @@ -153,7 +153,7 @@ | |||||
| </div> | </div> | ||||
| <div class="modal-footer"> | <div class="modal-footer"> | ||||
| <button class="btn" data-dismiss="modal" aria-hidden="true">Annuler</button> | <button class="btn" data-dismiss="modal" aria-hidden="true">Annuler</button> | ||||
| <button class="btn btn-primary" onclick="javascript:DoPost('/2015/modal/UserPicture/${uid}');">Enregistrer les modifications</button> | |||||
| <button class="btn btn-primary" onclick="javascript:DoPost('/${CurrentYear}/modal/UserPicture/${uid}');">Enregistrer les modifications</button> | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| </%def> \ | </%def> \ | ||||
| @@ -165,7 +165,7 @@ | |||||
| <h3>Changer mon mot de passe</h3> | <h3>Changer mon mot de passe</h3> | ||||
| </div> | </div> | ||||
| <div class="modal-body"> | <div class="modal-body"> | ||||
| <form id="ModalForm" action="javascript:DoPost('/2015/modal/Password/${uid}');" style='margin:0;'> | |||||
| <form id="ModalForm" action="javascript:DoPost('/${CurrentYear}/modal/Password/${uid}');" style='margin:0;'> | |||||
| <div class="description">Votre identifiant est <b>${request.user.slug}</b> | <div class="description">Votre identifiant est <b>${request.user.slug}</b> | ||||
| <div class="description">Pour modifier le mot de passe actuel, | <div class="description">Pour modifier le mot de passe actuel, | ||||
| entrez un nouveau mot de passe dans chacune des deux zones de texte. | entrez un nouveau mot de passe dans chacune des deux zones de texte. | ||||
| @@ -7,7 +7,7 @@ $('#AjaxModal').modal("hide"); | |||||
| % if modtype in ['AskC', 'PropC', 'ShowC']: | % if modtype in ['AskC', 'PropC', 'ShowC']: | ||||
| $.ajax({ | $.ajax({ | ||||
| url:'/2015/exchange/AskC/0/refresh', | |||||
| url:'/${CurrentYear}/exchange/AskC/0/refresh', | |||||
| success:function(result, status, jqXHR){ | success:function(result, status, jqXHR){ | ||||
| var pubresult = $('<div />').append(result).find('#MissingCTable').html(); | var pubresult = $('<div />').append(result).find('#MissingCTable').html(); | ||||
| $('#MissingCTable').html(pubresult); | $('#MissingCTable').html(pubresult); | ||||
| @@ -27,7 +27,7 @@ $.ajax({ | |||||
| }); | }); | ||||
| % elif modtype in ['AskM', 'PropM', 'ShowM']: | % elif modtype in ['AskM', 'PropM', 'ShowM']: | ||||
| $.ajax({ | $.ajax({ | ||||
| url:'/2015/exchange/AskM/0/refresh', | |||||
| url:'/${CurrentYear}/exchange/AskM/0/refresh', | |||||
| success:function(result, status, jqXHR){ | success:function(result, status, jqXHR){ | ||||
| var pubresult = $('<div />').append(result).find('#MissingMTable').html(); | var pubresult = $('<div />').append(result).find('#MissingMTable').html(); | ||||
| $('#MissingCTable').html(pubresult); | $('#MissingCTable').html(pubresult); | ||||
| @@ -46,7 +46,7 @@ $.ajax({ | |||||
| }); | }); | ||||
| % elif modtype in ['AskH', 'PropH', 'ShowH']: | % elif modtype in ['AskH', 'PropH', 'ShowH']: | ||||
| $.ajax({ | $.ajax({ | ||||
| url:'/2015/exchange/AskH/0/refresh', | |||||
| url:'/${CurrentYear}/exchange/AskH/0/refresh', | |||||
| success:function(result, status, jqXHR){ | success:function(result, status, jqXHR){ | ||||
| var pubresult = $('<div />').append(result).find('#MissingHTable').html(); | var pubresult = $('<div />').append(result).find('#MissingHTable').html(); | ||||
| $('#MissingHTable').html(pubresult); | $('#MissingHTable').html(pubresult); | ||||
| @@ -16,7 +16,7 @@ | |||||
| ${event.start_time.strftime('%d %b %Y').decode('utf-8')} - | ${event.start_time.strftime('%d %b %Y').decode('utf-8')} - | ||||
| ${event.start_time.strftime('%H:%M')} à ${event.end_time.strftime('%H:%M')} | ${event.start_time.strftime('%H:%M')} à ${event.end_time.strftime('%H:%M')} | ||||
| </div> | </div> | ||||
| % if event.for_year==2015 and request.user and (request.user.Staff or request.user in event.intervenants): | |||||
| % if event.for_year==CurrentYear and request.user and (request.user.Staff or request.user in event.intervenants): | |||||
| <a href="/MesJM2L/${event.for_year}/${event.event_type.replace(' ', '_')}/${event.slug}">Modifier</a> | <a href="/MesJM2L/${event.for_year}/${event.event_type.replace(' ', '_')}/${event.slug}">Modifier</a> | ||||
| % elif request.user and request.user.Staff: | % elif request.user and request.user.Staff: | ||||
| <a href="/MesJM2L/${event.for_year}/${event.event_type.replace(' ', '_')}/${event.slug}">Editer</a> | <a href="/MesJM2L/${event.for_year}/${event.event_type.replace(' ', '_')}/${event.slug}">Editer</a> | ||||
| @@ -8,8 +8,8 @@ from reportlab.pdfbase import pdfmetrics | |||||
| from reportlab.pdfbase.ttfonts import TTFont | from reportlab.pdfbase.ttfonts import TTFont | ||||
| from reportlab.lib.units import mm | from reportlab.lib.units import mm | ||||
| from .upload import MediaPath | from .upload import MediaPath | ||||
| from jm2l.const import CurrentYear | |||||
| CurrentYear = 2015 | |||||
| # Create PDF container | # Create PDF container | ||||
| EXPIRATION_TIME = 300 # seconds | EXPIRATION_TIME = 300 # seconds | ||||
| WIDTH = 210 * mm | WIDTH = 210 * mm | ||||
| @@ -13,8 +13,8 @@ import cStringIO as StringIO | |||||
| # Database access imports | # Database access imports | ||||
| from .models import User, Place, Tiers, Event, SallePhy | from .models import User, Place, Tiers, Event, SallePhy | ||||
| from .blenderthumbnailer import blend_extract_thumb, write_png | from .blenderthumbnailer import blend_extract_thumb, write_png | ||||
| from jm2l.const import CurrentYear | |||||
| CurrentYear = 2015 | |||||
| MIN_FILE_SIZE = 1 # bytes | MIN_FILE_SIZE = 1 # bytes | ||||
| MAX_FILE_SIZE = 500000000 # bytes | MAX_FILE_SIZE = 500000000 # bytes | ||||
| IMAGE_TYPES = re.compile('image/(gif|p?jpeg|(x-)?png)') | IMAGE_TYPES = re.compile('image/(gif|p?jpeg|(x-)?png)') | ||||
| @@ -5,6 +5,7 @@ from pyramid.renderers import render_to_response | |||||
| from pyramid.view import notfound_view_config, forbidden_view_config | from pyramid.view import notfound_view_config, forbidden_view_config | ||||
| from pyramid.view import view_config | from pyramid.view import view_config | ||||
| from mako.template import Template | from mako.template import Template | ||||
| from pyramid_mailer.message import Message | |||||
| from .upload import IMAGEPATH | from .upload import IMAGEPATH | ||||
| # Import Web Forms | # Import Web Forms | ||||
| from .forms import * | from .forms import * | ||||
| @@ -26,8 +27,7 @@ import datetime | |||||
| import re | import re | ||||
| import shutil | import shutil | ||||
| import glob | import glob | ||||
| CurrentYear = 2015 | |||||
| from jm2l.const import CurrentYear | |||||
| ## =-=- Here, We keep some usefull function -=-= | ## =-=- Here, We keep some usefull function -=-= | ||||
| def remove_accents(input_str): | def remove_accents(input_str): | ||||
| @@ -359,6 +359,8 @@ def index_page(request): | |||||
| return {'year': year, 'content':content, 'edition':u"1<sup>ère</sup>" } | return {'year': year, 'content':content, 'edition':u"1<sup>ère</sup>" } | ||||
| elif year==2015: | elif year==2015: | ||||
| return {'year': year, 'content':content, 'edition':u"9<sup>ème</sup>" } | return {'year': year, 'content':content, 'edition':u"9<sup>ème</sup>" } | ||||
| elif year==2017: | |||||
| return {'year': year, 'content':content, 'edition':u"10<sup>ème</sup>" } | |||||
| else: | else: | ||||
| edition = year - 2005 | edition = year - 2005 | ||||
| return {'year': year, 'content':content, 'edition':u"%d<sup>ème</sup>" % edition } | return {'year': year, 'content':content, 'edition':u"%d<sup>ème</sup>" % edition } | ||||
| @@ -366,13 +368,13 @@ def index_page(request): | |||||
| raise HTTPNotFound() | raise HTTPNotFound() | ||||
| else: | else: | ||||
| content = DBSession.query(JM2L_Year).filter(JM2L_Year.year_uid==CurrentYear).first().description | content = DBSession.query(JM2L_Year).filter(JM2L_Year.year_uid==CurrentYear).first().description | ||||
| TargetDir = "jm2l/static/img/%s/Photos" % (year or 2015) | |||||
| TargetUrl = "/static/img/%s/Photos/" % (year or 2015) | |||||
| TargetDir = "jm2l/static/img/%s/Photos" % (year or CurrentYear) | |||||
| TargetUrl = "/static/img/%s/Photos/" % (year or CurrentYear) | |||||
| if path.isdir(TargetDir): | if path.isdir(TargetDir): | ||||
| ListPhotos = map(lambda x: TargetUrl + x, listdir(TargetDir)) | ListPhotos = map(lambda x: TargetUrl + x, listdir(TargetDir)) | ||||
| else: | else: | ||||
| ListPhotos = [] | ListPhotos = [] | ||||
| return {'year': CurrentYear, 'content':content, 'edition':u"9<sup>ème</sup>", 'ListPhotos': ListPhotos} | |||||
| return {'year': CurrentYear, 'content':content, 'edition':u"10<sup>ème</sup>", 'ListPhotos': ListPhotos} | |||||
| @view_config(route_name='edit_index', renderer="jm2l:templates/Staff/EditIndex.mako") | @view_config(route_name='edit_index', renderer="jm2l:templates/Staff/EditIndex.mako") | ||||
| def edit_index(request): | def edit_index(request): | ||||
| @@ -438,7 +440,7 @@ def edit_presse(request): | |||||
| @view_config(route_name='plan', renderer="jm2l:templates/Public/Plan.mako") | @view_config(route_name='plan', renderer="jm2l:templates/Public/Plan.mako") | ||||
| def static_plan(request): | def static_plan(request): | ||||
| session = request.session | session = request.session | ||||
| session['year'] = 2015 | |||||
| session['year'] = CurrentYear | |||||
| MainTab = {'plan':'active', "logged_in":request.authenticated_userid } | MainTab = {'plan':'active', "logged_in":request.authenticated_userid } | ||||
| return MainTab | return MainTab | ||||
| @@ -1202,7 +1204,7 @@ def Modal(request): | |||||
| @view_config(route_name='participer', renderer="jm2l:templates/Participer.mako") | @view_config(route_name='participer', renderer="jm2l:templates/Participer.mako") | ||||
| def participer(request): | def participer(request): | ||||
| session = request.session | session = request.session | ||||
| session['year'] = 2015 | |||||
| session['year'] = CurrentYear | |||||
| TmpUsr = User() | TmpUsr = User() | ||||
| form = UserRegisterForm(request.POST, TmpUsr, meta={'csrf_context': request.session}) | form = UserRegisterForm(request.POST, TmpUsr, meta={'csrf_context': request.session}) | ||||
| MyLink=None | MyLink=None | ||||