diff options
Diffstat (limited to 'jm2l/views.py')
-rw-r--r-- | jm2l/views.py | 25 |
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') |