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

WorkerForm extracted to separate file

parent b22c9015
No related branches found
No related tags found
1 merge request!117Resolve "extend worker class"
from forms import WorkerForm, AppointmentDetailForm, AppointmentEditForm, AppointmentAddForm, VisitDetailForm, \ from worker_form import WorkerForm
from forms import AppointmentDetailForm, AppointmentEditForm, AppointmentAddForm, VisitDetailForm, \
VisitAddForm, ContactAttemptForm, ContactAttemptEditForm, KitRequestForm, StatisticsForm, AvailabilityAddForm, \ VisitAddForm, ContactAttemptForm, ContactAttemptEditForm, KitRequestForm, StatisticsForm, AvailabilityAddForm, \
AvailabilityEditForm, HolidayAddForm AvailabilityEditForm, HolidayAddForm
from study_subject_forms import StudySubjectAddForm, StudySubjectDetailForm, StudySubjectEditForm from study_subject_forms import StudySubjectAddForm, StudySubjectDetailForm, StudySubjectEditForm
......
...@@ -6,11 +6,9 @@ from django import forms ...@@ -6,11 +6,9 @@ from django import forms
from django.forms import ModelForm, Form from django.forms import ModelForm, Form
from django.utils.dates import MONTHS from django.utils.dates import MONTHS
from web.models.constants import GLOBAL_STUDY_ID
from web.models import StudySubject, Worker, Appointment, Visit, AppointmentType, ContactAttempt, AppointmentTypeLink, \ from web.models import StudySubject, Worker, Appointment, Visit, AppointmentType, ContactAttempt, AppointmentTypeLink, \
Availability, Holiday Availability, Holiday
from web.models.constants import SUBJECT_TYPE_CHOICES from web.models.constants import SUBJECT_TYPE_CHOICES
from web.models.worker_study_role import STUDY_ROLE_CHOICES, WorkerStudyRole
from web.views.notifications import get_filter_locations from web.views.notifications import get_filter_locations
""" """
...@@ -51,25 +49,6 @@ def get_worker_from_args(kwargs): ...@@ -51,25 +49,6 @@ def get_worker_from_args(kwargs):
return result return result
class WorkerForm(ModelForm):
class Meta:
model = Worker
exclude = ['appointments']
def __init__(self, *args, **kwargs):
choices = kwargs.pop('role_choices', STUDY_ROLE_CHOICES)
super(WorkerForm, self).__init__(*args, **kwargs)
self.fields['role'] = forms.ChoiceField(label='Role', choices=choices)
def save(self, commit=True):
instance = super(WorkerForm, self).save(commit)
roles = WorkerStudyRole.objects.filter(worker=instance, study_id=GLOBAL_STUDY_ID)
if roles.count() > 0:
roles.update(role=self.cleaned_data['role'])
else:
WorkerStudyRole.objects.create(worker=instance, study_id=GLOBAL_STUDY_ID, role=self.cleaned_data['role'])
class AppointmentDetailForm(ModelForm): class AppointmentDetailForm(ModelForm):
class Meta: class Meta:
model = Appointment model = Appointment
......
from django import forms
from django.forms import ModelForm
from web.models import Worker, WorkerStudyRole
from web.models.constants import GLOBAL_STUDY_ID
from web.models.worker_study_role import STUDY_ROLE_CHOICES
class WorkerForm(ModelForm):
class Meta:
model = Worker
exclude = ['appointments']
def __init__(self, *args, **kwargs):
choices = kwargs.pop('role_choices', STUDY_ROLE_CHOICES)
super(WorkerForm, self).__init__(*args, **kwargs)
self.fields['role'] = forms.ChoiceField(label='Role', choices=choices)
def save(self, commit=True):
instance = super(WorkerForm, self).save(commit)
roles = WorkerStudyRole.objects.filter(worker=instance, study_id=GLOBAL_STUDY_ID)
if roles.count() > 0:
roles.update(role=self.cleaned_data['role'])
else:
WorkerStudyRole.objects.create(worker=instance, study_id=GLOBAL_STUDY_ID, role=self.cleaned_data['role'])
\ No newline at end of file
...@@ -5,7 +5,7 @@ from django.db import models ...@@ -5,7 +5,7 @@ from django.db import models
from django.db.models.signals import post_save from django.db.models.signals import post_save
from django.dispatch import receiver from django.dispatch import receiver
from constants import BOOL_CHOICES, SUBJECT_TYPE_CHOICES_CONTROL from web.models.constants import BOOL_CHOICES, SUBJECT_TYPE_CHOICES_CONTROL
class Visit(models.Model): class Visit(models.Model):
......
...@@ -4,10 +4,11 @@ import logging ...@@ -4,10 +4,11 @@ import logging
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from django.shortcuts import redirect, get_object_or_404 from django.shortcuts import redirect, get_object_or_404
from web.forms import WorkerForm
from web.forms import AvailabilityAddForm, AvailabilityEditForm, HolidayAddForm
from web.models.worker_study_role import STUDY_ROLE_CHOICES, HEALTH_PARTNER_ROLE_CHOICES, VOUCHER_PARTNER_ROLE_CHOICES, \ from web.models.worker_study_role import STUDY_ROLE_CHOICES, HEALTH_PARTNER_ROLE_CHOICES, VOUCHER_PARTNER_ROLE_CHOICES, \
WORKER_STAFF, WORKER_HEALTH_PARTNER, WORKER_VOUCHER_PARTNER WORKER_STAFF, WORKER_HEALTH_PARTNER, WORKER_VOUCHER_PARTNER
from . import wrap_response from . import wrap_response
from ..forms import WorkerForm, AvailabilityAddForm, AvailabilityEditForm, HolidayAddForm
from ..models import Worker, Availability, Holiday from ..models import Worker, Availability, Holiday
from ..models.constants import WEEKDAY_CHOICES, GLOBAL_STUDY_ID from ..models.constants import WEEKDAY_CHOICES, GLOBAL_STUDY_ID
......
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