|
@@ -1,3 +1,4 @@
|
|
|
+from collections import OrderedDict
|
|
|
from datetime import timedelta
|
|
|
|
|
|
from django.contrib.auth import get_user_model
|
|
@@ -24,17 +25,17 @@ username_changed = Signal()
|
|
|
|
|
|
@receiver(archive_user_data)
|
|
|
def archive_user_details(sender, archive=None, **kwargs):
|
|
|
- archive.write_data_file('details', {
|
|
|
- _('Username'): sender.username,
|
|
|
- _('E-mail'): sender.email,
|
|
|
- _('Joined on'): sender.joined_on,
|
|
|
- _('Joined from ip'): sender.joined_from_ip or 'unavailable',
|
|
|
- })
|
|
|
+ archive.add_dict('details', OrderedDict([
|
|
|
+ (_('Username'), sender.username),
|
|
|
+ (_('E-mail'), sender.email),
|
|
|
+ (_('Joined on'), sender.joined_on),
|
|
|
+ (_('Joined from ip'), sender.joined_from_ip or 'unavailable'),
|
|
|
+ ]))
|
|
|
|
|
|
|
|
|
@receiver(archive_user_data)
|
|
|
def archive_user_profile_fields(sender, archive=None, **kwargs):
|
|
|
- clean_profile_fields = {}
|
|
|
+ clean_profile_fields = OrderedDict()
|
|
|
for profile_fields_group in profilefields.get_fields_groups():
|
|
|
for profile_field in profile_fields_group['fields']:
|
|
|
if sender.profile_fields.get(profile_field.fieldname):
|
|
@@ -42,34 +43,37 @@ def archive_user_profile_fields(sender, archive=None, **kwargs):
|
|
|
clean_profile_fields[str(profile_field.label)] = field_value
|
|
|
|
|
|
if clean_profile_fields:
|
|
|
- archive.write_data_file('profile_fields', clean_profile_fields)
|
|
|
+ archive.add_dict('profile_fields', clean_profile_fields)
|
|
|
|
|
|
|
|
|
@receiver(archive_user_data)
|
|
|
def archive_user_avatar(sender, archive=None, **kwargs):
|
|
|
- collection = archive.create_collection('avatar')
|
|
|
- collection.write_model_file(sender.avatar_tmp)
|
|
|
- collection.write_model_file(sender.avatar_src)
|
|
|
+ avatars_path = ['avatar']
|
|
|
+
|
|
|
+ archive.add_model_file(sender.avatar_tmp, avatars_path)
|
|
|
+ archive.add_model_file(sender.avatar_src, avatars_path)
|
|
|
for avatar in sender.avatar_set.iterator():
|
|
|
- collection.write_model_file(avatar.image)
|
|
|
+ archive.add_model_file(avatar.image, avatars_path)
|
|
|
|
|
|
|
|
|
@receiver(archive_user_data)
|
|
|
def archive_user_audit_trail(sender, archive=None, **kwargs):
|
|
|
- collection = archive.create_collection('audit_trail')
|
|
|
queryset = sender.audittrail_set.order_by('id')
|
|
|
for audit_trail in chunk_queryset(queryset):
|
|
|
- collection.write_data_file(audit_trail.created_at, audit_trail.ip_address)
|
|
|
+ item_name = audit_trail.created_at.strftime('audit_trail_%H%M%S')
|
|
|
+ item_path = [audit_trail.created_at.year, audit_trail.created_at.month, audit_trail.created_at.day]
|
|
|
+ archive.add_text(item_name, audit_trail.ip_address, item_path)
|
|
|
|
|
|
|
|
|
@receiver(archive_user_data)
|
|
|
def archive_user_name_history(sender, archive=None, **kwargs):
|
|
|
- collection = archive.create_collection('name_history')
|
|
|
for name_change in sender.namechanges.order_by('id').iterator():
|
|
|
- collection.write_data_file(name_change.changed_on, {
|
|
|
- _("New username"): name_change.new_username,
|
|
|
- _("Old username"): name_change.old_username,
|
|
|
- })
|
|
|
+ item_name = name_change.changed_on.strftime('name_change_%H%M%S')
|
|
|
+ item_path = [name_change.changed_on.year, name_change.changed_on.month, name_change.changed_on.day]
|
|
|
+ archive.add_dict(item_name, OrderedDict([
|
|
|
+ (_("New username"), name_change.new_username),
|
|
|
+ (_("Old username"), name_change.old_username),
|
|
|
+ ]), item_path)
|
|
|
|
|
|
|
|
|
@receiver(username_changed)
|