mirror of
https://github.com/ansible/awx.git
synced 2026-05-09 18:37:36 -02:30
Fix the m2m_changed when accessed reversed
This commit is contained in:
@@ -204,11 +204,15 @@ class ImplicitRoleField(models.ForeignKey):
|
|||||||
else:
|
else:
|
||||||
sender = field.related.through
|
sender = field.related.through
|
||||||
|
|
||||||
m2m_changed.connect(self.m2m_update(field_attr), sender, weak=False)
|
reverse = type(field) is ManyRelatedObjectsDescriptor
|
||||||
|
m2m_changed.connect(self.m2m_update(field_attr, reverse), sender, weak=False)
|
||||||
|
|
||||||
def m2m_update(self, field_attr):
|
def m2m_update(self, field_attr, _reverse):
|
||||||
def _m2m_update(instance, action, model, pk_set, reverse, **kwargs):
|
def _m2m_update(instance, action, model, pk_set, reverse, **kwargs):
|
||||||
if action == 'post_add' or action == 'pre_remove':
|
if action == 'post_add' or action == 'pre_remove':
|
||||||
|
if _reverse:
|
||||||
|
reverse = not reverse
|
||||||
|
|
||||||
if reverse:
|
if reverse:
|
||||||
for pk in pk_set:
|
for pk in pk_set:
|
||||||
obj = model.objects.get(pk=pk)
|
obj = model.objects.get(pk=pk)
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ def test_cant_delete_role(delete, admin):
|
|||||||
# Some day we might want to do this, but until that is speced out, lets
|
# Some day we might want to do this, but until that is speced out, lets
|
||||||
# ensure we don't slip up and allow this implicitly through some helper or
|
# ensure we don't slip up and allow this implicitly through some helper or
|
||||||
# another
|
# another
|
||||||
response = delete(reverse('api:role_detail', args=(admin.resource.admin_role.id,)), admin)
|
response = delete(reverse('api:role_detail', args=(admin.admin_role.id,)), admin)
|
||||||
assert response.status_code == 405
|
assert response.status_code == 405
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user