diff --git a/members/models.py b/members/models.py index 436a73d..afa0bfc 100644 --- a/members/models.py +++ b/members/models.py @@ -1,5 +1,7 @@ from django.db import models from django.utils import timezone +from io import StringIO +import csv class Member(models.Model): ''' @@ -45,9 +47,33 @@ class Member(models.Model): except KeyError: pass self.save() + @classmethod + def import_csv(cls, csv_string): + reader = csv.reader(StringIO(csv_string.strip())) + response = {"status": "success", "errors": []}; + try: + data = list(reader) + except ValueError: + return {"status": "failure", "errors": ["could not parse csv file"]} + for row in data: + if True: + obj = cls.objects.create( + first_name=row[0], + last_name=row[1], + email=row[2], + POR=row[3], + AYY=bool(row[4]), + jas=bool(row[5]), + ) + print("added obj {}".format(obj)) + else: + response["status"] = "failure" + response["errors"].append("failure adding item {}".format(", ".join(row))) + + return response def __str__(self): - return "{} {}".format(first_name, last_name) + return "{} {}".format(self.first_name, self.last_name) class MemberRequest(models.Model): member = models.ForeignKey(Member)