Internal: Improve loading courseHome page - refs BT#21784

pull/5589/head
christianbeeznst 1 year ago
parent 60cd1e4d31
commit 1da244f5d6
  1. 12
      assets/vue/router/index.js
  2. 2
      assets/vue/services/sessionService.js
  3. 4
      assets/vue/store/cidReq.js
  4. 17
      src/CoreBundle/Entity/Session.php

@ -196,14 +196,12 @@ router.beforeResolve(async (to) => {
if ("CourseHome" === to.name) { if ("CourseHome" === to.name) {
cid = parseInt(to.params?.id ?? 0) cid = parseInt(to.params?.id ?? 0)
const useBasic = true }
await cidReqStore.setCourseAndSessionById(cid, sid, useBasic)
if (cid) {
await cidReqStore.setCourseAndSessionById(cid, sid)
} else { } else {
if (cid) { cidReqStore.resetCid()
await cidReqStore.setCourseAndSessionById(cid, sid)
} else {
cidReqStore.resetCid()
}
} }
}) })

@ -17,7 +17,7 @@ export default {
* @returns {Promise<Object>} * @returns {Promise<Object>}
*/ */
async find(iri, useBasic = false) { async find(iri, useBasic = false) {
const endpoint = useBasic ? `${iri}/basic` : iri const endpoint = iri
const groups = useBasic ? ['session:basic'] : ['session:read'] const groups = useBasic ? ['session:basic'] : ['session:read']
const { data } = await api.get(endpoint, { const { data } = await api.get(endpoint, {
params: { params: {

@ -78,7 +78,7 @@ export const useCidReqStore = defineStore("cidReq", () => {
} }
} }
const setSessionByIri = async (sId, useBasic = false) => { const setSessionByIri = async (sId, useBasic = true) => {
const sessionIri = `/api/sessions/${sId}` const sessionIri = `/api/sessions/${sId}`
if (session.value && sessionIri === session.value["@id"]) { if (session.value && sessionIri === session.value["@id"]) {
@ -92,7 +92,7 @@ export const useCidReqStore = defineStore("cidReq", () => {
} }
} }
const setCourseAndSessionById = (cId, sId = undefined, useBasic = false) => { const setCourseAndSessionById = (cId, sId = undefined, useBasic = true) => {
if (!cId) { if (!cId) {
return Promise.resolve() return Promise.resolve()
} }

@ -6,6 +6,7 @@ declare(strict_types=1);
namespace Chamilo\CoreBundle\Entity; namespace Chamilo\CoreBundle\Entity;
use ApiPlatform\Core\Serializer\Filter\GroupFilter;
use ApiPlatform\Doctrine\Orm\Filter\OrderFilter; use ApiPlatform\Doctrine\Orm\Filter\OrderFilter;
use ApiPlatform\Doctrine\Orm\Filter\SearchFilter; use ApiPlatform\Doctrine\Orm\Filter\SearchFilter;
use ApiPlatform\Metadata\ApiFilter; use ApiPlatform\Metadata\ApiFilter;
@ -33,17 +34,10 @@ use Symfony\Component\Validator\Constraints as Assert;
#[ApiResource( #[ApiResource(
operations: [ operations: [
new Get(
uriTemplate: '/sessions/{id}/basic',
normalizationContext: [
'groups' => ['session:basic'],
],
security: "is_granted('ROLE_ADMIN') or is_granted('VIEW', object)"
),
new Get( new Get(
uriTemplate: '/sessions/{id}', uriTemplate: '/sessions/{id}',
normalizationContext: [ normalizationContext: [
'groups' => ['session:read', 'session:item:read'], 'groups' => ['session:basic'],
], ],
security: "is_granted('ROLE_ADMIN') or is_granted('VIEW', object)" security: "is_granted('ROLE_ADMIN') or is_granted('VIEW', object)"
), ),
@ -112,9 +106,10 @@ use Symfony\Component\Validator\Constraints as Assert;
#[ORM\EntityListeners([SessionListener::class])] #[ORM\EntityListeners([SessionListener::class])]
#[ORM\Entity(repositoryClass: SessionRepository::class)] #[ORM\Entity(repositoryClass: SessionRepository::class)]
#[UniqueEntity('title')] #[UniqueEntity('title')]
#[ApiFilter(filterClass: SearchFilter::class, properties: ['title' => 'partial'])] #[ApiFilter(SearchFilter::class, properties: ['title' => 'partial'])]
#[ApiFilter(filterClass: PropertyFilter::class)] #[ApiFilter(PropertyFilter::class)]
#[ApiFilter(filterClass: OrderFilter::class, properties: ['id', 'title'])] #[ApiFilter(OrderFilter::class, properties: ['id', 'title'])]
#[ApiFilter(GroupFilter::class, arguments: ['parameterName' => 'groups'])]
class Session implements ResourceWithAccessUrlInterface, Stringable class Session implements ResourceWithAccessUrlInterface, Stringable
{ {
public const READ_ONLY = 1; public const READ_ONLY = 1;

Loading…
Cancel
Save