39 lines
1.8 KiB
Python
Raw Normal View History

2021-02-11 21:18:00 +01:00
from django import forms
from .models import License
from django.db.models import Q
from django.contrib.auth.models import User
from health_view.models import Permission
class CreateLicenseForm(forms.ModelForm):
class Meta:
model = License
fields = ('patient', 'justified', 'exp_date', 'folder_parts', 'permissions', 'signature',)
def __init__(self, current_user, *args, **kwargs):
super(CreateLicenseForm, self).__init__(*args, **kwargs)
license = License.objects.filter(justified=current_user).order_by('patient')
conditions = Q(id='0')
for li in license:
print(li.patient_id)
conditions |= Q(id=li.patient_id)
self.fields['permissions'] = forms.ModelMultipleChoiceField(queryset=Permission.objects.all())
if License.objects.filter(justified=current_user).exists() and License.objects.filter(license_creator=current_user).exists():
self.fields['patient'].queryset = User.objects.filter(conditions).distinct()
elif License.objects.filter(justified=current_user).exists():
conditions |= Q(username=current_user.username)
self.fields['patient'].queryset = User.objects.filter(conditions).distinct()
elif License.objects.filter(license_creator=current_user).exists():
self.fields['patient'].queryset = User.objects.filter(username="-")
else:
self.fields['patient'].queryset = User.objects.filter(username=current_user.username)
class CreateLicenseForm_filled(forms.Form):
patient = forms.CharField()
justified = forms.CharField()
license_creator = forms.CharField()
exp_date = forms.CharField()
folder_parts = forms.CharField()
permissions = forms.CharField()
signature = forms.CharField()