#from netsec.dayinlife.models import Feedback, Participant, Visit, Manager from django import forms from django.conf import settings from django.utils.encoding import force_unicode import datetime, time # DATETIMEWIDGET calbtn = u"""calendar """ class DateTimeWidget(forms.widgets.TextInput): dformat = '%Y-%m-%d %H:%M' #dformat = '%Y-%m-%d' def render(self, name, value, attrs=None): if value is None: value = '' final_attrs = self.build_attrs(attrs, type=self.input_type, name=name) if value != '': try: final_attrs['value'] = \ force_unicode(value.strftime(self.dformat)) except: final_attrs['value'] = \ force_unicode(value) if not final_attrs.has_key('id'): final_attrs['id'] = u'%s_id' % (name) id = final_attrs['id'] jsdformat = self.dformat #.replace('%', '%%') cal = calbtn % (settings.MEDIA_URL, id, id, jsdformat, id) a = u'%s' % (forms.util.flatatt(final_attrs), cal) return a def value_from_datadict(self, data, files, name): dtf = forms.fields.DEFAULT_DATETIME_INPUT_FORMATS empty_values = forms.fields.EMPTY_VALUES value = data.get(name, None) if value in empty_values: return None if isinstance(value, datetime.datetime): return value if isinstance(value, datetime.date): return datetime.datetime(value.year, value.month, value.day) for format in dtf: try: return datetime.datetime(*time.strptime(value, format)[:6]) except ValueError: continue return None class ParticipantForm(forms.Form): pname = forms.CharField(label='Your name') department = forms.CharField(label='Department') date = forms.DateTimeField(label='Proposed date of visit', widget=DateTimeWidget) email = forms.EmailField() class FeedbackForm(forms.Form): email = forms.EmailField(label='Email used for registration') text = forms.CharField(widget=forms.Textarea, label='Your feedback') class ApprovalForm(forms.Form): answer = forms.ChoiceField(choices=[('yes','approve'), ('no', 'reject')], label='Action') comment = forms.CharField(label = 'Comments(optional)', required=False)