isolated cooploading functionality

This commit is contained in:
Sam
2021-02-26 11:46:40 +00:00
parent 86020afd27
commit 0f7af9c0fb
4 changed files with 42 additions and 29 deletions

View File

@@ -183,35 +183,11 @@ def load_coop_managers(request):
logging.info(f"Reading contents of {csv_file.name}")
decoded_file = csv_file.read().decode('utf-8').splitlines()
csv_reader = csv.DictReader(decoded_file, delimiter=',')
coop_counter = 0
user_counter = 0
for row in csv_reader:
if '' in (row['cif'], row['nombre-coop'], row['email']):
logging.error(f"Required data missing: {row}")
continue
try:
coop_data = {
'cif': row['cif'].strip(),
'company_name': row['nombre-coop'].strip(),
'short_name': row['nombre-corto'].strip(),
'shop': bool(row['es-tienda'].strip()),
'shop_link': row['url'].strip(),
}
coop = Company.objects.create(**coop_data)
logging.info(f"Created Coop: {coop_data}")
coop_counter += 1
coop_count, user_count = utils.coop_loader(csv_reader, request)
coop_user = User.objects.create_user(email=row['email'], company=coop, role='COOP_MANAGER', is_active=False)
# send confirmation email
utils.send_verification_email(request, coop_user)
logging.info(f"Created User: {coop_user}")
user_counter += 1
except Exception as e:
logging.error(f"Could not parse {row}")
return Response()
return Response({'details': f"Created {coop_count} Companies, {user_count} Managing Users"})
except Exception as e:
return Response({"errors": {"details": str(type(e))}})
return Response({"errors": {"details": f'{type(e)}: {e}'}})
@api_view(['GET',])