Skip to content

Commit

Permalink
Merge pull request #40 from rootstrap/fix/user-fields-admin
Browse files Browse the repository at this point in the history
Fix issue with user fields list
  • Loading branch information
brunomichetti authored Aug 18, 2020
2 parents c38a309 + 5f93840 commit 916f3d9
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 10 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,5 @@ settings.py
env*

__pycache__

*DS_Store
5 changes: 4 additions & 1 deletion drip/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ class DripAdmin(admin.ModelAdmin):
QuerySetRuleInline,
]
form = DripForm
users_fields = []

def av(self, view):
return self.admin_site.admin_view(view)
Expand Down Expand Up @@ -102,7 +103,9 @@ def build_extra_context(self, extra_context):
from drip.utils import get_simple_fields
extra_context = extra_context or {}
User = get_user_model()
extra_context['field_data'] = json.dumps(get_simple_fields(User))
if not self.users_fields:
self.users_fields = json.dumps(get_simple_fields(User))
extra_context['field_data'] = self.users_fields
return extra_context

def add_view(self, request, extra_context=None):
Expand Down
10 changes: 2 additions & 8 deletions drip/templates/admin/drip/change_form.html
Original file line number Diff line number Diff line change
Expand Up @@ -52,14 +52,8 @@
for (var i=0; i < data.length; i++) {
var item = data[i];
if (item[0].indexOf(val) != -1) {
if (item[0].includes('__')){
let parts = item[0].split('__');
let value = `${parts[0]}__user__${parts[1]}`;
$(ul).append(`<li data-field=${value}>${value} (${item[1]})</li>`);
} else {
$(ul).append(`<li data-field=${item[0]}>${item[0]} (${item[1]})</li>`);
};
};
$(ul).append(`<li data-field=${item[0]}>${item[0]} (${item[1]})</li>`);
};
};
}

Expand Down
11 changes: 10 additions & 1 deletion drip/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,16 @@ def give_model_field(full_field, Model):


def get_simple_fields(Model, **kwargs):
return [[f[0], f[3].__name__] for f in get_fields(Model, **kwargs)]
ret_list = []
for f in get_fields(Model, **kwargs):
if '__' in f[0]:
# Add __user__ to the fields in related models
parts = f[0].split('__')
f[0] = parts[0] + '__user__' + parts[1]
if f[0] not in [x[0] for x in ret_list]:
# Add field if not already in list
ret_list.append([f[0], f[3].__name__])
return ret_list


def get_user_model():
Expand Down

0 comments on commit 916f3d9

Please sign in to comment.