aboutsummaryrefslogtreecommitdiffstats
path: root/jm2l/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'jm2l/views.py')
-rw-r--r--jm2l/views.py25
1 files changed, 19 insertions, 6 deletions
diff --git a/jm2l/views.py b/jm2l/views.py
index 7c89c40..f6bae52 100644
--- a/jm2l/views.py
+++ b/jm2l/views.py
@@ -276,6 +276,20 @@ def list_view(request):
@view_config(route_name='handle_task', renderer='jm2l:templates/Staff/tasks.mako')
def tasks(request):
task_id = request.matchdict.get('task_id')
+ # Convert the pole_id GET parameter to int or 0
+ try:
+ pole_id = int(request.params.get('pole_id'))
+ except (ValueError, TypeError):
+ pole_id = 0
+
+ # Get areas from db
+ Areas = DBSession.query(TasksArea.uid, TasksArea.name)\
+ .order_by('name').all()
+ # Get users from db
+ Users = DBSession.query(User)\
+ .filter(User.Staff==1)\
+ .order_by('nom').all()
+
if task_id:
Task = Tasks.by_id(int(task_id))
if not Task:
@@ -283,17 +297,16 @@ def tasks(request):
form = EditStaffTasks(request.POST, Task, meta={'csrf_context': request.session})
else:
Task = Tasks()
+ # Check if the supplied pole_id is in the Areas' range
+ Task.area_uid = pole_id if 1 < pole_id <= len(Areas) else 1
form = StaffTasks(request.POST, Task, meta={'csrf_context': request.session})
+
# Put some areas on form
- Areas = DBSession.query(TasksArea.uid, TasksArea.name)\
- .order_by('name').all()
form.area_uid.choices = Areas
# Put some users on form
- Users = DBSession.query(User)\
- .filter(User.Staff==1)\
- .order_by('nom').all()
form.closed_by.choices = [(u.uid, "%s %s" % (u.nom, u.prenom))
for u in Users]
+
form.due_date.type = "date"
if request.method == 'POST' and form.validate():
form.populate_obj(Task)
@@ -304,7 +317,7 @@ def tasks(request):
DBSession.add(Task)
DBSession.flush()
return HTTPFound(location=request.route_url('list_task')+"#"+slugify(Task.area.name))
- return {'form':form }
+ return {'form':form, 'area':slugify(Areas[Task.area_uid-1].name)}
@view_config(route_name='handle_pole', renderer='jm2l:templates/Staff/pole.mako')