Exemplo n.º 1
0
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('')
Exemplo n.º 2
0
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('')
Exemplo n.º 3
0
 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,
         }
     )
Exemplo n.º 4
0
    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"]
Exemplo n.º 5
0
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('')
Exemplo n.º 6
0
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('')
Exemplo n.º 7
0
 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
Exemplo n.º 8
0
 def _exec(self, value=None):
     ret = self.exec_command(value)
     if ret.__class__ == dict:
         return schjson.dumps(ret)
     else:
         return ret
Exemplo n.º 9
0
 def _auto(self, col_name, col_names, rec):
     return schjson.dumps({"rec": self.auto(col_name, col_names, rec)})
Exemplo n.º 10
0
 def _count(self, value=None):
     return schjson.dumps({"count": self.count(value)})
Exemplo n.º 11
0
 def _rec_as_str(self, nr):
     return schjson.dumps({"recasstr": self.rec_as_str(nr)})
Exemplo n.º 12
0
 def _page(self, nr, sort=None, value=None):
     return schjson.dumps({"page": self.page(nr, sort, value)})
Exemplo n.º 13
0
def process_post_parm(obj):
    ret = {}
    for (key, value) in list(obj.items()):
        ret[key] = schjson.dumps(value)
    return ret
Exemplo n.º 14
0
 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))