FSN#35817 Bij koppeltabellen vaker bestaande records onderdrukken bij toevoegen

Ook betere melding geven bij verwijderen


svn path=/Website/trunk/; revision=28996
This commit is contained in:
Jos Groot Lipman
2016-04-18 14:37:06 +00:00
parent 97b8862d4c
commit c40a9ace37
2 changed files with 20 additions and 4 deletions

View File

@@ -48,7 +48,8 @@ function model_fac_gebruikersgroep()
"label": L("prs_perslid"),
"typ": "key",
"required": true,
"foreign": "PRS_PERSLID"
"foreign": "PRS_PERSLID",
"uniquewith": "fac_groep"
}
};

View File

@@ -50,6 +50,21 @@ function scaffolding_edit(model, scf_params)
if (fld in filter || !model.REST_PUT) // Bij geen REST_PUT wordt *alles* readonly. Waarschijnlijk alleen delete dan.
model.fields[fld].readonly = true;
}
// Uniques verwerken,
// Die misbruiken we om een intelligentere 'Wilt U verwijderen' titel te kunnen maken
// Koppeltabellen hebben namelijk geen 'name' veld en we gokken dan <20><>n van de uniques
// interessant is
for (var fld in model.fields)
{
var field = model.fields[fld];
if (field.uniquewith)
{
if (!xxx_data.name && !(fld in filter))
{
xxx_data.name = xxx_data[fld].name;
}
}
}
}
else
{
@@ -99,9 +114,9 @@ function scaffolding_edit(model, scf_params)
var field = model.fields[fld];
if (field.uniquewith)
{
var where = "{0} NOT IN (SELECT {1} FROM {2} WHERE {3} = {4})".format(field.foreign.key,
field.dbs,
model.table,
var where = "{0} NOT IN (SELECT {1} FROM {2} WHERE {3} = {4} {5})".format(field.foreign.key,
field.dbs,
model.table,
filter[field.uniquewith],
model.fields[field.uniquewith].dbs)
field.foreign.where = (field.foreign.where?field.foreign.where + " AND ":"") + where;