Minor: Format code

pull/5539/head
Angel Fernando Quiroz Campos 1 year ago
parent 119efed26f
commit dd3d602228
  1. 79
      assets/vue/components/session/SessionCard.vue
  2. 43
      assets/vue/components/session/SessionCardList.vue
  3. 30
      assets/vue/components/session/SessionCardSimple.vue
  4. 36
      assets/vue/components/session/SessionCategoryListWrapper.vue
  5. 37
      assets/vue/components/session/SessionListWrapper.vue
  6. 36
      assets/vue/components/session/SessionTabs.vue
  7. 3
      src/CoreBundle/Controller/ResourceController.php
  8. 4
      src/CoreBundle/Migrations/Schema/V200/Version20200821224240.php
  9. 3
      src/CoreBundle/Migrations/Schema/V200/Version20240506164100.php
  10. 10
      src/CoreBundle/Migrations/Schema/V200/Version20240519210000.php
  11. 5
      src/CoreBundle/Security/Authorization/Voter/UserVoter.php
  12. 2
      src/CoreBundle/State/MessageProcessor.php

@ -1,33 +1,10 @@
<template>
<div class="text-h6 mt-4">{{ session.title }}</div>
<div class="grid gap-4 grid-cols-1 md:grid-cols-2 lg:grid-cols-4">
<div
v-for="course in courses"
no-body
style="max-width: 540px;"
>
<CourseCard
:course="course"
:session-id="session._id"
/>
</div>
</div>
</template>
//:key="node.course.id"
<style scoped>
.my-card {
width: 100%;
max-width: 370px;
}
</style>
<script>
import CourseCard from '../course/CourseCard.vue';
import {computed, ref} from "vue";
import isEmpty from 'lodash/isEmpty';
import CourseCard from "../course/CourseCard.vue"
import { ref } from "vue"
import isEmpty from "lodash/isEmpty"
export default {
name: 'SessionCard',
name: "SessionCard",
components: {
CourseCard,
},
@ -35,39 +12,63 @@ export default {
session: Object,
},
setup(props) {
const courses = ref([]);
const courses = ref([])
let showAllCourses = false;
let showAllCourses = false
if (!isEmpty(props.session.users) && !isEmpty(props.session.users.edges)) {
props.session.users.edges.forEach(({ node }) => {
// User is Session::SESSION_ADMIN
if (4 === node.relationType) {
showAllCourses = true;
return;
showAllCourses = true
return
}
});
})
}
if (showAllCourses) {
courses.value = props.session.courses.edges.map(({ node }) => {
return node.course;
});
return node.course
})
} else {
if (!isEmpty(props.session.courses) && !isEmpty(props.session.courses.edges)) {
props.session.sessionRelCourseRelUsers.edges.map(({ node }) => {
const courseExists = props.session.courses.edges.findIndex(courseItem => courseItem.node.course._id === node.course._id) >= 0;
const courseExists =
props.session.courses.edges.findIndex((courseItem) => courseItem.node.course._id === node.course._id) >= 0
if (courseExists) {
courses.value.push(node.course);
courses.value.push(node.course)
}
});
})
}
}
return {
courses
courses,
}
},
}
};
</script>
<template>
<div class="text-h6 mt-4">{{ session.title }}</div>
<div class="grid gap-4 grid-cols-1 md:grid-cols-2 lg:grid-cols-4">
<div
v-for="(course, idx) in courses"
:key="idx"
style="max-width: 540px"
>
<CourseCard
:course="course"
:session-id="session._id"
/>
</div>
</div>
</template>
<style scoped>
.my-card {
width: 100%;
max-width: 370px;
}
</style>

@ -1,47 +1,44 @@
<template>
<div
v-for="session in sessions"
:key="session.id"
>
<SessionCard
:session="session"
/>
</div>
</template>
<script>
import SessionCard from './SessionCard.vue';
import SessionCard from "./SessionCard.vue"
export default {
name: 'SessionCardList',
name: "SessionCardList",
components: {
SessionCard
SessionCard,
},
props: {
sessions: Array,
},
data() {
return {
deck: false
};
deck: false,
}
},
methods: {
isList: function () {
if (!this.deck) {
return 'primary';
return "primary"
}
return 'secondary';
return "secondary"
},
isDeck: function () {
if (this.deck) {
return 'primary';
return "primary"
}
return 'secondary';
return "secondary"
},
changeLayout: function () {
this.deck = !this.deck;
this.deck = !this.deck
},
},
}
};
</script>
<template>
<div
v-for="session in sessions"
:key="session.id"
>
<SessionCard :session="session" />
</div>
</template>

