diff --git a/Brie/brie/controllers/auth.py b/Brie/brie/controllers/auth.py index 51e141f..3d81dd9 100644 --- a/Brie/brie/controllers/auth.py +++ b/Brie/brie/controllers/auth.py @@ -174,10 +174,14 @@ class LoginRestController(RestController): residence_dn = Residences.get_dn_by_name(anon_user, residence) + residences = Residences.get_residences(anon_user) + if residence_dn is None: return dict( + residences = residences, login = username, - error = "erreur de résidence" + residence = residence, + error = u"erreur de résidence" ) #end if @@ -187,8 +191,6 @@ class LoginRestController(RestController): redirect("/") #end if - residences = Residences.get_residences(anon_user) - return dict( residences = residences, login = username, diff --git a/Brie/brie/controllers/rooms.py b/Brie/brie/controllers/rooms.py index 19519fa..f647379 100644 --- a/Brie/brie/controllers/rooms.py +++ b/Brie/brie/controllers/rooms.py @@ -12,9 +12,6 @@ from brie.model.ldap import * from brie.controllers import auth from brie.controllers.auth import AuthenticatedBaseController, AuthenticatedRestController -from operator import itemgetter - - class RoomsController(AuthenticatedBaseController): require_group = groups_enum.admin @@ -38,10 +35,10 @@ class RoomsController(AuthenticatedBaseController): #end def def reverse_sort_name(self, name_items): - return sorted(name_items, key=itemgetter(0), reverse=True) + return sorted(name_items, key=lambda t:t[0].cn.first(), reverse=True) def sort_name(self, name_items): - return sorted(name_items, key=itemgetter(0)) + return sorted(name_items, key=lambda t:t[0].cn.first()) @expose("brie.templates.rooms.index") def index(self, residence_name): @@ -54,7 +51,7 @@ class RoomsController(AuthenticatedBaseController): #end if for area in Room.get_areas(self.user, residence_dn): - areas[area] = list() + areas[area] = dict() for floor in Room.get_floors(self.user, area.dn): areas[area][floor] = list() @@ -71,9 +68,7 @@ class RoomsController(AuthenticatedBaseController): #end if #end for room - areas[area][floor] = sorted(areas[area][floor], key=lambda r:r.cn.first()) #end for floor - areas[area] = sorted(areas[area].items(), key=lambda t:t[0]) #end for area return { diff --git a/Brie/brie/templates/rooms/index.html b/Brie/brie/templates/rooms/index.html index 9fcdb0d..c9948e0 100644 --- a/Brie/brie/templates/rooms/index.html +++ b/Brie/brie/templates/rooms/index.html @@ -49,7 +49,7 @@ ${("Aile " + area.cn.first()).upper()}
étage ${floor.cn.first()} -
+
diff --git a/Brie/development.ini b/Brie/development.ini deleted file mode 100644 index cfe875b..0000000 --- a/Brie/development.ini +++ /dev/null @@ -1,130 +0,0 @@ -# -# Brie - Pylons development environment configuration -# -# The %(here)s variable will be replaced with the parent directory of this file -# -# This file is for deployment specific config options -- other configuration -# that is always required for the app is done in the config directory, -# and generally should not be modified by end users. - -[DEFAULT] -debug = true -# Uncomment and replace with the address which should receive any error reports -#email_to = you@yourdomain.com -smtp_server = localhost -error_email_from = paste@localhost - -[server:main] -use = egg:Paste#http -host = 0.0.0.0 -port = 9002 - -[app:main] -use = egg:Brie -full_stack = true -#lang = ru -cache_dir = %(here)s/data -beaker.session.key = brie -beaker.session.secret = somesecret - -# If you'd like to fine-tune the individual locations of the cache data dirs -# for the Cache data, or the Session saves, un-comment the desired settings -# here: -#beaker.cache.data_dir = %(here)s/data/cache -#beaker.session.data_dir = %(here)s/data/sessions - -# pick the form for your database -# %(here) may include a ':' character on Windows environments; this can -# invalidate the URI when specifying a SQLite db via path name -#sqlalchemy.url=postgresql://camembert:CamembertDB%40Pacat@172.17.22.7:5432/camembert -sqlalchemy.url=postgresql://brie:brie@localhost/brie -# sqlalchemy.url=mysql://username:password@hostname:port/databasename - - -# If you have sqlite, here's a simple default to get you started -# in development - -#sqlalchemy.url = sqlite:///%(here)s/devdata.db -#echo shouldn't be used together with the logging module. -#sqlalchemy.echo = false -#sqlalchemy.echo_pool = false -#sqlalchemy.pool_recycle = 3600 - -# if you are using Mako and want to be able to reload -# the mako template from disk during the development phase -# you should say 'true' here -# This option is only used for mako templating engine -# WARNING: if you want to deploy your application using a zipped egg -# (ie: if your application's setup.py defines zip-safe=True, then you -# MUST put "false" for the production environment because there will -# be no disk and real files to compare time with. -# On the contrary if your application defines zip-safe=False and is -# deployed in an unzipped manner, then you can leave this option to true -templating.mako.reloadfromdisk = true - -# the compiled template dir is a directory that must be readable by your -# webserver. It will be used to store the resulting templates once compiled -# by the TemplateLookup system. -# During development you generally don't need this option since paste's HTTP -# server will have access to you development directories, but in production -# you'll most certainly want to have apache or nginx to write in a directory -# that does not contain any source code in any form for obvious security reasons. -# -#templating.mako.compiled_templates_dir = /some/dir/where/webserver/has/access - -# WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT* -# Debug mode will enable the interactive debugging tool, allowing ANYONE to -# execute malicious code after an exception is raised. -#set debug = false - -# Logging configuration -# Add additional loggers, handlers, formatters here -# Uses python's logging config file format -# http://docs.python.org/lib/logging-config-fileformat.html - -[loggers] -keys = root, brie, sqlalchemy, auth - -[handlers] -keys = console - -[formatters] -keys = generic - -# If you create additional loggers, add them as a key to [loggers] -[logger_root] -level = INFO -handlers = console - -[logger_brie] -level = DEBUG -handlers = -qualname = brie - -[logger_sqlalchemy] -level = INFO -handlers = -qualname = sqlalchemy.engine -# "level = INFO" logs SQL queries. -# "level = DEBUG" logs SQL queries and results. -# "level = WARN" logs neither. (Recommended for production systems.) - - -# A logger for authentication, identification and authorization -- this is -# repoze.who and repoze.what: -[logger_auth] -level = WARN -handlers = -qualname = auth - -# If you create additional handlers, add them as a key to [handlers] -[handler_console] -class = StreamHandler -args = (sys.stderr,) -level = NOTSET -formatter = generic - -# If you create additional formatters, add them as a key to [formatters] -[formatter_generic] -format = %(asctime)s,%(msecs)03d %(levelname)-5.5s [%(name)s] %(message)s -datefmt = %H:%M:%S