예제 #1
0
    def get(self, *args, **kwargs):
        app = self.checkAppAccess(args)
        appService = AppService(self.application.getAppConfigPath())
        appConfig = appService.getNewAppConfig(app.code)
        dbSession = self.getDBSession()
        baseTask = self.get_argument("baseOn", False)
        template = self.get_argument("template", False)
        nameConstructor = NameConstructor(appConfig)
        if baseTask:
            # задача основана на другой задаче
            worker = dbSession.query(Worker).filter_by(workerId=baseTask).first()
            workerService = WorkerService(self.application.getResultPath(), worker)
            task = workerService.getTask()
            # fix indexes
            for index, taskItem in enumerate(task.getTaskItems()):
                taskItem.index = index
                if not taskItem.name:
                    taskItem.name = nameConstructor.getTaskItemName(taskItem)

        elif template:
            templateId = int(template)
            userId = self.get_current_user().userId
            taskTemplate = (
                dbSession.query(TaskTemplate)
                .filter(
                    and_(
                        TaskTemplate.taskTemplateId == templateId,
                        or_(TaskTemplate.userId == userId, TaskTemplate.shared == TaskTemplate.SHARED_YES),
                    )
                )
                .first()
            )

            if taskTemplate:
                taskTemplateFile = TaskTemplateFile.read(self.application.getTemplatePath(), taskTemplate)
                task = taskTemplateFile.getTask()
            else:
                self.showFatalError(u"Ошибка при доступе к шаблону")
                return

        else:
            task = Task(appname=app.code)

        eventsLoaded = len(task.items)
        html = self.render("dashboard/new.jinja2", {"task": task, "app": app, "appConfig": appConfig}, _return=True)

        self.renderJSON({"html": html, "vars": {"eventLoaded": eventsLoaded}})
예제 #2
0
    def post(self, *args, **kwargs):
        eventCode = self.get_argument('eventCode', None)
        appCode = self.get_argument('appCode', None)
        index = self.get_argument('index', 1)

        taskItem = TaskItem(index = index, key = eventCode)

        appService = AppService(self.application.getAppConfigPath())
        appConfig = appService.getNewAppConfig(appCode)

        nameConstructor = NameConstructor(appConfig)
        taskItem.name = nameConstructor.getTaskItemName(taskItem)

        self.render('dashboard/taskForm/eventFormItem.jinja2', {
            'taskItem': taskItem,
            'appConfig': appConfig,
            'values':{

            }
        })