@ -1,18 +1,3 @@
<template>
<div
v-for="(course, index) in courses"
:key="index"
style="max-width: 540px"
>
<CourseCard
:session="session"
:course="course"
:session-id="session.id"
:disabled="!enableAccess"
/>
</div>
</template>
<script setup>
import CourseCard from "../course/CourseCard.vue"
import { useSecurityStore } from "../../store/securityStore"
@ -41,3 +26,18 @@ const isCourseCoach = props.session.courseCoachesSubscriptions
const enableAccess =
(isGeneralCoach || isCourseCoach) && props.session.activeForCoach ? true : props.session.activeForStudent
</script>
<template>
<div
v-for="(course, index) in courses"
:key="index"
style="max-width: 540px"
>
<CourseCard
:session="session"
:course="course"
:session-id="session.id"
:disabled="!enableAccess"
/>
</div>
</template>

@ -1,21 +1,3 @@
<template>
<div
v-if="categories.length"
class="grid gap-4"
>
<div
v-for="category in categories"
:key="category.id"
>
<h5 class="mb-2">
<BaseIcon icon="folder-generic" />
{{ category.title }}
</h5>
<SessionListCategoryWrapper :sessions="getSessionsFromCategory(category)" />
</div>
</div>
</template>
<script setup>
import SessionListCategoryWrapper from "../../components/session/SessionListCategoryWrapper"
import { toRefs } from "vue"
@ -38,3 +20,21 @@ function getSessionsFromCategory(category) {
return categoryWithSessions.value[category._id]["sessions"]
}
</script>
<template>
<div
v-if="categories.length"
class="grid gap-4"
>
<div
v-for="category in categories"
:key="category.id"
>
<h5 class="mb-2">
<BaseIcon icon="folder-generic" />
{{ category.title }}
</h5>
<SessionListCategoryWrapper :sessions="getSessionsFromCategory(category)" />
</div>
</div>
</template>

@ -1,5 +1,23 @@
<script>
import SessionCardList from "./SessionCardList.vue"
export default {
name: "SessionListWrapper",
components: {
SessionCardList,
},
props: {
sessions: Array,
},
setup() {},
}
</script>
<template>
<div v-if="sessions.length" class="grid">
<div
v-if="sessions.length"
class="grid"
>
<SessionCardList :sessions="sessions" />
</div>
@ -24,20 +42,3 @@
<!-- </div>-->
</div>
</template>
<script>
import SessionCardList from './SessionCardList.vue';
export default {
name: 'SessionListWrapper',
components: {
SessionCardList,
},
props: {
sessions: Array,
},
setup() {
}
}
</script>

