def _create_or_add_period(self, period_name, parentnode, extras): period = Period(parentnode=parentnode, short_name=period_name, long_name=period_name.capitalize(), start_time=datetime.now(), end_time=datetime.now() + timedelta(days=5 * 30)) try: period.full_clean() period.save() except ValidationError: period = Period.objects.get(parentnode=parentnode, short_name=period_name) # add the extras (only admins allowed in subject) for admin in extras['admin']: period.admins.add(self._create_or_add_user(admin)) if extras['begins']: period.start_time = datetime.now() + timedelta(days=int(extras['begins'][0]) * 30) if extras['ends']: period.end_time = period.start_time + timedelta(days=int(extras['ends'][0]) * 30) elif extras['begins'] and not extras['ends']: period.end_time = period.start_time + timedelta(5 * 30) if extras['ln']: period.long_name = extras['ln'][0] period.full_clean() period.save() vars(self)[parentnode.short_name + '_' + period.short_name] = period return period
def _create_or_add_period(self, period_name, parentnode, extras): period = Period(parentnode=parentnode, short_name=period_name, long_name=period_name.capitalize(), start_time=datetime.now(), end_time=datetime.now() + timedelta(days=5 * 30)) try: period.full_clean() period.save() except ValidationError: period = Period.objects.get(parentnode=parentnode, short_name=period_name) # add the extras (only admins allowed in subject) for admin in extras['admin']: period.admins.add(self._create_or_add_user(admin)) if extras['begins']: period.start_time = datetime.now() + timedelta( days=int(extras['begins'][0]) * 30) if extras['ends']: period.end_time = period.start_time + timedelta( days=int(extras['ends'][0]) * 30) elif extras['begins'] and not extras['ends']: period.end_time = period.start_time + timedelta(5 * 30) if extras['ln']: period.long_name = extras['ln'][0] period.full_clean() period.save() vars(self)[parentnode.short_name + '_' + period.short_name] = period return period