Changeset 99ea6e7 in observatorio
- Timestamp:
- Jul 25, 2014, 1:48:53 PM (10 years ago)
- Branches:
- master
- Children:
- e29b474
- Parents:
- ae41c89
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
procesos/apps/reportes/json_views.py
r7c9f979 r99ea6e7 2 2 import datetime 3 3 from django.shortcuts import render_to_response, get_object_or_404 4 from django.template import Template, 4 from django.template import Template, Context 5 5 from django.http import Http404, HttpResponse, HttpResponseRedirect 6 6 from nokia.tt.models import * … … 9 9 from nokia.reporting.helpers import * 10 10 from django import newforms as forms 11 from django.utils import simplejson11 import json 12 12 13 13 … … 20 20 'DecimalField', 21 21 'PositiveIntegerField' 22 22 ], 23 23 'time': [ 24 24 'DateField', 25 25 'DateTimeField', 26 26 'TimeField' 27 27 ], 28 28 'text': [ 29 29 'CharField', … … 36 36 'XMLField', 37 37 'URLField', 38 38 ], 39 39 'bool': [ 40 40 'BooleanField' 41 41 ], 42 42 'related': [ 43 43 'ForeignKey', 44 44 'ManyToManyField' 45 45 ] 46 46 } 47 47 … … 54 54 'lte', 55 55 'range', 56 56 ], 57 57 'time': [ 58 58 'gt', … … 65 65 'month', 66 66 'day', 67 67 ], 68 68 'text': [ 69 69 'contains', … … 73 73 'in', 74 74 'isnull', 75 75 ], 76 76 'bool': [ 77 77 ], 78 78 'related': [ 79 80 } 79 ] 80 } 81 81 QUERY_TERMS = { 82 82 'contains': 'Contains', … … 97 97 } 98 98 99 99 100 def get_field_type(fld_type): 100 101 """Search through FLD_TYPES and return the key for the type of field""" 101 for k, v in FLD_TYPES.items():102 for k, v in FLD_TYPES.items(): 102 103 if fld_type in v: 103 104 return k 104 105 106 105 107 def get_poss_lookup_types(fld_type): 106 return LOOKUP_TYPES.get(get_field_type(fld_type),None) 108 return LOOKUP_TYPES.get(get_field_type(fld_type), None) 109 107 110 108 111 def fields_for_model(request): … … 110 113 template = Template("""{% for o in options %}<option {% if o.selected %} 111 114 selected="selected"{% endif %} value="{{ o.value }}">{{ o.text }}</option>{% endfor %}""") 112 output = request.GET.get('format', 'html')115 output = request.GET.get('format', 'html') 113 116 id = request.GET.get('id', None) 114 117 if id: … … 118 121 options = [] 119 122 for o in opts: 120 dikt = {'value': o[0], 'text':o[1]}123 dikt = {'value': o[0], 'text': o[1]} 121 124 if o[0] in field_ids: 122 125 dikt['selected'] = True … … 124 127 else: 125 128 ct_id = request.GET['model'] 126 129 model = ContentType.objects.get(pk=ct_id).model 127 130 fields = possible_fields(model) 128 options = [{'value': f[0], 'text':f[1]} for f in fields]129 130 if output == 'json': #not sure if I'm gonna need this131 return HttpResponse(simplejson.dumps(options))131 options = [{'value': f[0], 'text': f[1]} for f in fields] 132 print options 133 if output == 'json': # not sure if I'm gonna need this 134 return HttpResponse(json.dumps(options)) 132 135 return HttpResponse(template.render(Context({'options': options}))) 133 136 134 def get_field_and_type(class_reg,fld_name): 135 try: 136 fld = class_reg.dj_model._meta.get_field(fld_name) 137 except: 138 pass 137 138 def get_field_and_type(class_reg, fld_name): 139 try: 140 fld = class_reg.dj_model._meta.get_field(fld_name) 141 except: 142 pass 139 143 140 144 141 def filter_fields(request, id):142 143 144 class_reg = getattr(reporter.register,reporter.model.__name__)145 146 147 148 149 150 145 def filter_fields(request, id): 146 """Given the report id, return a list of fields to put in a select""" 147 reporter = Report.objects.get(pk=id).get_report() 148 class_reg = getattr(reporter.register, reporter.model.__name__) 149 field_choices = [(f.name, prettify_string(f.name)) \ 150 for f in class_reg._fields + class_reg._m2ms] 151 f = forms.Form() 152 f.fields['fields'] = forms.ChoiceField(choices=field_choices, 153 help_text="Choose a field to filter on") 154 return HttpResponse(f.as_p()) 151 155 152 156
Note: See TracChangeset
for help on using the changeset viewer.