Example #1
0
def to_gregorian(date_and_time=None, date=None, time=None, year=None, month=None, day=None, hour=0, minute=0, second=0):
	if date_and_time:
		time = date_and_time.time()
		date = date_and_time.date()
	else:
		time = time or datetime.time(hour,minute,second)
		date = date or datetime.date(year,month,day)
	return datetime.datetime.combine(i18n.persiandate(date.year, date.month, date.day),time)
Example #2
0
	def clean(self):
		cleaned_data = super(GuestListForm, self).clean()
		if not self._errors:
			try:
				utc = pytz.UTC
				cleaned_data['guest_list'] = GuestListForm.get_users_with_these_emails(cleaned_data.get('guests'))
				date_year = cleaned_data.get('year')
				date_month = cleaned_data.get('month')
				date_day = cleaned_data.get('day')
				hour = cleaned_data.get('hour')
				date = i18n.persiandate(int(date_year), int(date_month), int(date_day))
				tz = timezone.get_current_timezone()
				date_time = tz.localize(timezone.datetime(date.year, date.month, date.day, int(hour)))
				utc_time = utc.normalize(date_time.astimezone(utc))
				if utils.has_passed(utc_time):
					self._errors['deadline'] = self.error_class([_("Time for deadline is already passed.")])
				cleaned_data['deadline'] = utc_time
			except forms.ValidationError:
				self._errors['guests'] = self.error_class([_("You should enter at least one guest and guests' emails should be valid.")])

		return cleaned_data
Example #3
0
	def clean(self):
		cleaned_data = super(IntervalForm,self).clean()
		if not self._errors:
			date_year = cleaned_data.get('date_year')
			date_month = cleaned_data.get('date_month')
			date_day = cleaned_data.get('date_day')
			date = i18n.persiandate(int(date_year), int(date_month), int(date_day))
			tz = timezone.get_current_timezone()
			utc = pytz.UTC
			start_time = cleaned_data.get('start')
			start_date_time = tz.localize(timezone.datetime(date.year, date.month, date.day, start_time.hour, start_time.minute))
			finish_time = cleaned_data.get('finish')
			finish_date_time = tz.localize(timezone.datetime(date.year, date.month, date.day, finish_time.hour, finish_time.minute))
			utc_start = utc.normalize(start_date_time.astimezone(utc))
			utc_finish = utc.normalize(finish_date_time.astimezone(utc))
			if utc_start >=	utc_finish :
				self._errors['finish']=self.error_class([_('Finish time must be after start time.')])
			if utils.has_passed(date_and_time=utc_start):
				self._errors['finish']=self.error_class([_('The time you provide should not be already passed.')])
			cleaned_data['date'] = date
			cleaned_data['start'] = utc_start.time()
			cleaned_data['finish'] = utc_finish.time()
		return cleaned_data