Skip to content
Snippets Groups Projects
Commit 52f62872 authored by Piotr Gawron's avatar Piotr Gawron
Browse files

fwhen we are adding voucher partner or health partner don't create user

parent 1569f48a
No related branches found
No related tags found
1 merge request!134Resolve "User managment page"
Pipeline #
...@@ -58,15 +58,18 @@ class WorkerForm(ModelForm): ...@@ -58,15 +58,18 @@ class WorkerForm(ModelForm):
def save(self, commit=True): def save(self, commit=True):
user = User.objects.create_user(username=self.cleaned_data['login'], create_user = self.cleaned_data.get("login", None) is not None
email=self.cleaned_data['email'], user = None
password=self.cleaned_data['password']) if create_user:
user = User.objects.create_user(username=self.cleaned_data['login'],
email=self.cleaned_data['email'],
password=self.cleaned_data['password'])
instance = super(WorkerForm, self).save(commit) instance = super(WorkerForm, self).save(commit)
instance.user = user if create_user:
print instance instance.user = user
instance.save() instance.save()
roles = WorkerStudyRole.objects.filter(worker=instance, study_id=GLOBAL_STUDY_ID) roles = WorkerStudyRole.objects.filter(worker=instance, study_id=GLOBAL_STUDY_ID)
if roles.count() > 0: if roles.count() > 0:
...@@ -76,7 +79,7 @@ class WorkerForm(ModelForm): ...@@ -76,7 +79,7 @@ class WorkerForm(ModelForm):
def clean(self): def clean(self):
cleaned_data = super(WorkerForm, self).clean() cleaned_data = super(WorkerForm, self).clean()
if cleaned_data['password'] is not None: if cleaned_data.get('password', None) is not None:
if cleaned_data['password'] != cleaned_data['password2']: if cleaned_data['password'] != cleaned_data['password2']:
self.add_error('password', "Password don't match") self.add_error('password', "Password don't match")
self.add_error('password2', "Password don't match") self.add_error('password2', "Password don't match")
...@@ -93,7 +96,7 @@ class WorkerForm(ModelForm): ...@@ -93,7 +96,7 @@ class WorkerForm(ModelForm):
if not any(char.isalpha() for char in password): if not any(char.isalpha() for char in password):
self.add_error('password', 'Password must contain at least 1 letter.') self.add_error('password', 'Password must contain at least 1 letter.')
if cleaned_data['login'] is not None: if cleaned_data.get('login', None) is not None:
if not re.match('^[.a-zA-Z0-9]+$', cleaned_data['login']): if not re.match('^[.a-zA-Z0-9]+$', cleaned_data['login']):
self.add_error('login', 'Login can contain only alphanumeric characters or dot.') self.add_error('login', 'Login can contain only alphanumeric characters or dot.')
......
import logging import logging
from django.urls import reverse from django.urls import reverse
from django_common.auth_backends import User
from web.forms import WorkerForm from web.forms import WorkerForm
from web.models import Worker from web.models import Worker
...@@ -28,6 +29,8 @@ class WorkerViewTests(LoggedInTestCase): ...@@ -28,6 +29,8 @@ class WorkerViewTests(LoggedInTestCase):
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
def test_render_worker_added_request(self): def test_render_worker_added_request(self):
self.assertEqual(1, User.objects.all().count())
language = create_language() language = create_language()
location = create_location() location = create_location()
...@@ -35,11 +38,11 @@ class WorkerViewTests(LoggedInTestCase): ...@@ -35,11 +38,11 @@ class WorkerViewTests(LoggedInTestCase):
response = self.client.post(reverse('web.views.worker_add', kwargs={'worker_type': WORKER_STAFF}), response = self.client.post(reverse('web.views.worker_add', kwargs={'worker_type': WORKER_STAFF}),
data=form_data) data=form_data)
logger.debug(response.content)
self.assertEqual(response.status_code, 302) self.assertEqual(response.status_code, 302)
self.assertEqual(1, Worker.objects.all().count()) self.assertEqual(1, Worker.objects.all().count())
self.assertEqual(2, User.objects.all().count())
def create_add_worker_form_data(self, language, location): def create_add_worker_form_data(self, language, location):
form_data = self.get_form_data(Worker()) form_data = self.get_form_data(Worker())
...@@ -49,6 +52,9 @@ class WorkerViewTests(LoggedInTestCase): ...@@ -49,6 +52,9 @@ class WorkerViewTests(LoggedInTestCase):
form_data["unit"] = "TEST DEPARTMENT" form_data["unit"] = "TEST DEPARTMENT"
form_data["email"] = "john.doe@unknown.domain.com" form_data["email"] = "john.doe@unknown.domain.com"
form_data["specialization"] = "tester" form_data["specialization"] = "tester"
form_data["login"] = "tester.login"
form_data["password"] = "123qweasdzxc"
form_data["password2"] = "123qweasdzxc"
form_data["languages"] = [language.id] form_data["languages"] = [language.id]
form_data["locations"] = [location.id] form_data["locations"] = [location.id]
form_data["role"] = ROLE_CHOICES_DOCTOR form_data["role"] = ROLE_CHOICES_DOCTOR
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment