Only saving Group model rulesets on instance creation and when inlines are saved

This commit is contained in:
eeintech 2020-10-05 10:04:54 -05:00
parent 796e89c921
commit c910307ce5
2 changed files with 15 additions and 9 deletions

View File

@ -97,15 +97,11 @@ class RoleGroupAdmin(admin.ModelAdmin):
# Save inlines before model
# https://stackoverflow.com/a/14860703/12794913
def save_model(self, request, obj, form, change):
if obj is not None:
# Save model immediately only if in 'Add role' view
super().save_model(request, obj, form, change)
else:
pass # don't actually save the parent instance
def save_formset(self, request, form, formset, change):
formset.save() # this will save the children
form.instance.save() # form.instance is the parent
form.instance.save(update_fields=['name']) # form.instance is the parent
class InvenTreeUserAdmin(UserAdmin):

View File

@ -155,7 +155,14 @@ class RuleSet(models.Model):
model=model
)
def __str__(self):
def __str__(self, debug=False):
""" Ruleset string representation """
if debug:
# Makes debugging easier
return f'{str(self.group).ljust(15)}: {self.name.title().ljust(15)} | ' \
f'v: {str(self.can_view).ljust(5)} | a: {str(self.can_add).ljust(5)} | ' \
f'c: {str(self.can_change).ljust(5)} | d: {str(self.can_delete).ljust(5)}'
else:
return self.name
def save(self, *args, **kwargs):
@ -327,5 +334,8 @@ def create_missing_rule_sets(sender, instance, **kwargs):
then we can now use these RuleSet values to update the
group permissions.
"""
created = kwargs.get('created', False)
update_fields = kwargs.get('update_fields', None)
if created or update_fields:
update_group_roles(instance)