def listdialog(request, action): """View to show list with options Args: action - 'size', 'dialog' or 'test' """ if request.POST or request.GET: if request.POST: p = request.POST.copy() else: p = request.GET.copy() value = b32decode(p['value'].encode('ascii')).decode('utf-8') if value == None: value = '' else: value = '' if action == 'size': return HttpResponse(schjson.dumps((250, 300))) if action == 'dialog': c = {'value': value} ret = render_to_response('schsys/list.html', context=c, request=request) return ret if action == 'test': return HttpResponse(schjson.dumps((2, None, (None, )))) return HttpResponse('')
def treedialog(request, app, tab, id, action): """View to show tree based on table Args: app - application name tab - table name id action - 'size', 'dialog' or 'test' """ if request.POST or request.GET: if request.POST: p = request.POST.copy() else: p = request.GET.copy() value = b32decode(p['value'].encode('ascii')) if value == None: value = '' else: value = '' if action == 'size': return HttpResponse(schjson.dumps((450, 400))) if action == 'dialog': model = import_model(app, tab) obj = None parent_pk = -1 if int(id) >= 0: obj = model.objects.get(id=id) if obj and obj.parent: id2 = obj.parent.id if id2 and id2 > 0: parent_pk = id2 c = { 'value': value, 'app': app, 'tab': tab, 'pk': id, 'parent_pk': parent_pk, 'model': model, 'object': obj, } return render_to_response('schsys/get_from_tree.html', context=c, request=request) if action == 'test': return HttpResponse(schjson.dumps((2, None, (None, )))) return HttpResponse('')
def _info(self): return schjson.dumps( { "auto_cols": self.auto_cols, "col_length": self.col_length, "col_names": self.col_names, "col_types": self.col_types, "default_rec": self.default_rec, } )
def auto_update(self, col_name, col_names, rec): """Return transformed row after current row is changed""" col_name2 = schjson.dumps(col_name) col_names2 = schjson.dumps(col_names) rec2 = schjson.dumps(rec) c = { "cmd": CMD_AUTO, "col_name": col_name2, "col_names": col_names2, "rec": rec2, } response = self.http.post(self.parent, self.tabaddress, process_post_parm(c)) ret = schjson.loads(response.str()) if ret == None: return rec else: return ret["rec"]
def tabdialog(request, app, tab, id, action): """View to show tab dialog Args: request - dialog request app - application name tab - table name id action - 'size', 'dialog' or 'test' """ if request.POST or request.GET: if request.POST: p = request.POST.copy() else: p = request.GET.copy() value = b32decode(p['value'].encode('ascii')) if value == None: value = '' else: value = '' if action == 'size': return HttpResponse(schjson.dumps((450, 400))) if action == 'dialog': model = import_model(app, tab) obj = None if int(id) >= 0: obj = model.objects.get(id=id) c = { 'value': value, 'app': app, 'tab': tab, 'id': id, 'model': model, 'obj': obj, } return render_to_response('schsys/get_from_tab.html', context=c, request=request) if action == 'test': return HttpResponse(schjson.dumps((2, None, (None, )))) return HttpResponse('')
def datedialog(request, action): """View to show date dialog Args: action - 'size', 'dialog' or 'test' """ if request.POST or request.GET: if request.POST: p = request.POST.copy() else: p = request.GET.copy() value = b32decode(p['value'].encode('ascii')) else: value = '' if action == 'size': return HttpResponse(schjson.dumps((280, 200))) if action == 'dialog': if value.__class__ == int: import datetime d = datetime.date.today() d = d + datetime.timedelta(int(value)) value = d c = {'value': value} return render_to_response('schsys/date.html', context=c, request=request) if action == 'test': if value.__class__ == int: import datetime d = datetime.date.today() d = d + datetime.timedelta(int(value)) return HttpResponse(schjson.dumps((1, d.isoformat(), (d, )))) else: if type(value) == bytes: value = value.decode('utf-8') return HttpResponse(schjson.dumps((1, value, (value, )))) return HttpResponse('') return HttpResponse('')
def _get_col_types(self): n = [] global __COLMAP__ for col in self.model_class._meta.fields: if type(col).__name__ in ("ForeignKey", "HiddenForeignKey"): pos = "x:/%s/table/%s/%s/dict/" % (self.app, self.tab, col.name) if col.name[:-2] in self.foreign_key_parm: pos = pos + "|" + self.foreign_key_parm n.append(pos) else: if col.choices: n.append("y:" + schjson.dumps(col.choices)) else: n.append(__COLMAP__[col.__class__.__name__]) return n
def _exec(self, value=None): ret = self.exec_command(value) if ret.__class__ == dict: return schjson.dumps(ret) else: return ret
def _auto(self, col_name, col_names, rec): return schjson.dumps({"rec": self.auto(col_name, col_names, rec)})
def _count(self, value=None): return schjson.dumps({"count": self.count(value)})
def _rec_as_str(self, nr): return schjson.dumps({"recasstr": self.rec_as_str(nr)})
def _page(self, nr, sort=None, value=None): return schjson.dumps({"page": self.page(nr, sort, value)})
def process_post_parm(obj): ret = {} for (key, value) in list(obj.items()): ret[key] = schjson.dumps(value) return ret
def sync_data(self, listaRecUpdate, listaRecInsert, listaRecDelete): update = schjson.dumps(listaRecUpdate) insert = schjson.dumps(listaRecInsert) delete = schjson.dumps(listaRecDelete) c = {"cmd": CMD_SYNC, "update": update, "insert": insert, "delete": delete} self.http.post(self.parent, self.tabaddress, process_post_parm(c))