def user_csv(request, instance): duplicate_ids_query = """ SELECT * FROM otm1_migrator_otm1userrelic WHERE email IN (SELECT email FROM otm1_migrator_otm1userrelic WHERE instance_id=%s GROUP BY email HAVING count(id) > 1) ORDER BY "email" """ % instance.pk duplicate_relics = OTM1UserRelic.objects.raw(duplicate_ids_query) relics = duplicate_relics response = get_csv_response('user_export.csv') writer = csv.DictWriter(response, ['otm1_user_id', 'otm2_model_id', 'otm1_username', 'otm2_username', 'last_login', 'first_name', 'last_name', 'email', 'body']) writer.writeheader() for relic in relics: user = User.objects.get(pk=relic.otm2_model_id) if relic.otm1_username == user.username: continue assert relic.email.lower() == user.email.lower() row = { 'otm1_user_id': relic.otm1_model_id, 'otm2_model_id': user.pk, 'otm1_username': relic.otm1_username, 'last_login': user.last_login, 'otm2_username': user.username, 'first_name': user.first_name, 'last_name': user.last_name, 'email': user.email, } body = render_email_body(user, instance) row['body'] = body writer.writerow(row) return response
def dupl_user_csv(request, instance): duplicate_ids_query = """ SELECT * FROM otm1_migrator_otm1userrelic WHERE email IN (SELECT email FROM otm1_migrator_otm1userrelic WHERE instance_id=%s GROUP BY email HAVING count(id) > 1) ORDER BY "email" """ % instance.pk duplicate_relics = OTM1UserRelic.objects.raw(duplicate_ids_query) relics = duplicate_relics response = get_csv_response('user_export.csv') writer = csv.DictWriter(response, ['otm1_user_id', 'otm2_model_id', 'otm1_username', 'otm2_username', 'last_login', 'first_name', 'last_name', 'email', 'body']) writer.writeheader() for relic in relics: user = User.objects.get(pk=relic.otm2_model_id) if relic.otm1_username == user.username: continue assert relic.email.lower() == user.email.lower() row = { 'otm1_user_id': relic.otm1_model_id, 'otm2_model_id': user.pk, 'otm1_username': relic.otm1_username, 'last_login': user.last_login, 'otm2_username': user.username, 'first_name': user.first_name, 'last_name': user.last_name, 'email': user.email, } body = render_email_body(user, instance) row['body'] = body writer.writerow(row) return response
def users_csv(request, instance): "Return a user csv synchronously" response = get_csv_response('users.csv') extra = _get_user_extra_args(request) write_users('csv', response, instance, *extra) return response