def __init__(self, user, *args, **kwargs): self.user = user work_period = None work_period = WorkPeriod.objects.get_active_user_period(self.user) if work_period is not None: # Пробуємо загрузити останню відкриту діяльність юзера. work_period = WorkPeriod.objects.filter(end=None, user=self.user).latest() # Беремо з неї проект, заголовок і початок. initial = {'project': work_period.work.project.pk, 'title': work_period.work.title, 'start': work_period.start} else: work_period = WorkPeriod.objects.get_last_closed_user_period(self.user) if work_period is not None: # Якщо нема відкритої - шукаємо закриту. work_period = WorkPeriod.objects.filter(user=self.user).latest() # Беремо з неї проект. initial = {'project': work_period.work.project.pk} else: # Інакше загружаємо останій проект або створюємо дефолтовий. try: project = Project.objects.all().latest() except Project.DoesNotExist: project = Project(name='default') project.save() initial = {'project': project.pk} super(UserCustomWorkForm, self).__init__(initial=initial, *args, **kwargs)
def __init__(self, user, *args, **kwargs): self.user = user try: # Загружаємо останній створений юзером план. work_plan = WorkPlan.objects.filter(user=self.user).latest() # Беремо з ннього проект. initial = {'project': work_plan.project.pk} except WorkPlan.DoesNotExist: # Інакше загружаємо останій проект або створюємо дефолтовий. try: project = Project.objects.all().latest() except Project.DoesNotExist: project = Project(name='default') project.save() initial = {'project': project.pk} super(UserCustomWorkPlanForm, self).__init__(initial=initial, *args, **kwargs)