2014-07-08 15:19:15 +00:00
|
|
|
from django import forms
|
|
|
|
from django.utils.translation import ugettext_lazy as _
|
|
|
|
|
|
|
|
from orchestra.forms.widgets import ShowTextWidget, ReadOnlyWidget
|
|
|
|
|
|
|
|
|
|
|
|
class ResourceForm(forms.ModelForm):
|
|
|
|
verbose_name = forms.CharField(label=_("Name"), widget=ShowTextWidget(bold=True),
|
|
|
|
required=False)
|
2014-07-09 16:17:43 +00:00
|
|
|
used = forms.IntegerField(label=_("Used"), widget=ShowTextWidget(),
|
2014-07-08 15:19:15 +00:00
|
|
|
required=False)
|
2014-07-09 16:17:43 +00:00
|
|
|
last_update = forms.CharField(label=_("Last update"), widget=ShowTextWidget(),
|
|
|
|
required=False)
|
|
|
|
allocated = forms.IntegerField(label=_("Allocated"))
|
2014-07-08 15:19:15 +00:00
|
|
|
|
|
|
|
class Meta:
|
2014-07-09 16:17:43 +00:00
|
|
|
fields = ('verbose_name', 'used', 'last_update', 'allocated',)
|
2014-07-08 15:19:15 +00:00
|
|
|
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
|
|
self.resource = kwargs.pop('resource', None)
|
|
|
|
super(ResourceForm, self).__init__(*args, **kwargs)
|
|
|
|
if self.resource:
|
|
|
|
self.fields['verbose_name'].initial = self.resource.verbose_name
|
2014-07-09 16:17:43 +00:00
|
|
|
self.fields['used'].initial = self.resource.get_current()
|
2014-07-08 15:19:15 +00:00
|
|
|
if self.resource.ondemand:
|
2014-07-09 16:17:43 +00:00
|
|
|
self.fields['allocated'].required = False
|
|
|
|
self.fields['allocated'].widget = ReadOnlyWidget(None, '')
|
2014-07-08 15:19:15 +00:00
|
|
|
else:
|
2014-07-09 16:17:43 +00:00
|
|
|
self.fields['allocated'].required = True
|
|
|
|
self.fields['allocated'].initial = self.resource.default_allocation
|
|
|
|
|
|
|
|
def has_changed(self):
|
|
|
|
""" Make sure resourcedata objects are created for all resources """
|
|
|
|
if not self.instance.pk:
|
|
|
|
return True
|
|
|
|
return super(ResourceForm, self).has_changed()
|
2014-07-08 15:19:15 +00:00
|
|
|
|
|
|
|
def save(self, *args, **kwargs):
|
|
|
|
self.instance.resource_id = self.resource.pk
|
|
|
|
return super(ResourceForm, self).save(*args, **kwargs)
|