Commit 5c773daa authored by Mikael Salson's avatar Mikael Salson
Browse files

Merge branch 'david'

parents 2a869a41 173b8d85
......@@ -24,4 +24,6 @@ upload/*
*.tex
*.fdb_latexmk
/doc/user/manual.html
/demo
\ No newline at end of file
/demo
/docker/upload/*
/docker/database
# INSTALLATION D'ALECSIA
## Installation avec Docker
Ajoutez éventuellement des comptes et mots de passe dans le fichier
`docker/alecsia/conf/passwords.yml`. Ces comptes doivent soit correspondre à
des comptes enseignants (et doivent donc être présents dans le teacherbook qui
est initialisé avec le fichier SQL `docker/dump.sql`) soit correspondre à des
comptes étudiants (pour l'instant il n'y a pas la possibilité de les créer
automatiquement il faut les créer à la main une fois le teacherbook installé).
Éditez éventuellement les volumes pour les mettre à l'endroit qui vous
convient et faites en sorte que les répertoires de logs et d'upload soit
accessibles en écriture par tout le monde.
Une fois cette configuration faite on peut lancer les conteneurs en se rendant
dans le répertoire `docker`, puis :
```
docker-compose up -d
```
Then the Alecsia web application should be available at:
http://localhost:8080/alecsia/web/app_dev.php (with usernames/passwords as set
in `passwords.yml`.
The teacherbook (used by Alecsia) is accessible through: http://localhost:8080/teacherbook/ (for instance: http://localhost:8080/teacherbook/teacher/hopper should return the user Grace Hopper).
## Installation sans Docker
Télécharger Alecsia ne suffit pas : ce dossier n'est en effet pas fourni avec l'ensemble
des composants permettant de faire fonctionner l'application. Ces fichiers, les "vendors"
, sont des plug-ins qu'il ne serait pas judicieux d'inclure dans un dépôt git.
## Logiciels pré-requis
### Logiciels pré-requis
Par ailleurs Alecsia a certains pré-requis technologiques :
- PHP 5.5+. Alecsia ne fonctionne pas avec les versions récentes de PHP (par ex. PHP 7)
......@@ -20,7 +47,7 @@ Par ailleurs Alecsia a certains pré-requis technologiques :
Dans le cas où vous utilisez un système basé sur Debian/Ubuntu vous pouvez
essayer (à vos risques et périls) le script `server_install.sh`.
### Script d'installation du serveur
#### Script d'installation du serveur
Durant l'installation, il vous faudra rentrer un mot de passe pour
l'administrateur de la base de données. C'est celui-là qui vous sera utile
......@@ -28,7 +55,7 @@ pour que PhpMyAdmin puisse s'y connecter.
La connexion à PhpMyAdmin doit être possible depuis l'adresse `http://localhost/phpmyadmin`.
## Installation d'Alecsia
### Installation d'Alecsia
De plus, une phase de configuration est nécessaire pour faire fonctionner Alecsia.
Le présent document donne donc une marche à suivre afin de parvenir à obtenir une copie
......@@ -36,7 +63,7 @@ d'Alecsia exécutable sur votre machine.
Mettez-vous dans un répertoire de travail.
### Installation du teacherbook
#### Installation du teacherbook
Alecsia repose sur une liste des enseignants connus afin de savoir si la
personne qui vient de se connecter est enseignante ou étudiante.
......@@ -52,7 +79,7 @@ composer install
```
pour installer les composants nécessaires à l'application.
### Configurer le teacherbook
#### Configurer le teacherbook
Le fichier `config.php.example` contient un exemple de fichier de
configuration. Copiez-le et renommez-le en `config.php` et modifiez les
......@@ -67,9 +94,9 @@ Peuplez la base de données avec le fichier `dump.sql` (il est par exemple
possible d'importer des données SQL depuis PhpMyAdmin, sinon cela peut être
fait en ligne de commande).
### Se conecter à son teacherbook
#### Se conecter à son teacherbook
## I. TÉLÉCHARGEMENT DES VENDORS
### I. TÉLÉCHARGEMENT DES VENDORS
> Symfony utilise composer. Lancer 'composer install' à la racine.
Il téléchargera les vendors : cela devrait prendre quelques minutes.
......@@ -77,7 +104,7 @@ fait en ligne de commande).
> Vérifiez qu'un dossier "vendor" a été créé à la racine du dossier Alecsia.
## II. CONFIGURATION
### II. CONFIGURATION
> Tentez de lancer http://<chemin_vers_alecsia>/web/config.php
Ce fichier a pour but de tester si la configuration du serveur est correcte.
......@@ -103,7 +130,7 @@ fait en ligne de commande).
> Le répertoire où les travaux d'étudiants seront uploadés est déterminé par le chemin spécifié dans le fichier `app/config/parameters.yml` sous la variable `alecsia.upload_dir`. Ce répertoire doit être accessible en écriture par le serveur web.
## III. CRÉATION DE LA STRUCTURE DE BDD
### III. CRÉATION DE LA STRUCTURE DE BDD
> Exécutez 'app/console doctrine:schema:create'
Si tout se passe bien, la commande remplira la base de données avec les
......@@ -112,7 +139,7 @@ fait en ligne de commande).
> Si vous venez d'une précédente installation de Alecsia, il s'agira alors
de lancer 'app/console doctrine:schema:update'.
## IV. TEACHER BOOK
### IV. TEACHER BOOK
> Installer le teacher book (récupérer l'application sur le dépôt https://git.framasoft.org/mikaels/teacherbook)
......@@ -121,7 +148,7 @@ fait en ligne de commande).
> Modifier la valeur de la variable de configuration alecsia.lille1.teacherbook
dans le fichier parameters.yml
## V. PHPUNIT
### V. PHPUNIT
> Le lancement des tests unitaires nécessite l'installation de phpunit
......@@ -132,23 +159,23 @@ sudo pear install pear.phpunit.de/PHPUnit
> Ensuite on peut tranquillement faire à la racine un
phpunit -c app/
## VI. Déployer l'application
### VI. Déployer l'application
Il devrait être nécessaire de faire un :
```
app/console assets:install
```
## VII. ACCÉDER À L'APPLICATION
### VII. ACCÉDER À L'APPLICATION
Il suffit d'accéder au fichier `web/app.php` (pour la version production) ou à `web/app_dev.php` (pour la version développement).
Attention la version production nécessite l'accès au SSO/CAS de Lille 1 alors que pour la version développement l'authentification ne se fait que par un fichier (pour plus de détail voir la partie « Authentification ») du fichier [doc/dev.org](doc/dev.org).
## QUE FAIRE SI ALECSIA NE MARCHE PLUS APRES UN PULL
### QUE FAIRE SI ALECSIA NE MARCHE PLUS APRES UN PULL
> Lancez le script 'composer update'
## APRÈS UNE MISE À JOUR DE SYMFONY
### APRÈS UNE MISE À JOUR DE SYMFONY
```
php ./vendor/sensio/distribution-bundle/Sensio/Bundle/DistributionBundle/Resources/bin/build_bootstrap.php
......
This diff is collapsed.
FROM php:5.6-apache-jessie
RUN apt-get update
# RUN apt-get upgrade
RUN apt-get install wget git -y
RUN apt-get install -y nano bsdtar curl zip unzip
RUN a2enmod rewrite
RUN docker-php-ext-install mysqli pdo pdo_mysql
RUN curl -sS https://getcomposer.org/installer | php
RUN mv composer.phar /usr/local/bin/composer
RUN cp /usr/local/etc/php/php.ini-development /usr/local/etc/php/php.ini
RUN curl -sS https://get.symfony.com/cli/installer | bash
RUN export PATH="$HOME/.symfony/bin:$PATH"
RUN mv /root/.symfony/bin/symfony /usr/local/bin/symfony
# alecsia
WORKDIR /var/www/html
RUN wget https://gitlab-fil.univ-lille.fr/mikael.salson/alecsia/-/archive/master/alecsia-master.zip
RUN unzip alecsia-master.zip
RUN wget https://raw.githubusercontent.com/vishnubob/wait-for-it/master/wait-for-it.sh
RUN chmod +x wait-for-it.sh
RUN rm alecsia-master.zip
RUN mv alecsia-master alecsia
WORKDIR /var/www/html/alecsia
RUN mkdir upload
RUN composer install
RUN php vendor/sensio/distribution-bundle/Sensio/Bundle/DistributionBundle/Resources/bin/build_bootstrap.php
RUN php app/console assets:install
RUN export LANG=en_US.UTF-8
RUN sed -i "s/;date.timezone\s=.*/date.timezone = Europe\/Paris/" /usr/local/etc/php/php.ini
RUN sed -i '10,17d' web/app_dev.php
RUN mkdir -p app/cache && mkdir -p app/logs
RUN chmod 777 app/cache && chmod 777 app/logs
RUN mkdir /etc/alecsia
RUN ln -sf /etc/alecsia/parameters.yml ./app/config/parameters.yml
RUN ln -sf /etc/alecsia/password.yml ./app/config/password.yml
# teacherbook
WORKDIR /var/www/html
RUN wget https://framagit.org/mikaels/teacherbook/-/archive/master/teacherbook-master.zip
RUN unzip teacherbook-master.zip
RUN rm teacherbook-master.zip
RUN mv teacherbook-master teacherbook
WORKDIR /var/www/html/teacherbook
RUN mkdir /etc/teacherbook
RUN ln -sf /etc/teacherbook/config_teacherbook.php config.php
RUN composer install
WORKDIR /var/www/html/alecsia
\ No newline at end of file
parameters:
database_driver : pdo_mysql
database_host : database
database_port : 3306
database_name : alecsia
database_user : root
database_password : root
mailer_transport : smtp
mailer_encryption : ssl
mailer_auth_mode : plain
mailer_host : localhost
mailer_user :
mailer_password :
locale : en
secret : ThisTokenIsNotSoSecretChangeIt
teacher_mail : Mikael.Salson@univ-lille1.fr
alecsia.lille1.teacherbook: http://alecsia/teacherbook/index.php
alecsia.lille1.user.yaml: password.yml
alecsia.upload_dir: %kernel.root_dir%/../upload
be_simple.sso_auth.client.option.curlopt_sslversion.value: 1
<?php
define('DB_HOST', 'database');
define('DB_PORT', '3306');
define('DB_NAME', 'lille1teacherbook');
define('DB_USER', 'root');
define('DB_PASSWORD', 'root');
version: '3'
services:
alecsia:
build: './alecsia'
volumes:
- ./upload:/var/www/html/alecsia/upload
- ./logs/alecsia:/var/www/html/alecsia/app/logs
- ./logs/apache2:/var/log/apache2
- ./alecsia/conf:/etc/alecsia
- ./config:/etc/teacherbook
ports:
- '8000:8000'
- '8080:80'
command: bash -c "/var/www/html/wait-for-it.sh database:3306 --strict --timeout=300 && ls -la /etc/alecsia && ls -l app/config && (php /var/www/html/alecsia/app/console --env=dev doctrine:schema:create || php /var/www/html/alecsia/app/console doctrine:schema:update --env=dev --force) && /etc/init.d/apache2 start && cat"
tty: true
links:
- "mysql-db:database"
depends_on:
- mysql-db
mysql-db:
image: mysql:5.7.29
volumes:
- ./dump.sql:/docker-entrypoint-initdb.d/dump.sql
- ./database:/var/lib/mysql
ports:
- "3306:3306"
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=lille1teacherbook
- MYSQL_ROOT_HOST=%
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
CREATE DATABASE IF NOT EXISTS `alecsia`;
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
CREATE TABLE IF NOT EXISTS `teacher` (
`login` varchar(200) NOT NULL DEFAULT '',
`email` varchar(200) DEFAULT NULL,
`firstName` varchar(200) DEFAULT NULL,
`lastName` varchar(200) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Contenu de la table `teacher`
--
INSERT INTO `teacher` (`login`, `email`, `firstName`, `lastName`) VALUES
('hopper', 'Grace.Hopper@navy.gov', 'Grace', 'Hopper'),
('turing', 'Alan.Turing@enigma.uk', 'Alan', 'Turing');
--
-- Index pour les tables exportées
--
--
-- Index pour la table `teacher`
--
ALTER TABLE `teacher`
ADD PRIMARY KEY (`login`);
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
......@@ -42,7 +42,7 @@
{% set disabledStatus = '' %}
{% endif %}
{% endif %}
<li><input type="checkbox" name="students[]" value="{{ s.id }}" id="stu{{ s.id }}" {{ checkedStatus }} {{ disabledStatus }}/><label for="stu{{ s.id }}">{{user.displayUserName(s)}}</label></li>
<li title="{{ s.getAbsoluteDisplayName() }}"><input type="checkbox" name="students[]" value="{{ s.id }}" id="stu{{ s.id }}" {{ checkedStatus }} {{ disabledStatus }}/><label for="stu{{ s.id }}">{{user.displayUserName(s)}}</label></li>
{% endfor %}
</ul>
......
......@@ -49,6 +49,7 @@
</div>
{% if work.sujet.markDisplayable %}
{{notes.afficherNoteSur(work.note,work.sujet.notesur,work.sujet.SubjectGuts)}}
<div>{{ work.annotations|length }} commentaire{% if work.annotations|length > 1 %}s{% endif %}</div>
{% else %}
<div class="note"><span class="valeur">--</span></div>
{% endif %}
......
Markdown is supported
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