Adjusted the code to the changed signature of admin.utils.get_deleted_objects()
- Legacy-Id: 18053
This commit is contained in:
parent
7c7c5da39f
commit
06fa5e517a
|
@ -6,6 +6,8 @@ import datetime
|
|||
|
||||
from pyquery import PyQuery
|
||||
from io import StringIO
|
||||
|
||||
from django.http import HttpRequest
|
||||
from django.urls import reverse as urlreverse
|
||||
from django.utils.encoding import iri_to_uri
|
||||
|
||||
|
@ -229,13 +231,17 @@ class PersonUtilsTests(TestCase):
|
|||
self.assertTrue(source_alias in target.alias_set.all())
|
||||
|
||||
def test_merge_persons(self):
|
||||
secretariat_role = RoleFactory(group__acronym='secretariat', name_id='secr')
|
||||
user = secretariat_role.person.user
|
||||
request = HttpRequest()
|
||||
request.user = user
|
||||
source = PersonFactory()
|
||||
target = PersonFactory()
|
||||
source_id = source.pk
|
||||
source_email = source.email_set.first()
|
||||
source_alias = source.alias_set.first()
|
||||
source_user = source.user
|
||||
merge_persons(source, target, file=StringIO())
|
||||
merge_persons(request, source, target, file=StringIO())
|
||||
self.assertTrue(source_email in target.email_set.all())
|
||||
self.assertTrue(source_alias in target.alias_set.all())
|
||||
self.assertFalse(Person.objects.filter(id=source_id))
|
||||
|
|
|
@ -9,7 +9,6 @@ import sys
|
|||
import syslog
|
||||
|
||||
from django.contrib import admin
|
||||
from django.contrib.auth.models import User
|
||||
from django.core.cache import cache
|
||||
from django.core.exceptions import ObjectDoesNotExist
|
||||
|
||||
|
@ -18,7 +17,7 @@ import debug # pyflakes:ignore
|
|||
from ietf.person.models import Person
|
||||
from ietf.utils.mail import send_mail
|
||||
|
||||
def merge_persons(source, target, file=sys.stdout, verbose=False):
|
||||
def merge_persons(request, source, target, file=sys.stdout, verbose=False):
|
||||
changes = []
|
||||
|
||||
# write log
|
||||
|
@ -44,12 +43,8 @@ def merge_persons(source, target, file=sys.stdout, verbose=False):
|
|||
|
||||
# check for any remaining relationships and exit if more found
|
||||
objs = [source]
|
||||
opts = Person._meta
|
||||
user = User.objects.filter(is_superuser=True).first()
|
||||
admin_site = admin.site
|
||||
using = 'default'
|
||||
deletable_objects = admin.utils.get_deleted_objects(
|
||||
objs, opts, user, admin_site, using)
|
||||
# request.user = User.objects.filter(is_superuser=True).first()
|
||||
deletable_objects = admin.utils.get_deleted_objects(objs, request, admin.site)
|
||||
deletable_objects_summary = deletable_objects[1]
|
||||
if len(deletable_objects_summary) > 1: # should only inlcude one object (Person)
|
||||
print("Not Deleting Person: {}({})".format(source.ascii,source.pk), file=file)
|
||||
|
@ -194,7 +189,6 @@ def get_active_balloters(ballot_type):
|
|||
return active_balloters
|
||||
|
||||
def get_active_ads():
|
||||
from ietf.person.models import Person
|
||||
cache_key = "doc:active_ads"
|
||||
active_ads = cache.get(cache_key)
|
||||
if not active_ads:
|
||||
|
@ -203,7 +197,6 @@ def get_active_ads():
|
|||
return active_ads
|
||||
|
||||
def get_active_irsg():
|
||||
from ietf.person.models import Person
|
||||
cache_key = "doc:active_irsg_balloters"
|
||||
active_irsg_balloters = cache.get(cache_key)
|
||||
if not active_irsg_balloters:
|
||||
|
|
|
@ -111,7 +111,7 @@ def merge(request):
|
|||
target = form.cleaned_data.get('target')
|
||||
# Do merge with force
|
||||
output = StringIO()
|
||||
success, changes = merge_persons(source, target, file=output)
|
||||
success, changes = merge_persons(request, source, target, file=output)
|
||||
if success:
|
||||
messages.success(request, 'Merged {} ({}) to {} ({}). {})'.format(
|
||||
source.name, source_id, target.name, target.id, changes))
|
||||
|
|
Loading…
Reference in a new issue