summaryrefslogtreecommitdiff
path: root/ishtar/ishtar_base/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar/ishtar_base/views.py')
-rw-r--r--ishtar/ishtar_base/views.py18
1 files changed, 12 insertions, 6 deletions
diff --git a/ishtar/ishtar_base/views.py b/ishtar/ishtar_base/views.py
index d036c9876..631e71ed7 100644
--- a/ishtar/ishtar_base/views.py
+++ b/ishtar/ishtar_base/views.py
@@ -160,12 +160,13 @@ def format_val(val):
HIERARCHIC_LEVELS = 5
HIERARCHIC_FIELDS = ['period', 'unit', 'material']
+PRIVATE_FIELDS = ('id', 'history_modifier', 'order')
def get_item(model, func_name, default_name, extra_request_keys=[],
- bool_fields=[]):
+ base_request={}, bool_fields=[]):
"""
Generic treatment of tables
"""
- def func(request, data_type='json', **dct):
+ def func(request, data_type='json', full=False, **dct):
if 'type' in dct:
data_type = dct.pop('type')
if not data_type:
@@ -177,7 +178,7 @@ def get_item(model, func_name, default_name, extra_request_keys=[],
for field in fields])
request_keys.update(extra_request_keys)
request_items = request.method == 'POST' and request.POST or request.GET
- dct = {}
+ dct = base_request
try:
old = 'old' in request_items and int(request_items['old'])
except ValueError:
@@ -239,9 +240,13 @@ def get_item(model, func_name, default_name, extra_request_keys=[],
datas = []
if old:
items = [item.get_previous(old) for item in items]
+ table_cols = full and [field.name for field in model._meta.fields
+ if field.name not in PRIVATE_FIELDS] \
+ or model.TABLE_COLS
+ print table_cols
for item in items:
data = [item.pk]
- for k in model.TABLE_COLS:
+ for k in table_cols:
vals = [item]
for ky in k.split('.'):
new_vals = []
@@ -273,7 +278,7 @@ def get_item(model, func_name, default_name, extra_request_keys=[],
res = {'id':data[0], 'link':lnk}
for idx, value in enumerate(data[1:]):
if value:
- res[model.TABLE_COLS[idx].split('.')[-1]] = value
+ res[table_cols[idx].split('.')[-1]] = value
rows.append(res)
data = json.dumps({
"records":len(items),
@@ -288,7 +293,7 @@ def get_item(model, func_name, default_name, extra_request_keys=[],
response['Content-Disposition'] = 'attachment; filename=%s'%filename
writer = csv.writer(response, **CSV_OPTIONS)
col_names = []
- for field_name in model.TABLE_COLS:
+ for field_name in table_cols:
try:
field = model._meta.get_field(field_name)
except:
@@ -503,6 +508,7 @@ get_contextrecordsource = get_item(models.ContextRecordSource,
get_archaeologicalitem = get_item(models.Item,
'get_archaeologicalitem', 'item',
bool_fields = ['base_items__is_isolated'],
+ base_request={'downstream_treatment__isnull':True},
extra_request_keys={
'base_items__context_record__parcel__town':
'base_items__context_record__parcel__town',