diff --git a/jm2l/__init__.py b/jm2l/__init__.py index 01b1148..0301231 100644 --- a/jm2l/__init__.py +++ b/jm2l/__init__.py @@ -13,7 +13,6 @@ import locale def main(global_config, **settings): """ This function returns a Pyramid WSGI application. """ - locale.setlocale(locale.LC_ALL, "fr_FR.UTF-8") engine = engine_from_config(settings, 'sqlalchemy.') DBSession.configure(bind=engine) @@ -54,12 +53,14 @@ def main(global_config, **settings): # Session setting Routes config.add_route('year', '/year/{year:\d+}') + config.add_route('vote_logo', '/vote_logo/{num:\d+}') # HTML Routes - Staff config.add_route('list_task', '/Staff') config.add_route('handle_pole', '/Staff/poles{sep:/*}{pole_id:(\d+)?}') config.add_route('handle_task', '/Staff/tasks{sep:/*}{task_id:(\d+)?}') config.add_route('action_task', '/Staff/{action:(\w+)}/{task_id:(\d+)}') + config.add_route('action_task_area', '/Staff/pole/{action:(\w+)}/{pole_id:(\d+)}') # HTML Routes - Public config.add_route('home', '/') diff --git a/jm2l/models.py b/jm2l/models.py index fe56d9b..c57783b 100644 --- a/jm2l/models.py +++ b/jm2l/models.py @@ -62,6 +62,8 @@ class Tasks(Base): description = Column(UnicodeText) area = relationship(TasksArea, backref=backref("tasks") ) + assignee = relationship('User', backref=backref("task_assoc") ) + @classmethod def by_id(cls, id): return DBSession.query(cls).filter(cls.uid == id).first() @@ -122,14 +124,15 @@ class User(Base): fonction = Column(Unicode(80)) website = Column(Unicode(100)) phone = Column(Unicode(10)) - created = Column(DateTime, default=datetime.datetime.now) + created = Column(DateTime, default=datetime.datetime.now) last_logged = Column(DateTime, default=datetime.datetime.now) last_change = Column(DateTime, default=datetime.datetime.now) active = Column(Integer, default=1) - bio = Column(UnicodeText) - gpg_key = Column(UnicodeText) + bio = Column(UnicodeText) + gpg_key = Column(UnicodeText) soc_link = Column(UnicodeText) Staff = Column(Integer, default=0) + vote_logo = Column(Integer, default=0) # relations tiers = relationship('Tiers', secondary='user_tiers_link' ) events = relationship('Event', secondary='user_event_link' ) diff --git a/jm2l/scripts/initializedb.py b/jm2l/scripts/initializedb.py index 38776dd..8f93e52 100644 --- a/jm2l/scripts/initializedb.py +++ b/jm2l/scripts/initializedb.py @@ -17,7 +17,10 @@ from pyramid.paster import ( get_appsettings, setup_logging, ) - +from string import printable +from random import choice + + from jm2l.models import * from datetime import datetime @@ -37,7 +40,8 @@ def main(argv=sys.argv): engine = engine_from_config(settings, 'sqlalchemy.') DBSession.configure(bind=engine) Base.metadata.create_all(engine) - with transaction.manager: + if 0: + with transaction.manager: admin = User(nom=u'jm2l', prenom='contact', slug='contact jm2l', password=u'jm2l', mail=u'contact@jm2l.linux-azur.org', @@ -64,4 +68,15 @@ def main(argv=sys.argv): salle = Salles(name=u"Mystère", description=u"Salle Mystère", phy_salle_id = phy_salle.uid, year_uid = jm2l.year_uid) - DBSession.add(salle) \ No newline at end of file + DBSession.add(salle) + + with transaction.manager: + # Re-Generate passwords + for u in DBSession.query(User).filter(User.Staff==None): + # Fix empty fields + password = ''.join(choice(printable[:-6]) for _ in range(12)) + u.password = password + u.Staff = 0 + DBSession.merge(u) + print u.nom, u.prenom, u.Staff + \ No newline at end of file diff --git a/jm2l/static/img/error403.png b/jm2l/static/img/error403.png new file mode 100644 index 0000000..e344bf3 Binary files /dev/null and b/jm2l/static/img/error403.png differ diff --git a/jm2l/static/js/jm2l.js b/jm2l/static/js/jm2l.js index a700c4a..0ea6453 100644 --- a/jm2l/static/js/jm2l.js +++ b/jm2l/static/js/jm2l.js @@ -183,3 +183,4 @@ $(document).ready(function() { }); }); + diff --git a/jm2l/static/404.html b/jm2l/templates/Errors/403.mako similarity index 79% rename from jm2l/static/404.html rename to jm2l/templates/Errors/403.mako index 8d7925a..7c0d8f5 100644 --- a/jm2l/static/404.html +++ b/jm2l/templates/Errors/403.mako @@ -34,7 +34,7 @@ p { margin: 0 auto; - width: 280px; + width: 380px; } @media only screen and (max-width: 280px) { @@ -53,8 +53,13 @@
-Sorry, but the page you were trying to view does not exist.
+ +${reason}
+ % else: +Vous n'êtes pas authentifié, ou n'avez pas les autorisations nécessaires.
+ % endif