opzione reset_on_excluded ora attiva e funzionante
parent
6e8b725ba7
commit
4a1d96cf11
|
|
@ -134,11 +134,16 @@ class DrillDownAutocompleteModelAdmin(admin.options.BaseModelAdmin):
|
|||
if "widget" not in kwargs:
|
||||
daf = self.get_drilldown_autocomplete_fields(request)
|
||||
if db_field.name in daf:
|
||||
attrs = {}
|
||||
attrs["data-linkedfields"] = json.dumps(
|
||||
list(daf[db_field.name]['linked'].keys()))
|
||||
if daf[db_field.name].get('included_only', False):
|
||||
attrs['data-included_only'] = 1
|
||||
attrs = {'data-drilldown_enabled': 1}
|
||||
if 'linked' in daf[db_field.name]:
|
||||
attrs["data-linkedfields"] = json.dumps(
|
||||
list(daf[db_field.name]['linked'].keys()))
|
||||
if daf[db_field.name].get('included_only', False):
|
||||
attrs['data-included_only'] = 1
|
||||
else:
|
||||
if 'reset_on_excluded' in daf[db_field.name]:
|
||||
attrs['data-reset_on_excluded'] = json.dumps(
|
||||
list(daf[db_field.name]['reset_on_excluded']))
|
||||
kwargs["widget"] = DrillDownAutocompleteSelect(
|
||||
db_field, self.admin_site, attrs=attrs, using=db
|
||||
)
|
||||
|
|
|
|||
|
|
@ -15,31 +15,33 @@
|
|||
model_name: element.dataset.modelName,
|
||||
field_name: field_name
|
||||
};
|
||||
if (element.dataset.hasOwnProperty('linkedfields')) {
|
||||
if (element.dataset.hasOwnProperty('drilldown_enabled')) {
|
||||
out.drilldown = 1;
|
||||
var linkedfields = JSON.parse(element.dataset.linkedfields)
|
||||
var linkedfields_obj = {};
|
||||
var some_obj = false;
|
||||
for (var i in linkedfields) {
|
||||
if (linkedfields.hasOwnProperty(i)) {
|
||||
var remote_field = linkedfields[i];
|
||||
var field_id = element.dataset.select2Id;
|
||||
var remote_id = field_id.slice(0, field_id.length - field_name.length) + remote_field;
|
||||
var value = document.querySelectorAll('[data-select2-id=' + remote_id + '].admin-autocomplete')[0].value;
|
||||
if (value !== '') {
|
||||
linkedfields_obj[remote_field] = value;
|
||||
some_obj = true;
|
||||
if (element.dataset.hasOwnProperty('linkedfields')) {
|
||||
var linkedfields = JSON.parse(element.dataset.linkedfields)
|
||||
var linkedfields_obj = {};
|
||||
var some_obj = false;
|
||||
for (var i in linkedfields) {
|
||||
if (linkedfields.hasOwnProperty(i)) {
|
||||
var remote_field = linkedfields[i];
|
||||
var field_id = element.dataset.select2Id;
|
||||
var remote_id = field_id.slice(0, field_id.length - field_name.length) + remote_field;
|
||||
var value = document.querySelectorAll('[data-select2-id=' + remote_id + '].admin-autocomplete')[0].value;
|
||||
if (value !== '') {
|
||||
linkedfields_obj[remote_field] = value;
|
||||
some_obj = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (some_obj) {
|
||||
out['linkedfields'] = JSON.stringify(linkedfields_obj);
|
||||
if (some_obj) {
|
||||
out['linkedfields'] = JSON.stringify(linkedfields_obj);
|
||||
}
|
||||
}
|
||||
}
|
||||
return out
|
||||
}
|
||||
};
|
||||
if (element.dataset.hasOwnProperty('linkedfields')) {
|
||||
if (element.dataset.hasOwnProperty('drilldown_enabled')) {
|
||||
select2_config.templateResult = (item,container)=>{
|
||||
var styleClass = '';
|
||||
|
||||
|
|
@ -62,6 +64,29 @@
|
|||
}
|
||||
}
|
||||
$(element).select2(select2_config);
|
||||
if (element.dataset.hasOwnProperty('reset_on_excluded')) {
|
||||
$(element).on('select2:select', ev=>{
|
||||
var data = $(element).select2('data');
|
||||
if (Array.isArray(data) && data.length > 0) {
|
||||
var ddok = data[0].ddok;
|
||||
if (!(ddok ?? true)) {
|
||||
var reset_on_excluded = JSON.parse(element.dataset.reset_on_excluded);
|
||||
for (var i in reset_on_excluded) {
|
||||
if (reset_on_excluded.hasOwnProperty(i)) {
|
||||
var field_name = element.dataset.fieldName
|
||||
var remote_field = reset_on_excluded[i];
|
||||
var field_id = element.dataset.select2Id;
|
||||
var remote_id = field_id.slice(0, field_id.length - field_name.length) + remote_field;
|
||||
var remote_element = document.querySelectorAll('[data-select2-id=' + remote_id + '].admin-autocomplete')[0];
|
||||
$(remote_element).val(null).trigger("change");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
});
|
||||
return this;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue