load-pratic-ldif: handle partial loading
This commit is contained in:
parent
ad48c52cb4
commit
08703e196d
|
@ -20,8 +20,12 @@ class PraticLDIFParser(ldif.LDIFParser):
|
|||
def __init__(self, *args, **kwargs):
|
||||
self.services = {}
|
||||
self.service_instances = {}
|
||||
for si in ServiceInstance.objects.all():
|
||||
self.service_instances[(si.collectivity.slug, si.slug)] = si
|
||||
self.accesses = []
|
||||
self.collectivities = {}
|
||||
for col in Collectivity.objects.all():
|
||||
self.collectivities['ou=%s,dc=pratic59,dc=fr' % col.slug] = col
|
||||
self.users = []
|
||||
self.log = logging.getLogger(__name__)
|
||||
ldif.LDIFParser.__init__(self, *args, **kwargs)
|
||||
|
@ -205,6 +209,8 @@ class Command(BaseCommand):
|
|||
# set fk
|
||||
if not obj:
|
||||
return
|
||||
if obj.pk:
|
||||
return
|
||||
for attr in ('collectivity', 'service', 'service_instance', 'user'):
|
||||
if hasattr(obj, attr):
|
||||
setattr(obj, attr, getattr(obj, attr))
|
||||
|
@ -229,7 +235,8 @@ class Command(BaseCommand):
|
|||
print '', '-', len(parser.service_instances), 'service instances'
|
||||
print '', '-', len(parser.accesses), 'accesses'
|
||||
for key in parser.service_instances:
|
||||
parser.service_instances[key] = parser.service_instances[key]()
|
||||
if callable(parser.service_instances[key]):
|
||||
parser.service_instances[key] = parser.service_instances[key]()
|
||||
parser.accesses = [resolve() for resolve in parser.accesses]
|
||||
with transaction.atomic():
|
||||
with defer_update_transitive_closure():
|
||||
|
|
|
@ -31,7 +31,7 @@ class User(BaseUser):
|
|||
# ou -> collectivity
|
||||
# username = uid + '@' + collectivity.slug
|
||||
USER_PROFILE = ['uid', 'first_name', 'last_name', 'email', 'collectivity',
|
||||
'is_admin', 'sirh_code', 'sirh_label', 'direction',
|
||||
'is_admin', 'sirh_code', 'direction',
|
||||
'postal_address', 'fax', 'mobile', 'phone',
|
||||
'certificate_issuer_dn', 'certificate_subject_dn']
|
||||
|
||||
|
|
Reference in New Issue