68 lines
2.1 KiB
Python
68 lines
2.1 KiB
Python
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
|
|
from django.forms import ModelForm
|
|
|
|
from .models import ForwardFile, Collectivite, Guichet
|
|
|
|
class ForwardFileForm(ModelForm):
|
|
class Meta:
|
|
model = ForwardFile
|
|
exclude = ['connecteur', 'size', 'file_hash']
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
|
|
connecteur = kwargs.pop('connecteur' , None)
|
|
collectivite = kwargs.pop('collectivite', None)
|
|
|
|
super(ForwardFileForm, self).__init__(*args, **kwargs)
|
|
|
|
if (
|
|
(not hasattr(self.instance, 'connecteur') or not self.instance.connecteur)
|
|
and connecteur
|
|
):
|
|
self.instance.connecteur = connecteur
|
|
if (
|
|
(not hasattr(self.instance, 'collectivite') or not self.instance.collectivite)
|
|
and collectivite
|
|
):
|
|
self.instance.collectivite = collectivite
|
|
|
|
# only allow to select a 'collectivite' that belongs to the connecteur
|
|
if hasattr(self.instance, 'connecteur') and self.instance.connecteur:
|
|
self.fields['collectivite'].queryset = Collectivite.objects.filter(connecteur=self.instance.connecteur)
|
|
|
|
# TODO if the status is 'uploading' make everything read-only
|
|
|
|
|
|
class CollectiviteForm(ModelForm):
|
|
|
|
class Meta:
|
|
model = Collectivite
|
|
exclude = ['connecteur']
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
connecteur = kwargs.pop('connecteur', None)
|
|
super(CollectiviteForm, self).__init__(*args, **kwargs)
|
|
if (
|
|
(not hasattr(self.instance, 'connecteur') or not self.instance.connecteur)
|
|
and connecteur
|
|
):
|
|
self.instance.connecteur = connecteur
|
|
|
|
|
|
class GuichetForm(ModelForm):
|
|
|
|
class Meta:
|
|
model = Guichet
|
|
exclude = ['collectivite']
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
collectivite = kwargs.pop('collectivite', None)
|
|
super(GuichetForm, self).__init__(*args, **kwargs)
|
|
if (
|
|
(not hasattr(self.instance, 'collectivite') or not self.instance.collectivite)
|
|
and collectivite
|
|
):
|
|
self.instance.collectivite = collectivite
|