| author | ymh <ymh.work@gmail.com> |
| Tue, 07 Jun 2011 13:21:45 +0200 | |
| changeset 12 | ebfa127ab138 |
| parent 8 | fe20b23e9f0f |
| child 14 | 9de6715b6d84 |
| permissions | -rw-r--r-- |
| 12 | 1 |
from django.contrib.auth.decorators import login_required #@UnusedImport |
2 |
from django.shortcuts import render_to_response |
|
|
7
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
3 |
from django.template import RequestContext |
|
8
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
4 |
from models import Organisation, Datasheet, TaggedSheet, Tag |
|
7
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
5 |
|
|
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
6 |
|
|
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
7 |
#@login_required |
|
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
8 |
def home(request): |
|
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
9 |
|
|
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
10 |
# Get all organisations |
|
8
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
11 |
orgas = Organisation.objects.all() |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
12 |
# Count all validated, unvalidated sheets for each organisation |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
13 |
org_list = [] |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
14 |
for orga in orgas : |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
15 |
all_datasheets = Datasheet.objects.filter(organisation=orga) |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
16 |
nb_all = len(all_datasheets) |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
17 |
nb_val = len(all_datasheets.filter(validated=True)) |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
18 |
nb_unval = len(all_datasheets.filter(validated=False)) |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
19 |
org_list.append({'organisation':orga, 'nb_all':nb_all, 'nb_val':nb_val, 'nb_unval':nb_unval}) |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
20 |
|
|
7
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
21 |
|
|
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
22 |
return render_to_response("partial/organisation_list.html", |
|
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
23 |
{'organisations':org_list}, |
|
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
24 |
context_instance=RequestContext(request)) |
|
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
25 |
|
|
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
26 |
|
|
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
27 |
#@login_required |
|
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
28 |
def list_for_orga(request, orga_id=None, valid=None, start_index=None): |
|
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
29 |
|
|
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
30 |
orga = Organisation.objects.get(id=orga_id) |
|
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
31 |
orga_name = orga.name |
|
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
32 |
|
|
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
33 |
if start_index : |
|
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
34 |
try: |
|
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
35 |
start_index = int(start_index) |
|
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
36 |
except : |
|
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
37 |
start_index = 0 |
|
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
38 |
else : |
|
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
39 |
start_index = 0 |
|
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
40 |
|
|
8
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
41 |
# If valid = 0, we search unvalidated sheets |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
42 |
# If valid = 1, we search validated sheets |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
43 |
# If valid = 2, we search AND DISPLAY all sheets |
|
7
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
44 |
if valid == "1" : |
|
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
45 |
# We count all the validated sheets |
|
8
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
46 |
datasheets = Datasheet.objects.filter(organisation=orga).filter(validated=True) |
|
7
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
47 |
nb_sheets = len(datasheets) |
|
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
48 |
# And select the current one |
|
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
49 |
datasheets = [datasheets[start_index]] |
|
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
50 |
elif valid != "2": |
|
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
51 |
# We count all the validated sheets |
|
8
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
52 |
datasheets = Datasheet.objects.filter(organisation=orga).filter(validated=False) |
|
7
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
53 |
nb_sheets = len(datasheets) |
|
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
54 |
# And select the current one |
|
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
55 |
datasheets = [datasheets[start_index]] |
|
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
56 |
else : |
|
8
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
57 |
datasheets = Datasheet.objects.filter(organisation=orga) |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
58 |
nb_sheets = len(datasheets) |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
59 |
|
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
60 |
# We get the ORDERED tags if we display one sheet (case valid = 0 and 1) |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
61 |
ordered_tags = None |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
62 |
if valid != "2" : |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
63 |
ordered_tags = TaggedSheet.objects.filter(datasheet=datasheets[0]).order_by('order') |
|
7
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
64 |
|
|
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
65 |
displayed_index = start_index + 1; |
|
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
66 |
prev_index = max(start_index - 1, 0); |
|
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
67 |
next_index = min(nb_sheets - 1, start_index + 1); |
|
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
68 |
last_index = max(nb_sheets - 1, 0); |
|
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
69 |
|
|
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
70 |
return render_to_response("partial/list_for_orga.html", |
|
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
71 |
{'datasheets':datasheets, 'orga_name':orga_name, |
|
8
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
72 |
'nb_sheets':nb_sheets,'orga_id':orga_id, 'ordered_tags':ordered_tags, |
|
7
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
73 |
'prev_index':prev_index, 'next_index':next_index, 'last_index':last_index, |
|
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
74 |
'start_index':start_index, 'displayed_index':displayed_index, 'valid':valid}, |
|
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
75 |
context_instance=RequestContext(request)) |
|
b5204be88f8e
First views for home and sheet display, and navigation in sheet groups by location.
cavaliet
parents:
diff
changeset
|
76 |
|
|
8
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
77 |
#@login_required |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
78 |
def tag_up_down(request): |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
79 |
ds_id = request.POST["datasheet_id"] |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
80 |
tag_id = request.POST["tag_id"] |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
81 |
# move can be "u" or "d", for up and down |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
82 |
move = request.POST["move"] |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
83 |
# First we get the datasheet's TaggedSheets |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
84 |
ds_tags = TaggedSheet.objects.filter(datasheet=Datasheet.objects.filter(id=ds_id)[0]) |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
85 |
# We get the current TaggedSheet ans its's order |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
86 |
ts = ds_tags.filter(tag=Tag.objects.filter(id=tag_id))[0] |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
87 |
tag_order = ts.order |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
88 |
if move == "u" : |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
89 |
next_order = tag_order - 1 |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
90 |
elif move == "d" : |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
91 |
next_order = tag_order + 1 |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
92 |
else : |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
93 |
next_order = None |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
94 |
# We get the other TaggedSheet that will be moved |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
95 |
other_ts = ds_tags.filter(order=next_order)[0] |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
96 |
# We switch the orders |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
97 |
ts.order = next_order |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
98 |
other_ts.order = tag_order |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
99 |
ts.save() |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
100 |
other_ts.save() |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
101 |
|
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
102 |
return get_tag_table(request=request, ds_id=ds_id, valid=0) |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
103 |
|
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
104 |
|
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
105 |
|
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
106 |
#@login_required |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
107 |
def get_tag_table(request=None, ds_id=None, valid=None): |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
108 |
|
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
109 |
ordered_tags = TaggedSheet.objects.filter(datasheet=Datasheet.objects.filter(id=ds_id)[0]).order_by('order') |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
110 |
|
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
111 |
return render_to_response("partial/tag_table.html", |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
112 |
{'ordered_tags':ordered_tags, 'valid':valid}, |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
113 |
context_instance=RequestContext(request)) |
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
114 |
|
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
115 |
|
|
fe20b23e9f0f
Better tab table management. Ajax request to move up or down the tag order.
cavaliet
parents:
7
diff
changeset
|
116 |