Commit 77411d03 authored by Jean-Baptiste Oellers's avatar Jean-Baptiste Oellers
Browse files

Merge remote-tracking branch 'origin/kusanagi' into connor

parents dd58f8ec e956280c
Loading
Loading
Loading
Loading
Loading
+32 −6
Changes for module/Oscar/src/Oscar/Controller/ActivityMotsClesController.php: 32 added lines, 6 removed lines.
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@ use Laminas\View\Model\JsonModel;
use Oscar\Entity\ActivityMotCle;
use Oscar\Provider\Privileges;
use Oscar\Service\ProjectGrantService;
use Oscar\Service\ProjectService;
use Oscar\Traits\UseLoggerService;
use Oscar\Traits\UseLoggerServiceTrait;
use Throwable;
@@ -31,6 +32,22 @@ class ActivityMotsClesController extends AbstractOscarController implements UseL
        $this->activityService = $activityService;
    }

    /**
     * @return ProjectService
     */
    public function getProjectService(): ProjectService
    {
        return $this->projectService;
    }

    /**
     * @param ProjectService $projectService
     */
    public function setProjectService(ProjectService $projectService): void
    {
        $this->projectService = $projectService;
    }

    public function apiAction()
    {
        try {
@@ -40,19 +57,24 @@ class ActivityMotsClesController extends AbstractOscarController implements UseL
            if ($activityId) {
                $activity = $this->getActivityService()->getGrant($activityId);
            }
            $project = NULL;
            $projectId = $this->params()->fromQuery('project_id');
            if ($projectId) {
                $project = $this->getProjectService()->getProject($projectId);
            }

            if ($this->getRequest()->getMethod() == "GET") {
                $includeActivityCountQueryParam = $this->params()->fromQuery('include_activity_count');
                $includeActivityCount = $includeActivityCountQueryParam && $includeActivityCountQueryParam === "true";

                return $this->getMotsCles($includeActivityCount, $activity);
                return $this->getMotsCles($includeActivityCount, $activity, $project);
            }

            if ($this->getRequest()->getMethod() == "POST") {
                $action_mot_cle_json = json_decode($this->getRequest()->getContent());

                if ($action_mot_cle_json->action == "create") {
                    return $this->createMotCle($action_mot_cle_json, $activity);
                    return $this->createMotCle($action_mot_cle_json, $activity, $project);
                }

                if ($action_mot_cle_json->action == "delete") {
@@ -81,9 +103,11 @@ class ActivityMotsClesController extends AbstractOscarController implements UseL
        }
    }

    private function getMotsCles($includeCount, $activity) {
    private function getMotsCles($includeCount, $activity, $project) {

        if ($activity) {
        if ($project) {
            $this->getOscarUserContextService()->check(Privileges::PROJECT_ACTIVITY_ADD, $project);
        } else if ($activity) {
            $this->getOscarUserContextService()->check(Privileges::ACTIVITY_EDIT, $activity);
        } else {
            $this->getOscarUserContextService()->check(Privileges::ACTIVITY_CREATE);
@@ -117,9 +141,11 @@ class ActivityMotsClesController extends AbstractOscarController implements UseL
        return $response;
    }

    private function createMotCle($action_mot_cle_json, $activity) {
    private function createMotCle($action_mot_cle_json, $activity, $project) {

        if ($activity) {
        if ($project) {
            $this->getOscarUserContextService()->check(Privileges::PROJECT_ACTIVITY_ADD, $project);
        } else if ($activity) {
            $this->getOscarUserContextService()->check(Privileges::ACTIVITY_EDIT, $activity);
        } else {
            $this->getOscarUserContextService()->check(Privileges::ACTIVITY_CREATE);
+2 −0
Changes for module/Oscar/src/Oscar/Controller/ActivityMotsClesControllerFactory.php: 2 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@ use Interop\Container\ContainerInterface;
use Laminas\ServiceManager\Factory\FactoryInterface;
use Oscar\Service\OscarUserContext;
use Oscar\Service\ProjectGrantService;
use Oscar\Service\ProjectService;

class ActivityMotsClesControllerFactory implements FactoryInterface
{
@@ -17,6 +18,7 @@ class ActivityMotsClesControllerFactory implements FactoryInterface
        $c->setOscarUserContextService($container->get(OscarUserContext::class));
        $c->setLoggerService($container->get('Logger'));
        $c->setActivityService($container->get(ProjectGrantService::class));
        $c->setProjectService($container->get(ProjectService::class));
        return $c;
    }
}
+5 −4
Changes for module/Oscar/src/Oscar/Entity/ActivityRepository.php: 5 added lines, 4 removed lines.
Original line number Diff line number Diff line
@@ -1047,13 +1047,14 @@ class ActivityRepository extends EntityRepository
        if ($min !== null) {
            $qb->where('c.amount >= :min');
            $parameters['min'] = $min;
        }

            if ($max !== null) {
            $qb->where('c.amount >= :max');
                $qb->andWhere('c.amount <= :max');
                $parameters['max'] = $max;
            }
        } else if ($max !== null) {
            $qb->where('c.amount <= :max');
            $parameters['max'] = $max;
        }


        return array_map('current', $qb->getQuery()->setParameters($parameters)->getResult());
    }
+1 −0
Changes for module/Oscar/view/oscar/project-grant/form.phtml: 1 added line, 0 removed lines.
Original line number Diff line number Diff line
@@ -40,6 +40,7 @@ use Oscar\OscarText;
                    <div id="activity-mots-cles"
                         data-url="<?= $this->url('activity-mots-cles/api') ?>"
                         data-activityid="<?= $activity->getId() ?>"
                         data-projectid="<?= $project ? $project->getId() : "" ?>"
                         data-motsclesselectionnes="<?php
                         echo '[';
                         $count = count($activity->getMotscles());
+1 −0
Changes for ui/src/ActivityMotsCles.js: 1 added line, 0 removed lines.
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@ let elemDatas = document.querySelector(elemId);
const app = createApp(ActivityMotsCles, {
    "url": elemDatas.dataset.url,
    "activityid": elemDatas.dataset.activityid,
    "projectid": elemDatas.dataset.projectid,
    "motsclesselectionnes": elemDatas.dataset.motsclesselectionnes
});

Loading