public static function newArea(Project $project, Territory $territory, AreaStatus $status, $name) { $item = new Area(); $item->setProject($project); $item->setTerritory($territory); $item->setStatus($status); $item->setName($name); return $item; }
/** * @Route("/insert", name="project_area_insert") */ public function insertAction(Request $request) { $territoryRepo = $this->get('cantiga.core.repo.project_territory'); $statusRepo = $this->get('cantiga.core.repo.project_area_status'); $groupRepo = $this->get('cantiga.core.repo.project_group'); $territoryRepo->setProject($this->getActiveProject()); $statusRepo->setProject($this->getActiveProject()); $groupRepo->setProject($this->getActiveProject()); $formModel = $this->extensionPointFromSettings(CoreExtensions::AREA_FORM, CoreSettings::AREA_FORM); $item = new Area(); $item->setReporter($this->getUser()); $item->setProject($this->getActiveProject()); $action = new InsertAction($this->crudInfo, $item, ProjectAreaForm::class, ['customFormModel' => $formModel, 'territoryRepository' => $territoryRepo, 'groupRepository' => $groupRepo, 'statusRepository' => $statusRepo]); $action->slug($this->getSlug()); $action->customForm($formModel); return $action->run($this, $request); }
public function approve(Connection $conn, MembershipRoleResolver $resolver) { $this->status = $conn->fetchColumn('SELECT `status` FROM `' . CoreTables::AREA_REQUEST_TBL . '` WHERE `id` = :id', [':id' => $this->id]); if ($this->status == self::STATUS_VERIFICATION) { $this->lastUpdatedAt = time(); $this->status = self::STATUS_APPROVED; $conn->update(CoreTables::AREA_REQUEST_TBL, ['lastUpdatedAt' => $this->lastUpdatedAt, 'status' => $this->status], ['id' => $this->getId()]); $area = new Area(); $area->setName($this->name); $area->setProject($this->project); $area->setTerritory($this->territory); $area->setReporter($this->requestor); // oops, naming inconsistency $id = $area->insert($conn); $conn->update(CoreTables::AREA_REQUEST_TBL, ['areaId' => $id], ['id' => $this->getId()]); $area->joinMember($conn, $this->requestor, $resolver->getHighestRole('Area'), ''); return $area; } return false; }