Commit cd9ef07c authored by GuiΩ's avatar GuiΩ
Browse files

style(layout): minor updates

parent 08ba96dc
......@@ -7,7 +7,7 @@
<meta charset="UTF-8"/>
<meta content="width=device-width, initial-scale=1.0" name="viewport"/>
<title>Activites Mentales</title>
<link href="{% static 'src/assets/favicon.ico' %}" rel="icon" type="image/x-icon"/>
<link href="{% static 'assets/favicon.ico' %}" rel="icon" type="image/x-icon"/>
{% vite_asset 'src/main.ts' %}
<noscript>
......@@ -56,6 +56,8 @@
{% endif %}
</head>
<body>
{% if user.is_authenticated %}
<div id="app"></div>
{% endif %}
</body>
</html>
......@@ -6,7 +6,7 @@
const latex = useLatexStore()
themes.loadThemes()
.then(() => themes.setSelectedTheme(93))
// .then(() => themes.setSelectedTheme(93))
latex.loadModels()
</script>
......
......@@ -7,9 +7,11 @@ div
router-link(to="/am/") ⮜ Retour aux activités mentales
h2 Documentation
|La documentation est comme le reste&nbsp;: succinte. Ce n'est qu'une ébauche qui devrait rapidement évoluer.
h3 En Bref :
h3 Utilisation standart :
|Une fois connecté(e), vous créez vos classes (lien 'Configuration' en haut à gauche)<br>
|Une fois que cela est fait, vous revenez à la page principale.
ul
li Vous sélectionnez l'année et la classe pour laquelle vous voulez créer des activités mentales
li Vous ajouter si besoin des feuilles et des séances dans les feuilles.
......@@ -18,21 +20,27 @@ div
li Lorque vous avez trouvé une question qui vous plait, vous l'insérez dans vos feuilles d'exercices par glisser-déposer.
li Vous pouvez déplacer les questions d'une position à une autre.
br
|Pour supprimer une question il suffit de la glisser vers la liste des questions, à gauche.
|Pour supprimer une question il suffit de la glisser vers la liste des questions, à gauche ; ou bien click-droit > "Enlever la question".
li Lorsque votre feuille est prête, vous pouvez la télécharger en pdf
|en cliquant sur le lien à côté du numéro de la feuille
|en cliquant sur le lien en bas de la feuille
li Une fois que vos élèves ont passé une séance, vous pouvez garder une tracer de la réussite de la classe
|en cliquant sur le bouton 'saisir les notes', à droite de la séance.
br
|De même vous pouvez modifier la date en cliquat dessus et en tapant "Entrée" pour la valider.
|De même vous pouvez modifier la date en cliquant dessus et en tapant "Entrée" pour la valider.
li Une fois une question évaluée, il n'est plus possible de la retirer.
|La glisser vers une autre séance en fera une copie.
| La glisser vers une autre séance en fera une copie.
li Vous pouvez copier une ou plusieurs séances en les sélectionnant (Ctrl + click pour sélection multiple) puis bouton droit > "Copier la/les séances"
br
| Ensuite vous pouvez l'insérer avant ou après une séance existante en utilisant un click droit.
li 2 boutons Annuler/Refaire sont présents en haut à droite.
h3 Ajout de questions
h3 Création de nouvelles questions (Attention, il reste des bugs...)
|Lorsque l'on crée une nouvelle question, il faut suivre les étapes suivantes:
ol
li Créer la question (bouton "nouvelle question" ou bien "Dupliquer" dans le menu contextuel
li La positionner à l'intérieur de chacun des thèmes dont elle fait partie
li La positionner à l'intérieur de chacun des thèmes dont elle fait partie en la glissant à la position voulue
li Demander sa validation (Éditer la question > 'À valider')
br
|À partir de ce moment elle n'est plus modifiable, mais son auteur peut l'utiliser dans ses séances.
......@@ -40,7 +48,7 @@ div
br
|Elle sera alors disponible pour tous les utilisateurs.
h3 Modèles LaTeX
h3 Modèles LaTeX (en lecture seule pour les utilisateurs)
h4 Variables utilisables:
ul
li [[QUESTION]]: code LaTeX pour la question
......
......@@ -256,7 +256,7 @@ Events:
/*padding-top: 20px;*/
border: 1px solid black
/*noinspection CssUnknownTarget*/
background: white center no-repeat url("/static/src/assets/loading.gif")
background: white center no-repeat url("/static/assets/loading.gif")
.saisie input
......
......@@ -150,7 +150,8 @@
v-show="state.isVisible"
@mousemove.stop="onMouseMove"
@mouseup="onMouseUp"
@click="onBlur")
@click="onBlur"
@contextmenu.prevent.stop)
.Modal(
ref="modal"
@click.stop
......
......@@ -17,7 +17,6 @@ Events:
import {useThemesStore} from "@/store/themes";
import {useQuestionsStore} from "@/store/questions";
import type {ClasseID, IQuestion, QuestionID, ThemeID} from "@/types";
import type {SeanceID} from "@/types";
const questions = useQuestionsStore()
const themes = useThemesStore()
......@@ -78,9 +77,10 @@ Events:
return questionId in state.questionsSel;
}
function editable(question: IQuestion) {
// question.editable ?
return question || permissions.includes('Validateur')
function isEditable(questionId: QuestionID) {
const question = questions.get(questionId)
return permissions.includes('Validateur')
|| (! question.avalider && ! question.validee)
}
async function setSelection(questionsIds?: QuestionID[]) {
......@@ -148,7 +148,7 @@ Events:
function onDblClick(event: MouseEvent, questionId: QuestionID) {
if (permissions.includes('Validateur'))
if (isEditable(questionId))
emit('question-edit', {questionId:questionId, action:'edit'})
clearTimeout(clickTimer);
nClick = 0
......@@ -158,7 +158,7 @@ Events:
emit('show-context-menu', {
event: event, options: [
{ name: 'Éditer',
hidden: ! permissions.includes('Validateur'),
hidden: ! isEditable(questionId),
callback: () => emit('question-edit', {questionId:questionId, action:'edit'})},
{ name: 'Dupliquer',
callback: () => emit('question-edit', {questionId:questionId, action:'duplicate'})},
......@@ -395,9 +395,9 @@ Events:
<template lang="pug">
.QuestionList(ref="root")
span(v-if="themes.isLoading || questions.isLoading ") Chargement...
span(v-else="themes.isLoading || questions.isLoading") {{ questionsIds.length }} question{{ questionsIds.length > 1 ? 's' : '' }}
.QuestionList_list(v-if="! (themes.isLoading || questions.isLoading)")
span(v-if="themes.isLoading || questions.isLoading || ! questionsIds") Chargement...
span(v-else="themes.isLoading || questions.isLoading || ! questionsIds") {{ questionsIds.length }} question{{ questionsIds.length > 1 ? 's' : '' }}
.QuestionList_list
QuestionListNode.QuestionList_node(
v-for="(questionId, index) in questionsIds"
:key="index"
......
<script lang="ts" setup>
import {computed, defineEmits, defineProps, nextTick, reactive, ref, watch} from "vue";
import {computed, defineEmits, nextTick, reactive, ref} from "vue";
import {useQuestionsStore} from "@/store/questions";
import {useThemesStore} from "@/store/themes";
import type {QuestionID, ThemeID} from "@/types";
import {useClassesStore} from "@/store/classes";
interface IQuestionTooltipState {
visible: boolean
visible: boolean,
questionId?: QuestionID,
onClose?: () => void,
}
......@@ -34,8 +34,9 @@ import {useClassesStore} from "@/store/classes";
function setSelection(themeId: ThemeID, questionId: QuestionID) {
emit('set-selection', {themeId: themeId, questionsIds: [ questionId ]});
close();
console.debug('QT.setSelection', themeId, questionId)
close()
emit('set-selection', {themeId: themeId, questionsIds: [ questionId ]})
}
function close() {
......@@ -95,7 +96,7 @@ import {useClassesStore} from "@/store/classes";
template(v-for="themeId in themePath(question_order.theme)")
.QuestionTooltip__themeLabel {{ themes.get(themeId).label }} &nbsp;
img.QuestionTooltip__link(
src="/static/evolution.png"
src="@/assets/evolution.png"
:title="'Voir l\\'évolution pour \"' + themes.get(themeId).label + '\"'"
@click.stop="onEvolutionClick(themeId)")
span(v-if="themeId !== question_order.theme") &nbsp;>&nbsp;
......
......@@ -90,7 +90,7 @@ li(
ul(
v-if="props.theme.enfants.length > 0"
v-show="props.openIds.includes(props.theme.id)")
themeTreeNode(
ThemeTreeNode.ThemeTree__node(
v-for="enfantId in props.theme.enfants"
:key="enfantId"
:open-ids="props.openIds"
......@@ -102,3 +102,9 @@ li(
@show-evolution-dialog="$emit('show-evolution-dialog', $event)")/
</template>
<style lang="sass">
.ThemeTree__node
width: 150px
</style>
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment