diff --git a/members/models.py b/members/models.py index aa52019..d0b47da 100644 --- a/members/models.py +++ b/members/models.py @@ -69,12 +69,12 @@ class Member(models.Model): try: obj = cls.objects.create( - first_name=row[0], - last_name=row[1], - email=row[2], - POR=row[3], - AYY=row[4].lower() in affirmative_answers, - jas=row[5].lower() in affirmative_answers, + first_name=row[0].strip(), + last_name=row[1].strip(), + email=row[2].strip(), + POR=row[3].strip(), + AYY=row[4].lower().strip() in affirmative_answers, + jas=row[5].lower().strip() in affirmative_answers, paid=timezone.now() ) print("added obj {}".format(obj)) diff --git a/members/static/js/members_controllers.js b/members/static/js/members_controllers.js index 5fadf64..282fe9f 100644 --- a/members/static/js/members_controllers.js +++ b/members/static/js/members_controllers.js @@ -266,7 +266,7 @@ app.controller("applEditController", memberDataEditor("/members/applications")); app.controller("addManyController", function($scope, $http, $window) { $scope.memberData = ''; $scope.sendCSV = function() { - $http.post("/members/api/csvimport", $scope.memberData).then( + $http.post("/members/api/csvimport", {'csv': $scope.memberData}).then( function(response) { notySuccess("Lähetys onnistui"); $window.location.reload(); diff --git a/members/tests.py b/members/tests.py index 437021c..25ce485 100644 --- a/members/tests.py +++ b/members/tests.py @@ -1,11 +1,21 @@ -from django.test import TestCase +from django.test import TestCase, Client from members.models import Member +from django.contrib.auth.models import User +import time # Create your tests here. class MemberRegisterTestCase(TestCase): def setUp(self): memb = Member.objects.create(first_name="Tidus", last_name="Tester") + test_admin = User.objects.create_superuser('test_admin', 'myemail@test.com', 'password123') def test_member_created(self): members = Member.objects.get(first_name="Tidus") self.assertTrue(members) + + def test_csv_import(self): + c = Client() + c.login(username='test_admin', password='password123') + + response = c.post('/members/api/csvimport', {'csv': 'reiska, reiska, asd@asd, espoo, 1, 1'}) + self.assertEqual(response.status_code, 200) diff --git a/members/views.py b/members/views.py index b3b3734..bdfdaff 100644 --- a/members/views.py +++ b/members/views.py @@ -197,10 +197,18 @@ def member(request, *args, **kwargs): @permission_required('members.change_member', login_url='/login') def csv_import(request, *args, **kwargs): data = request.body.decode("utf-8") - resp_data = Member.import_csv(data) + + try: + payload = json.loads(data) + except: + return HttpResponse(json.dumps({'error': 'Malformed request'}), 400) + + resp_data = Member.import_csv(payload['csv']) resp = HttpResponse(json.dumps(resp_data)) if resp_data['status'] == 'failure': resp.status_code = 400 + memberlogger.warning('POST request failed with status code {}'.format(resp.status_code)) + return resp diff --git a/requirements.txt b/requirements.txt index 9aab945..aa10343 100644 --- a/requirements.txt +++ b/requirements.txt @@ -10,8 +10,6 @@ ptyprocess==0.5.1 pytz==2016.4 simplegeneric==0.8.1 traitlets==4.2.1 -paramiko==2.0.2 -qrcode==5.3 Pillow==3.3.1 requests==2.11.1 django-nocaptcha-recaptcha==0.0.19 diff --git a/scripts/autoinstall.sh b/scripts/autoinstall.sh index 6ca4d6d..b1d6f09 100755 --- a/scripts/autoinstall.sh +++ b/scripts/autoinstall.sh @@ -48,7 +48,7 @@ echo "Building web container..." docker-compose -p "$PROJECT" build web echo "Running manage.py commands..." -docker-compose -p "$PROJECT" run web python manage.py migrate || { echo "Failed to apply migrations!"; exit 1; } +docker-compose -p "$PROJECT" run web python manage.py migrate --noinput || { echo "Failed to apply migrations!"; exit 1; } docker-compose -p "$PROJECT" run web python manage.py createdefaultadmin || { echo "Failed to create default admin user."; } echo "Starting all containers..." diff --git a/sikweb/settings-sample.py b/sikweb/settings-sample.py index c02479b..03c40cc 100644 --- a/sikweb/settings-sample.py +++ b/sikweb/settings-sample.py @@ -149,7 +149,7 @@ EMAIL_HOST='smtp.gmail.com' EMAIL_PORT=587 EMAIL_HOST_USER = '@gmail.com' EMAIL_HOST_PASSWORD = '' -DEFAULT_EMAIL_FROM = 'SIK Viestintä ' +DEFAULT_FROM_EMAIL = 'SIK Viestintä ' #ReCaptcha