def fiche(request, table, idP, filtre, page, nbparpage, nomClasser, plusOuMoins): table = int(table) TABBLE = data.table(table) obj = TABBLE.objects.get(id=int(idP)) listeliste = data.listinside(table) listetab = data.listTable(table) links = data.links(table) entier = 0 soustable = data.soustable(table) titrest = [] for st in soustable: if st[0] == 0: titrest.append([st[0], st[2], getattr(obj, st[3]).all(), st[4]]) else: titrest.append([st[0], st[2], getattr(obj, st[3]).all()]) return render(request, 'BDD/ADMIN/fiche.html', locals())
def change(request, table, idP, what, filtre, page, nbparpage, nomClasser, plusOuMoins, nbajout, first=True): table = int(table) soustable = data.soustable(table) TABBLE = data.table(table) obj = TABBLE.objects.get(id=int(idP)) links = data.links(table) titrest = [] ii = 0 changed = False if (first and request.method == 'POST' and int(nbajout) == 0): nbajoutf = nbAjout(request.POST) if nbajoutf.is_valid(): nbajout = int(nbajoutf.cleaned_data['nb']) first=False else: nbajoutf = nbAjout() if (first and request.method == 'POST' and int(what) > 0 and int(nbajout) > 0): stforms = data.formsoustable(table, request.POST, int(what)) for frm in stforms: llll=[o.id for o in getattr(obj, frm[5]).all()] frm[0].fields[frm[3]].queryset = frm[4].objects.all().exclude(id__in=llll) for frm in stforms: if frm[0].is_valid(): frm[0].save(obj) changed = True return http.HttpResponseRedirect('') else: stforms = data.formsoustable(table) for frm in stforms: llll=[o.id for o in getattr(obj, frm[5]).all()] frm[0].fields[frm[3]].queryset = frm[4].objects.all().exclude(id__in=llll) Formset = formset_factory(frm[0], int(nbajout)) if (first and request.method == 'POST' and int(what) == 0 and int(nbajout) > 0): form = data.form(table, 0, request.POST) if form.is_valid(): form.modif(idP) changed = True else: cond = [] conditions = [] form = data.form(table, 0) data.changecond(table, cond, conditions, obj) entier = 0 for l in conditions: if cond[entier][1] == 1: form.fields[cond[entier][0]].initial = l.strftime('%d/%m/%Y') else: form.fields[cond[entier][0]].initial = l entier = entier + 1 for st in soustable: if st[0] == 0: titrest.append([stforms[ii], st[0], st[2], [getattr(obj, st[3]).all(), st[4]], st[1]]) else: titrest.append([stforms[ii], st[0], st[2], [getattr(obj, st[3], st[1]).all()], st[1]]) ii = ii + 1 return render(request, 'BDD/ADMIN/change.html', locals())