Fix CSV separator stripping bug in csv import
This commit is contained in:
+6
-6
@@ -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))
|
||||
|
||||
@@ -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();
|
||||
|
||||
+11
-1
@@ -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)
|
||||
|
||||
+9
-1
@@ -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
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user