Mercurial > personas_backend
annotate PersonasBackend/personas/views.py @ 38:ccdb8d6379d3
Moved a TODO from views to models.
author | Atul Varma <varmaa@toolness.com> |
---|---|
date | Mon, 03 Mar 2008 17:13:13 -0600 |
parents | ad477306dd51 |
children | bd1cdb15ef85 |
rev | line source |
---|---|
20
ccb027c6862a
Added simple JSON views that generate personas_categories.dat and personas_all.dat.
Atul Varma <varmaa@toolness.com>
parents:
2
diff
changeset
|
1 from django.http import HttpResponse |
25 | 2 from django.template import Context, loader |
31
ada72ce61fc2
Added a trivial login page.
Atul Varma <varmaa@toolness.com>
parents:
27
diff
changeset
|
3 from django.contrib.auth.decorators import login_required |
ada72ce61fc2
Added a trivial login page.
Atul Varma <varmaa@toolness.com>
parents:
27
diff
changeset
|
4 |
20
ccb027c6862a
Added simple JSON views that generate personas_categories.dat and personas_all.dat.
Atul Varma <varmaa@toolness.com>
parents:
2
diff
changeset
|
5 from PersonasBackend.personas import models |
27
4439a83c5dc6
Added a trivial new/edit form using the django.newforms system.
Atul Varma <varmaa@toolness.com>
parents:
25
diff
changeset
|
6 from PersonasBackend.personas import forms |
20
ccb027c6862a
Added simple JSON views that generate personas_categories.dat and personas_all.dat.
Atul Varma <varmaa@toolness.com>
parents:
2
diff
changeset
|
7 |
25 | 8 def list_view( request ): |
9 template = loader.get_template( "personas/list.html" ) | |
10 context = Context({ "personas" : models.Persona.objects.all() }) | |
11 return HttpResponse( template.render(context) ) | |
27
4439a83c5dc6
Added a trivial new/edit form using the django.newforms system.
Atul Varma <varmaa@toolness.com>
parents:
25
diff
changeset
|
12 |
37
ad477306dd51
A bit of refactoring to view logic.
Atul Varma <varmaa@toolness.com>
parents:
36
diff
changeset
|
13 def _save_changes( user, formData, persona ): |
ad477306dd51
A bit of refactoring to view logic.
Atul Varma <varmaa@toolness.com>
parents:
36
diff
changeset
|
14 """ |
ad477306dd51
A bit of refactoring to view logic.
Atul Varma <varmaa@toolness.com>
parents:
36
diff
changeset
|
15 Save the given changes made by the given user to the given |
ad477306dd51
A bit of refactoring to view logic.
Atul Varma <varmaa@toolness.com>
parents:
36
diff
changeset
|
16 persona. If the given persona is None, then a new one is created. |
ad477306dd51
A bit of refactoring to view logic.
Atul Varma <varmaa@toolness.com>
parents:
36
diff
changeset
|
17 """ |
ad477306dd51
A bit of refactoring to view logic.
Atul Varma <varmaa@toolness.com>
parents:
36
diff
changeset
|
18 |
ad477306dd51
A bit of refactoring to view logic.
Atul Varma <varmaa@toolness.com>
parents:
36
diff
changeset
|
19 if persona: |
ad477306dd51
A bit of refactoring to view logic.
Atul Varma <varmaa@toolness.com>
parents:
36
diff
changeset
|
20 form = forms.PersonaForm( formData, |
ad477306dd51
A bit of refactoring to view logic.
Atul Varma <varmaa@toolness.com>
parents:
36
diff
changeset
|
21 instance=persona ) |
ad477306dd51
A bit of refactoring to view logic.
Atul Varma <varmaa@toolness.com>
parents:
36
diff
changeset
|
22 else: |
ad477306dd51
A bit of refactoring to view logic.
Atul Varma <varmaa@toolness.com>
parents:
36
diff
changeset
|
23 form = forms.PersonaForm( formData ) |
ad477306dd51
A bit of refactoring to view logic.
Atul Varma <varmaa@toolness.com>
parents:
36
diff
changeset
|
24 persona = form.save( commit=False ) |
ad477306dd51
A bit of refactoring to view logic.
Atul Varma <varmaa@toolness.com>
parents:
36
diff
changeset
|
25 persona.updater = user |
ad477306dd51
A bit of refactoring to view logic.
Atul Varma <varmaa@toolness.com>
parents:
36
diff
changeset
|
26 # TODO: Add validation to ensure that all required fields |
ad477306dd51
A bit of refactoring to view logic.
Atul Varma <varmaa@toolness.com>
parents:
36
diff
changeset
|
27 # are properly filled out. |
ad477306dd51
A bit of refactoring to view logic.
Atul Varma <varmaa@toolness.com>
parents:
36
diff
changeset
|
28 persona.save() |
ad477306dd51
A bit of refactoring to view logic.
Atul Varma <varmaa@toolness.com>
parents:
36
diff
changeset
|
29 # TODO: Redirect user back to editing page or some other |
ad477306dd51
A bit of refactoring to view logic.
Atul Varma <varmaa@toolness.com>
parents:
36
diff
changeset
|
30 # location. |
ad477306dd51
A bit of refactoring to view logic.
Atul Varma <varmaa@toolness.com>
parents:
36
diff
changeset
|
31 return HttpResponse( "Persona saved." ) |
ad477306dd51
A bit of refactoring to view logic.
Atul Varma <varmaa@toolness.com>
parents:
36
diff
changeset
|
32 |
ad477306dd51
A bit of refactoring to view logic.
Atul Varma <varmaa@toolness.com>
parents:
36
diff
changeset
|
33 def _show_edit_form( persona ): |
ad477306dd51
A bit of refactoring to view logic.
Atul Varma <varmaa@toolness.com>
parents:
36
diff
changeset
|
34 """ |
ad477306dd51
A bit of refactoring to view logic.
Atul Varma <varmaa@toolness.com>
parents:
36
diff
changeset
|
35 Show the edit form for the given persona; if None is supplied, |
ad477306dd51
A bit of refactoring to view logic.
Atul Varma <varmaa@toolness.com>
parents:
36
diff
changeset
|
36 shows an edit form for a new persona. |
ad477306dd51
A bit of refactoring to view logic.
Atul Varma <varmaa@toolness.com>
parents:
36
diff
changeset
|
37 """ |
ad477306dd51
A bit of refactoring to view logic.
Atul Varma <varmaa@toolness.com>
parents:
36
diff
changeset
|
38 |
ad477306dd51
A bit of refactoring to view logic.
Atul Varma <varmaa@toolness.com>
parents:
36
diff
changeset
|
39 template = loader.get_template( "personas/edit.html" ) |
ad477306dd51
A bit of refactoring to view logic.
Atul Varma <varmaa@toolness.com>
parents:
36
diff
changeset
|
40 if persona: |
ad477306dd51
A bit of refactoring to view logic.
Atul Varma <varmaa@toolness.com>
parents:
36
diff
changeset
|
41 # We're editing an existing persona. |
ad477306dd51
A bit of refactoring to view logic.
Atul Varma <varmaa@toolness.com>
parents:
36
diff
changeset
|
42 form = forms.PersonaForm( instance=persona ) |
ad477306dd51
A bit of refactoring to view logic.
Atul Varma <varmaa@toolness.com>
parents:
36
diff
changeset
|
43 else: |
ad477306dd51
A bit of refactoring to view logic.
Atul Varma <varmaa@toolness.com>
parents:
36
diff
changeset
|
44 # We're creating a new persona. |
ad477306dd51
A bit of refactoring to view logic.
Atul Varma <varmaa@toolness.com>
parents:
36
diff
changeset
|
45 form = forms.PersonaForm() |
ad477306dd51
A bit of refactoring to view logic.
Atul Varma <varmaa@toolness.com>
parents:
36
diff
changeset
|
46 context = Context({ "form" : form }) |
ad477306dd51
A bit of refactoring to view logic.
Atul Varma <varmaa@toolness.com>
parents:
36
diff
changeset
|
47 return HttpResponse( template.render(context) ) |
ad477306dd51
A bit of refactoring to view logic.
Atul Varma <varmaa@toolness.com>
parents:
36
diff
changeset
|
48 |
31
ada72ce61fc2
Added a trivial login page.
Atul Varma <varmaa@toolness.com>
parents:
27
diff
changeset
|
49 @login_required |
34
f83712466fe6
Added functionality to edit an existing persona, and a number of TODOs.
Atul Varma <varmaa@toolness.com>
parents:
33
diff
changeset
|
50 def edit_view( request, persona_id=None ): |
f83712466fe6
Added functionality to edit an existing persona, and a number of TODOs.
Atul Varma <varmaa@toolness.com>
parents:
33
diff
changeset
|
51 # TODO: Perform permissions check to see if user has |
f83712466fe6
Added functionality to edit an existing persona, and a number of TODOs.
Atul Varma <varmaa@toolness.com>
parents:
33
diff
changeset
|
52 # the rights to edit the persona or create a new one. |
f83712466fe6
Added functionality to edit an existing persona, and a number of TODOs.
Atul Varma <varmaa@toolness.com>
parents:
33
diff
changeset
|
53 if persona_id is None: |
f83712466fe6
Added functionality to edit an existing persona, and a number of TODOs.
Atul Varma <varmaa@toolness.com>
parents:
33
diff
changeset
|
54 persona = None |
f83712466fe6
Added functionality to edit an existing persona, and a number of TODOs.
Atul Varma <varmaa@toolness.com>
parents:
33
diff
changeset
|
55 else: |
f83712466fe6
Added functionality to edit an existing persona, and a number of TODOs.
Atul Varma <varmaa@toolness.com>
parents:
33
diff
changeset
|
56 # TODO: Consider using get_object_or_404() here. |
f83712466fe6
Added functionality to edit an existing persona, and a number of TODOs.
Atul Varma <varmaa@toolness.com>
parents:
33
diff
changeset
|
57 persona = models.Persona.objects.get( id=persona_id ) |
f83712466fe6
Added functionality to edit an existing persona, and a number of TODOs.
Atul Varma <varmaa@toolness.com>
parents:
33
diff
changeset
|
58 |
33
2b5a8b3b8bef
It's now possible for normal end-users to create new personas.
Atul Varma <varmaa@toolness.com>
parents:
31
diff
changeset
|
59 if request.method == "POST": |
37
ad477306dd51
A bit of refactoring to view logic.
Atul Varma <varmaa@toolness.com>
parents:
36
diff
changeset
|
60 return _save_changes( request.user, request.POST, persona ) |
33
2b5a8b3b8bef
It's now possible for normal end-users to create new personas.
Atul Varma <varmaa@toolness.com>
parents:
31
diff
changeset
|
61 else: |
37
ad477306dd51
A bit of refactoring to view logic.
Atul Varma <varmaa@toolness.com>
parents:
36
diff
changeset
|
62 return _show_edit_form( persona ) |