Exemplo n.º 1
0
    def _model_from_data(self,  cleaned_data, src_model = None):
        """
            Получаем модель с заполненными полями из очищенных данных
        """
        if src_model:
            model = src_model
        else:
            model = Rule()
        # заполняем поля
        if cleaned_data: # если модель была валидирована
            model.enabled = (self.cleaned_data.get("enabled") == "True")


            model.from_number = self.cleaned_data.get("from_number")
            model.to_number = self.cleaned_data.get("to_number")
            model.busy_flags = self.cleaned_data.get("busy_flags")
            model.busy_wait_time = int(self.cleaned_data.get("busy_wait_time"))*1000

            if cleaned_data.get("time_enabled") == "True": # проверяем на переадресацию по времени
                model.SetTimeOfDayCondition(True) # Сохраняем в модель тот факт, что у нас переадресация по времени суток
                model.date_time_begin = cleaned_data.get("date_time_begin") # сохраняем начальное время
                model.date_time_end = cleaned_data.get("date_time_end") # сохраняем конечное время
            else:                                       # иначе
                model.SetTimeOfDayCondition(False) # Сохраняем в модель тот факт, что у нас нет переадресации по времени суток
                model.date_time_begin = None # сбиваем начальное время
                model.date_time_end = None # сбиваем конечное время

            if cleaned_data.get("dayofweek_enabled") == "True": # проверяем на переадресацию по дню недели
                model.SetDayOfWeekCondition(True)
                model.SetDaysOfWeekEnabled(
                    StrToBool(cleaned_data.get("dayofweek_monday")),
                    StrToBool(cleaned_data.get("dayofweek_tuesday")),
                    StrToBool(cleaned_data.get("dayofweek_wednesday")),
                    StrToBool(cleaned_data.get("dayofweek_thursday")),
                    StrToBool(cleaned_data.get("dayofweek_friday")),
                    StrToBool(cleaned_data.get("dayofweek_saturday")),
                    StrToBool(cleaned_data.get("dayofweek_sunday"))
                )
            else: # иначе - отключаем ее
                model.SetDayOfWeekCondition(False)
                model.SetDaysOfWeekEnabled(
                    False,
                    False,
                    False,
                    False,
                    False,
                    False,
                    False
                )


            return model