@ -1,26 +1,19 @@
<template>
<BaseRouteTabs
:tabs="sessionTabs"
:selected-tab="selected"
/>
</template>
<script setup>
import BaseRouteTabs from "../basecomponents/BaseRouteTabs.vue"
import { useI18n } from "vue-i18n"
import {useRoute} from "vue-router";
import {computed} from "vue";
import { useRoute } from "vue-router"
import { computed } from "vue"
const { t } = useI18n()
const route = useRoute()
const selected = computed(() => {
switch (route.name) {
case 'MySessions':
case "MySessions":
return 0
case 'MySessionsUpcoming':
case "MySessionsUpcoming":
return 1
case 'MySessionsPast':
case "MySessionsPast":
return 2
default:
return 0
@ -29,16 +22,23 @@ const selected = computed(() => {
const sessionTabs = [
{
title: t('Current session tab'),
to: {name: 'MySessions'},
title: t("Current session tab"),
to: { name: "MySessions" },
},
{
title: t('Upcoming session tab'),
to: {name: 'MySessionsUpcoming'},
title: t("Upcoming session tab"),
to: { name: "MySessionsUpcoming" },
},
{
title: t('Past session tab'),
to: {name: 'MySessionsPast'},
title: t("Past session tab"),
to: { name: "MySessionsPast" },
},
]
</script>
<template>
<BaseRouteTabs
:tabs="sessionTabs"
:selected-tab="selected"
/>
</template>

@ -456,9 +456,6 @@ class ResourceController extends AbstractResourceController implements CourseCon
return new Response(null, Response::HTTP_NO_CONTENT);
}
/**
* @return mixed|StreamedResponse
*/
private function processFile(Request $request, ResourceNode $resourceNode, string $mode = 'show', string $filter = '', ?array $allUserInfo = null): mixed
{
$this->denyAccessUnlessGranted(

@ -19,7 +19,7 @@ final class Version20200821224240 extends AbstractMigrationChamilo
public function up(Schema $schema): void
{
// Select the IDs of duplicated messages with msg_status = 4
$sqlSelectMessages = "
$sqlSelectMessages = '
SELECT DISTINCT(m1.id) AS message_id
FROM message m1
JOIN message m2
@ -30,7 +30,7 @@ final class Version20200821224240 extends AbstractMigrationChamilo
AND m1.content = m2.content
AND m1.msg_status = 4
AND m1.id != m2.id
";
';
// Delete attachments related to the duplicated messages
$sqlDeleteAttachments = "

@ -11,9 +11,6 @@ use Doctrine\DBAL\Schema\Schema;
class Version20240506164100 extends AbstractMigrationChamilo
{
/**
* @inheritDoc
*/
public function up(Schema $schema): void
{
$selectedMailValue = $this->getMailConfigurationValueFromFile('SMTP_UNIQUE_SENDER') ? 'true' : 'false';

@ -11,6 +11,8 @@ use Chamilo\CoreBundle\Entity\AttemptFile;
use Chamilo\CoreBundle\Entity\TrackEAttempt;
use Chamilo\CoreBundle\Migrations\AbstractMigrationChamilo;
use Doctrine\DBAL\Schema\Schema;
use RecursiveDirectoryIterator;
use RecursiveIteratorIterator;
use Symfony\Component\HttpFoundation\File\UploadedFile;
final class Version20240519210000 extends AbstractMigrationChamilo
@ -57,7 +59,7 @@ final class Version20240519210000 extends AbstractMigrationChamilo
{
$kernel = $this->container->get('kernel');
$rootPath = $kernel->getProjectDir().'/app/courses/';
$iterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($rootPath));
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($rootPath));
foreach ($iterator as $file) {
if (str_contains($file->getPathname(), $pathPattern)) {
@ -93,12 +95,14 @@ final class Version20240519210000 extends AbstractMigrationChamilo
$asset = (new Asset())
->setCategory(Asset::EXERCISE_ATTEMPT)
->setTitle($fileName)
->setFile($file);
->setFile($file)
;
$this->entityManager->persist($asset);
$this->entityManager->flush();
$attemptFile = (new AttemptFile())
->setAsset($asset);
->setAsset($asset)
;
$attempt->addAttemptFile($attemptFile);
$this->entityManager->persist($attemptFile);
$this->entityManager->flush();

@ -67,7 +67,7 @@ class UserVoter extends Voter
if (self::VIEW === $attribute) {
// If the user is on the social page and is logged in, allow access
if ($this->isFromSocialPage() && $currentUser->getId() !== null) {
if ($this->isFromSocialPage() && null !== $currentUser->getId()) {
return true;
}
@ -104,7 +104,8 @@ class UserVoter extends Voter
$request = $this->requestStack->getCurrentRequest();
if ($request) {
$pageOrigin = $request->query->get('page_origin');
return $pageOrigin === 'social';
return 'social' === $pageOrigin;
}
return false;

@ -28,7 +28,7 @@ final class MessageProcessor implements ProcessorInterface
$message = $this->persistProcessor->process($data, $operation, $uriVariables, $context);
assert($message instanceof Message);
\assert($message instanceof Message);
if ($operation instanceof Post) {
if (Message::MESSAGE_TYPE_INBOX === $message->getMsgType()) {

Loading…
Cancel
Save