├── .gitattributes
├── .gitignore
├── .vscode
└── settings.json
├── Administration
├── __init__.py
├── __pycache__
│ ├── __init__.cpython-35.pyc
│ ├── admin.cpython-35.pyc
│ ├── models.cpython-35.pyc
│ ├── serializers.cpython-35.pyc
│ ├── urls.cpython-35.pyc
│ └── views.cpython-35.pyc
├── admin.py
├── apps.py
├── migrations
│ ├── 0001_initial.py
│ ├── 0002_doctorant_password.py
│ ├── 0003_auto_20180603_0945.py
│ ├── 0004_enseignant_grade.py
│ ├── 0005_auto_20180603_1017.py
│ ├── 0006_remove_demandesoutenance_slug.py
│ ├── 0007_auto_20180603_1039.py
│ ├── 0008_auto_20180603_1040.py
│ ├── 0009_auto_20180603_1040.py
│ ├── 0010_auto_20180603_1307.py
│ ├── 0011_auto_20180603_1309.py
│ ├── 0012_auto_20180608_1524.py
│ ├── __init__.py
│ └── __pycache__
│ │ ├── 0001_initial.cpython-35.pyc
│ │ ├── 0002_doctorant_password.cpython-35.pyc
│ │ ├── 0003_auto_20180603_0945.cpython-35.pyc
│ │ ├── 0004_enseignant_grade.cpython-35.pyc
│ │ ├── 0005_auto_20180603_1017.cpython-35.pyc
│ │ ├── 0006_remove_demandesoutenance_slug.cpython-35.pyc
│ │ ├── 0007_auto_20180603_1039.cpython-35.pyc
│ │ ├── 0008_auto_20180603_1040.cpython-35.pyc
│ │ ├── 0009_auto_20180603_1040.cpython-35.pyc
│ │ ├── 0010_auto_20180603_1307.cpython-35.pyc
│ │ ├── 0011_auto_20180603_1309.cpython-35.pyc
│ │ ├── 0012_auto_20180608_1524.cpython-35.pyc
│ │ └── __init__.cpython-35.pyc
├── models.py
├── serializers.py
├── tests.py
├── urls.py
└── views.py
├── LICENSE
├── PostGraduation
├── __init__.py
├── __pycache__
│ ├── __init__.cpython-35.pyc
│ ├── settings.cpython-35.pyc
│ ├── urls.cpython-35.pyc
│ └── wsgi.cpython-35.pyc
├── settings.py
├── urls.py
└── wsgi.py
├── README.md
├── Template
├── about.html
├── admin
│ ├── css
│ │ └── style.css
│ ├── dashboard.html
│ ├── demandesoutenace.html
│ ├── editionpv.html
│ ├── emploit.html
│ ├── index.html
│ ├── inscriptions.html
│ ├── js
│ │ ├── index.js
│ │ └── print.min.js
│ ├── listeetudiant.html
│ ├── recours.html
│ ├── reinscription.html
│ ├── validergrade.html
│ └── validersujet.html
├── css
│ ├── bootstrap.css
│ ├── flexslider.css
│ ├── style.css
│ └── swipebox.css
├── enseignant
│ ├── login.html
│ └── passagegrade.html
├── images
│ ├── arr.png
│ ├── bann1.jpg
│ ├── bann2.jpg
│ ├── bann3.jpg
│ ├── bann4.jpg
│ ├── g1.jpg
│ ├── g2.jpg
│ ├── g6.jpg
│ ├── g7.jpg
│ ├── icons.png
│ ├── left.png
│ ├── left11.png
│ ├── loader.gif
│ ├── logo (copy).jpg~
│ ├── logo.jpg
│ ├── logo.png
│ ├── right.png
│ └── right11.png
├── index.html
├── inscription.html
├── js
│ ├── bootstrap.js
│ ├── easing.js
│ ├── jquery-2.2.3.min.js
│ ├── jquery.flexslider.js
│ ├── jquery.swipebox.min.js
│ ├── jquery.waypoints.min.js
│ ├── main.js
│ └── responsiveslides.min.js
├── login.html
├── recours.html
└── reinscription.html
└── manage.py
/.gitattributes:
--------------------------------------------------------------------------------
1 | Template/* linguist-vendored
2 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/.gitignore
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "python.linting.enabled": false
3 | }
--------------------------------------------------------------------------------
/Administration/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/Administration/__init__.py
--------------------------------------------------------------------------------
/Administration/__pycache__/__init__.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/Administration/__pycache__/__init__.cpython-35.pyc
--------------------------------------------------------------------------------
/Administration/__pycache__/admin.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/Administration/__pycache__/admin.cpython-35.pyc
--------------------------------------------------------------------------------
/Administration/__pycache__/models.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/Administration/__pycache__/models.cpython-35.pyc
--------------------------------------------------------------------------------
/Administration/__pycache__/serializers.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/Administration/__pycache__/serializers.cpython-35.pyc
--------------------------------------------------------------------------------
/Administration/__pycache__/urls.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/Administration/__pycache__/urls.cpython-35.pyc
--------------------------------------------------------------------------------
/Administration/__pycache__/views.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/Administration/__pycache__/views.cpython-35.pyc
--------------------------------------------------------------------------------
/Administration/admin.py:
--------------------------------------------------------------------------------
1 | from django.contrib import admin
2 | from . import models
3 | # Register your models here.
4 |
5 |
6 |
7 | class DoctorantAdmin(admin.ModelAdmin):
8 | pass
9 |
10 | admin.site.register(models.Doctorant, DoctorantAdmin)
11 |
12 | class ModuleAdmin(admin.ModelAdmin):
13 | pass
14 |
15 | admin.site.register(models.Module, ModuleAdmin)
16 |
17 | class RecoursAdmin(admin.ModelAdmin):
18 | pass
19 |
20 | admin.site.register(models.Recours, ModuleAdmin)
21 |
22 | class SujetAdmin(admin.ModelAdmin):
23 | pass
24 |
25 | admin.site.register(models.Sujet, ModuleAdmin)
26 |
27 | class ReinscriptionAdmin(admin.ModelAdmin):
28 | pass
29 |
30 | admin.site.register(models.Reinscription, ModuleAdmin)
31 |
32 | class InscriptionAdmin(admin.ModelAdmin):
33 | pass
34 |
35 | admin.site.register(models.Inscription, ModuleAdmin)
36 |
37 | class EnseignantAdmin(admin.ModelAdmin):
38 | pass
39 |
40 | admin.site.register(models.Enseignant, ModuleAdmin)
41 |
42 | class PassageGradeAdmin(admin.ModelAdmin):
43 | pass
44 |
45 | admin.site.register(models.PassageGrade, ModuleAdmin)
46 |
47 |
--------------------------------------------------------------------------------
/Administration/apps.py:
--------------------------------------------------------------------------------
1 | from django.apps import AppConfig
2 |
3 |
4 | class AdministrationConfig(AppConfig):
5 | name = 'Administration'
6 |
--------------------------------------------------------------------------------
/Administration/migrations/0001_initial.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.0.5 on 2018-06-01 00:48
2 |
3 | from django.db import migrations, models
4 | import django.db.models.deletion
5 |
6 |
7 | class Migration(migrations.Migration):
8 |
9 | initial = True
10 |
11 | dependencies = [
12 | ]
13 |
14 | operations = [
15 | migrations.CreateModel(
16 | name='Doctorant',
17 | fields=[
18 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
19 | ('nationaliter', models.CharField(max_length=50)),
20 | ('nom', models.CharField(max_length=50)),
21 | ('prenom', models.CharField(max_length=50)),
22 | ('sexe', models.CharField(max_length=10)),
23 | ('date_naissance', models.DateField()),
24 | ('lieu_naissance', models.CharField(max_length=100)),
25 | ('addresse', models.CharField(max_length=100)),
26 | ('email', models.CharField(max_length=50)),
27 | ('telephone', models.CharField(max_length=15)),
28 | ('nom_prenom_mere', models.CharField(max_length=50)),
29 | ('nom_pere', models.CharField(max_length=50)),
30 | ('accepted', models.BooleanField(default=False)),
31 | ('slug', models.SlugField()),
32 | ],
33 | options={
34 | 'ordering': ['nom'],
35 | },
36 | ),
37 | migrations.CreateModel(
38 | name='Inscription',
39 | fields=[
40 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
41 | ('intitulerPostGrade', models.CharField(max_length=100)),
42 | ('intitulerSujet', models.CharField(max_length=100)),
43 | ('diplomeGraduation', models.CharField(max_length=250)),
44 | ('nomEncadreur', models.CharField(max_length=100)),
45 | ('gradeEncadreur', models.CharField(max_length=100)),
46 | ('nomCoEncadreur', models.CharField(max_length=100)),
47 | ('gradeCoEncadreur', models.CharField(max_length=100)),
48 | ('dateInscription', models.DateField(auto_now_add=True)),
49 | ('slug', models.SlugField()),
50 | ('doctorant', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='inscriptions', to='Administration.Doctorant')),
51 | ],
52 | options={
53 | 'ordering': ['intitulerPostGrade'],
54 | },
55 | ),
56 | migrations.CreateModel(
57 | name='Module',
58 | fields=[
59 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
60 | ('nom', models.CharField(max_length=50)),
61 | ('niveau', models.CharField(max_length=10)),
62 | ('slug', models.SlugField()),
63 | ],
64 | options={
65 | 'ordering': ['nom'],
66 | },
67 | ),
68 | migrations.CreateModel(
69 | name='Recourt',
70 | fields=[
71 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
72 | ('sujet', models.CharField(max_length=50)),
73 | ('message', models.CharField(max_length=2550)),
74 | ('accepted', models.BooleanField(default=False)),
75 | ('doctorant', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='recours', to='Administration.Doctorant')),
76 | ],
77 | options={
78 | 'ordering': ['sujet'],
79 | },
80 | ),
81 | migrations.CreateModel(
82 | name='Reinscription',
83 | fields=[
84 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
85 | ('intitulerPostGrade', models.CharField(max_length=100)),
86 | ('intitulerSujet', models.CharField(max_length=100)),
87 | ('diplomeGraduation', models.CharField(max_length=250)),
88 | ('nomEncadreur', models.CharField(max_length=100)),
89 | ('gradeEncadreur', models.CharField(max_length=100)),
90 | ('nomCoEncadreur', models.CharField(max_length=100)),
91 | ('gradeCoEncadreur', models.CharField(max_length=100)),
92 | ('dateReinscription', models.DateField(auto_now_add=True)),
93 | ('slug', models.SlugField()),
94 | ('doctorant', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='reinscriptions', to='Administration.Doctorant')),
95 | ],
96 | options={
97 | 'ordering': ['intitulerPostGrade'],
98 | },
99 | ),
100 | migrations.CreateModel(
101 | name='Sujet',
102 | fields=[
103 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
104 | ('titre', models.CharField(max_length=50)),
105 | ('description', models.TextField()),
106 | ('accepted', models.BooleanField(default=False)),
107 | ('slug', models.SlugField()),
108 | ],
109 | options={
110 | 'ordering': ['titre'],
111 | },
112 | ),
113 | migrations.AlterUniqueTogether(
114 | name='recourt',
115 | unique_together={('doctorant', 'sujet')},
116 | ),
117 | ]
118 |
--------------------------------------------------------------------------------
/Administration/migrations/0002_doctorant_password.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.0.5 on 2018-06-01 22:24
2 |
3 | from django.db import migrations, models
4 | import django.utils.timezone
5 |
6 |
7 | class Migration(migrations.Migration):
8 |
9 | dependencies = [
10 | ('Administration', '0001_initial'),
11 | ]
12 |
13 | operations = [
14 | migrations.AddField(
15 | model_name='doctorant',
16 | name='password',
17 | field=models.CharField(default=django.utils.timezone.now, max_length=50),
18 | preserve_default=False,
19 | ),
20 | ]
21 |
--------------------------------------------------------------------------------
/Administration/migrations/0003_auto_20180603_0945.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.0.5 on 2018-06-03 09:45
2 |
3 | from django.db import migrations, models
4 | import django.db.models.deletion
5 |
6 |
7 | class Migration(migrations.Migration):
8 |
9 | dependencies = [
10 | ('Administration', '0002_doctorant_password'),
11 | ]
12 |
13 | operations = [
14 | migrations.CreateModel(
15 | name='DemandeSoutenance',
16 | fields=[
17 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
18 | ('numberAccepted', models.IntegerField()),
19 | ('slug', models.SlugField()),
20 | ],
21 | options={
22 | 'ordering': ['id'],
23 | },
24 | ),
25 | migrations.CreateModel(
26 | name='Enseignant',
27 | fields=[
28 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
29 | ('nom', models.CharField(max_length=50)),
30 | ('prenom', models.CharField(max_length=50)),
31 | ('sexe', models.CharField(max_length=10)),
32 | ('date_naissance', models.DateField()),
33 | ('lieu_naissance', models.CharField(max_length=100)),
34 | ('addresse', models.CharField(max_length=100)),
35 | ('email', models.CharField(max_length=50)),
36 | ('telephone', models.CharField(max_length=15)),
37 | ('password', models.CharField(max_length=50)),
38 | ('slug', models.SlugField()),
39 | ],
40 | options={
41 | 'ordering': ['nom'],
42 | },
43 | ),
44 | migrations.AddField(
45 | model_name='demandesoutenance',
46 | name='Enseignant',
47 | field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='enseignants', to='Administration.Enseignant'),
48 | ),
49 | migrations.AddField(
50 | model_name='demandesoutenance',
51 | name='doctorant',
52 | field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='doctorant', to='Administration.Doctorant'),
53 | ),
54 | ]
55 |
--------------------------------------------------------------------------------
/Administration/migrations/0004_enseignant_grade.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.0.5 on 2018-06-03 09:49
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 |
8 | dependencies = [
9 | ('Administration', '0003_auto_20180603_0945'),
10 | ]
11 |
12 | operations = [
13 | migrations.AddField(
14 | model_name='enseignant',
15 | name='grade',
16 | field=models.IntegerField(default=1),
17 | preserve_default=False,
18 | ),
19 | ]
20 |
--------------------------------------------------------------------------------
/Administration/migrations/0005_auto_20180603_1017.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.0.5 on 2018-06-03 10:17
2 |
3 | from django.db import migrations, models
4 | import django.db.models.deletion
5 |
6 |
7 | class Migration(migrations.Migration):
8 |
9 | dependencies = [
10 | ('Administration', '0004_enseignant_grade'),
11 | ]
12 |
13 | operations = [
14 | migrations.RenameField(
15 | model_name='demandesoutenance',
16 | old_name='Enseignant',
17 | new_name='enseignant',
18 | ),
19 | migrations.AddField(
20 | model_name='demandesoutenance',
21 | name='reinscription',
22 | field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, related_name='reinscription', to='Administration.Reinscription'),
23 | preserve_default=False,
24 | ),
25 | migrations.AlterField(
26 | model_name='demandesoutenance',
27 | name='numberAccepted',
28 | field=models.IntegerField(default=0),
29 | ),
30 | ]
31 |
--------------------------------------------------------------------------------
/Administration/migrations/0006_remove_demandesoutenance_slug.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.0.5 on 2018-06-03 10:26
2 |
3 | from django.db import migrations
4 |
5 |
6 | class Migration(migrations.Migration):
7 |
8 | dependencies = [
9 | ('Administration', '0005_auto_20180603_1017'),
10 | ]
11 |
12 | operations = [
13 | migrations.RemoveField(
14 | model_name='demandesoutenance',
15 | name='slug',
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/Administration/migrations/0007_auto_20180603_1039.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.0.5 on 2018-06-03 10:39
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 |
8 | dependencies = [
9 | ('Administration', '0006_remove_demandesoutenance_slug'),
10 | ]
11 |
12 | operations = [
13 | migrations.RemoveField(
14 | model_name='demandesoutenance',
15 | name='doctorant',
16 | ),
17 | migrations.RemoveField(
18 | model_name='demandesoutenance',
19 | name='enseignant',
20 | ),
21 | migrations.RemoveField(
22 | model_name='demandesoutenance',
23 | name='reinscription',
24 | ),
25 | migrations.RemoveField(
26 | model_name='enseignant',
27 | name='grade',
28 | ),
29 | migrations.AddField(
30 | model_name='enseignant',
31 | name='Grade',
32 | field=models.BooleanField(default=False),
33 | ),
34 | migrations.DeleteModel(
35 | name='DemandeSoutenance',
36 | ),
37 | ]
38 |
--------------------------------------------------------------------------------
/Administration/migrations/0008_auto_20180603_1040.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.0.5 on 2018-06-03 10:40
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 |
8 | dependencies = [
9 | ('Administration', '0007_auto_20180603_1039'),
10 | ]
11 |
12 | operations = [
13 | migrations.AlterField(
14 | model_name='enseignant',
15 | name='Grade',
16 | field=models.IntegerField(default=1),
17 | ),
18 | ]
19 |
--------------------------------------------------------------------------------
/Administration/migrations/0009_auto_20180603_1040.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.0.5 on 2018-06-03 10:40
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 |
8 | dependencies = [
9 | ('Administration', '0008_auto_20180603_1040'),
10 | ]
11 |
12 | operations = [
13 | migrations.RemoveField(
14 | model_name='enseignant',
15 | name='Grade',
16 | ),
17 | migrations.AddField(
18 | model_name='enseignant',
19 | name='grade',
20 | field=models.IntegerField(default=0),
21 | ),
22 | ]
23 |
--------------------------------------------------------------------------------
/Administration/migrations/0010_auto_20180603_1307.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.0.5 on 2018-06-03 13:07
2 |
3 | from django.db import migrations, models
4 | import django.db.models.deletion
5 |
6 |
7 | class Migration(migrations.Migration):
8 |
9 | dependencies = [
10 | ('Administration', '0009_auto_20180603_1040'),
11 | ]
12 |
13 | operations = [
14 | migrations.CreateModel(
15 | name='PassageGrade',
16 | fields=[
17 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
18 | ('gradeVoulu', models.CharField(max_length=50)),
19 | ('argument', models.CharField(max_length=2550)),
20 | ('enseignant', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='passagegrades', to='Administration.Enseignant')),
21 | ],
22 | options={
23 | 'ordering': ['gradeVoulu'],
24 | },
25 | ),
26 | migrations.AlterUniqueTogether(
27 | name='passagegrade',
28 | unique_together={('enseignant', 'gradeVoulu')},
29 | ),
30 | ]
31 |
--------------------------------------------------------------------------------
/Administration/migrations/0011_auto_20180603_1309.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.0.5 on 2018-06-03 13:09
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 |
8 | dependencies = [
9 | ('Administration', '0010_auto_20180603_1307'),
10 | ]
11 |
12 | operations = [
13 | migrations.AlterField(
14 | model_name='passagegrade',
15 | name='argument',
16 | field=models.TextField(),
17 | ),
18 | ]
19 |
--------------------------------------------------------------------------------
/Administration/migrations/0012_auto_20180608_1524.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.0.5 on 2018-06-08 15:24
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 |
8 | dependencies = [
9 | ('Administration', '0011_auto_20180603_1309'),
10 | ]
11 |
12 | operations = [
13 | migrations.RenameModel(
14 | old_name='Recourt',
15 | new_name='Recours',
16 | ),
17 | migrations.AlterField(
18 | model_name='enseignant',
19 | name='grade',
20 | field=models.CharField(max_length=50),
21 | ),
22 | ]
23 |
--------------------------------------------------------------------------------
/Administration/migrations/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/Administration/migrations/__init__.py
--------------------------------------------------------------------------------
/Administration/migrations/__pycache__/0001_initial.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/Administration/migrations/__pycache__/0001_initial.cpython-35.pyc
--------------------------------------------------------------------------------
/Administration/migrations/__pycache__/0002_doctorant_password.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/Administration/migrations/__pycache__/0002_doctorant_password.cpython-35.pyc
--------------------------------------------------------------------------------
/Administration/migrations/__pycache__/0003_auto_20180603_0945.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/Administration/migrations/__pycache__/0003_auto_20180603_0945.cpython-35.pyc
--------------------------------------------------------------------------------
/Administration/migrations/__pycache__/0004_enseignant_grade.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/Administration/migrations/__pycache__/0004_enseignant_grade.cpython-35.pyc
--------------------------------------------------------------------------------
/Administration/migrations/__pycache__/0005_auto_20180603_1017.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/Administration/migrations/__pycache__/0005_auto_20180603_1017.cpython-35.pyc
--------------------------------------------------------------------------------
/Administration/migrations/__pycache__/0006_remove_demandesoutenance_slug.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/Administration/migrations/__pycache__/0006_remove_demandesoutenance_slug.cpython-35.pyc
--------------------------------------------------------------------------------
/Administration/migrations/__pycache__/0007_auto_20180603_1039.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/Administration/migrations/__pycache__/0007_auto_20180603_1039.cpython-35.pyc
--------------------------------------------------------------------------------
/Administration/migrations/__pycache__/0008_auto_20180603_1040.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/Administration/migrations/__pycache__/0008_auto_20180603_1040.cpython-35.pyc
--------------------------------------------------------------------------------
/Administration/migrations/__pycache__/0009_auto_20180603_1040.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/Administration/migrations/__pycache__/0009_auto_20180603_1040.cpython-35.pyc
--------------------------------------------------------------------------------
/Administration/migrations/__pycache__/0010_auto_20180603_1307.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/Administration/migrations/__pycache__/0010_auto_20180603_1307.cpython-35.pyc
--------------------------------------------------------------------------------
/Administration/migrations/__pycache__/0011_auto_20180603_1309.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/Administration/migrations/__pycache__/0011_auto_20180603_1309.cpython-35.pyc
--------------------------------------------------------------------------------
/Administration/migrations/__pycache__/0012_auto_20180608_1524.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/Administration/migrations/__pycache__/0012_auto_20180608_1524.cpython-35.pyc
--------------------------------------------------------------------------------
/Administration/migrations/__pycache__/__init__.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/Administration/migrations/__pycache__/__init__.cpython-35.pyc
--------------------------------------------------------------------------------
/Administration/models.py:
--------------------------------------------------------------------------------
1 | from django.db import models
2 | from django.template.defaultfilters import slugify
3 | from datetime import datetime
4 |
5 | # Create your views here.
6 | class Doctorant(models.Model):
7 | nationaliter = models.CharField(max_length=50,null=False)
8 | nom = models.CharField(max_length=50,null=False)
9 | prenom = models.CharField(max_length=50,null=False)
10 | sexe = models.CharField(max_length=10,null=False)
11 | date_naissance = models.DateField()
12 | lieu_naissance = models.CharField(max_length=100,null=False)
13 | addresse = models.CharField(max_length=100,null=False)
14 | email = models.CharField(max_length=50,null=False)
15 | telephone = models.CharField(max_length=15,null=False)
16 | nom_prenom_mere = models.CharField(max_length=50,null=False)
17 | nom_pere = models.CharField(max_length=50,null=False)
18 | password = models.CharField(max_length=50,null=False)
19 | accepted = models.BooleanField(default=False)
20 | slug = models.SlugField()
21 |
22 | def __str__(self):
23 | return self.nom
24 |
25 | def save(self, *args, **kwargs):
26 | if not self.id:
27 | self.slug = slugify(self.nom)
28 |
29 | super(Doctorant, self).save(*args, **kwargs)
30 |
31 | class Meta:
32 | ordering = ['nom']
33 |
34 |
35 | class Module(models.Model):
36 | nom = models.CharField(max_length=50)
37 | niveau = models.CharField(max_length=10)
38 | slug = models.SlugField()
39 |
40 | def __str__(self):
41 | return self.nom
42 |
43 | def save(self, *args, **kwargs):
44 | if not self.id:
45 | self.slug = slugify(self.nom)
46 |
47 | super(Module, self).save(*args, **kwargs)
48 |
49 | class Meta:
50 | ordering = ['nom']
51 |
52 | class Recours(models.Model):
53 | doctorant = models.ForeignKey(Doctorant, related_name='recours', on_delete=models.CASCADE)
54 | sujet = models.CharField(max_length=50)
55 | message = models.CharField(max_length=2550)
56 | accepted = models.BooleanField(default=False)
57 |
58 | class Meta:
59 | unique_together = ('doctorant', 'sujet')
60 | ordering = ['sujet']
61 |
62 | def __unicode__(self):
63 | return '%s: %s' % (self.sujet, self.message)
64 |
65 |
66 | class Sujet(models.Model):
67 | titre = models.CharField(max_length=50)
68 | description = models.TextField()
69 | accepted = models.BooleanField(default=False)
70 | slug = models.SlugField()
71 |
72 | def __str__(self):
73 | return self.titre
74 |
75 | def save(self, *args, **kwargs):
76 | if not self.id:
77 | self.slug = slugify(self.titre)
78 |
79 | super(Sujet, self).save(*args, **kwargs)
80 |
81 | class Meta:
82 | ordering = ['titre']
83 |
84 |
85 | class Reinscription(models.Model):
86 | doctorant = models.ForeignKey(Doctorant, related_name='reinscriptions', on_delete=models.CASCADE)
87 | intitulerPostGrade = models.CharField(max_length=100)
88 | intitulerSujet = models.CharField(max_length=100)
89 | diplomeGraduation = models.CharField(max_length=250)
90 | nomEncadreur = models.CharField(max_length=100)
91 | gradeEncadreur = models.CharField(max_length=100)
92 | nomCoEncadreur = models.CharField(max_length=100)
93 | gradeCoEncadreur = models.CharField(max_length=100)
94 | dateReinscription = models.DateField(auto_now_add=True)
95 | slug = models.SlugField()
96 |
97 | def __str__(self):
98 | return self.intitulerSujet
99 |
100 | def save(self, *args, **kwargs):
101 | if not self.id:
102 | self.slug = slugify(self.id)
103 |
104 | super(Reinscription, self).save(*args, **kwargs)
105 |
106 | class Meta:
107 | ordering = ['intitulerPostGrade']
108 |
109 | class Inscription(models.Model):
110 | doctorant = models.ForeignKey(Doctorant, related_name='inscriptions', on_delete=models.CASCADE)
111 | intitulerPostGrade = models.CharField(max_length=100)
112 | intitulerSujet = models.CharField(max_length=100)
113 | diplomeGraduation = models.CharField(max_length=250)
114 | nomEncadreur = models.CharField(max_length=100)
115 | gradeEncadreur = models.CharField(max_length=100)
116 | nomCoEncadreur = models.CharField(max_length=100)
117 | gradeCoEncadreur = models.CharField(max_length=100)
118 | dateInscription = models.DateField(auto_now_add=True)
119 | slug = models.SlugField()
120 |
121 | def __str__(self):
122 | return self.intitulerSujet
123 |
124 | def save(self, *args, **kwargs):
125 | if not self.id:
126 | self.slug = slugify(self.id)
127 |
128 | super(Inscription, self).save(*args, **kwargs)
129 |
130 | class Meta:
131 | ordering = ['intitulerPostGrade']
132 |
133 | class Enseignant(models.Model):
134 | nom = models.CharField(max_length=50,null=False)
135 | prenom = models.CharField(max_length=50,null=False)
136 | sexe = models.CharField(max_length=10,null=False)
137 | date_naissance = models.DateField()
138 | lieu_naissance = models.CharField(max_length=100,null=False)
139 | addresse = models.CharField(max_length=100,null=False)
140 | email = models.CharField(max_length=50,null=False)
141 | telephone = models.CharField(max_length=15,null=False)
142 | password = models.CharField(max_length=50,null=False)
143 | grade = models.CharField(max_length=50,null=False)
144 | slug = models.SlugField()
145 |
146 | def __str__(self):
147 | return self.nom
148 |
149 | def save(self, *args, **kwargs):
150 | if not self.id:
151 | self.slug = slugify(self.nom)
152 |
153 | super(Enseignant, self).save(*args, **kwargs)
154 |
155 | class Meta:
156 | ordering = ['nom']
157 |
158 | class PassageGrade(models.Model):
159 | enseignant = models.ForeignKey(Enseignant, related_name='passagegrades', on_delete=models.CASCADE)
160 | gradeVoulu = models.CharField(max_length=50)
161 | argument = models.TextField()
162 |
163 | class Meta:
164 | unique_together = ('enseignant', 'gradeVoulu')
165 | ordering = ['gradeVoulu']
166 |
167 | def __unicode__(self):
168 | return '%s: %s' % (self.gradeVoulu, self.argument)
--------------------------------------------------------------------------------
/Administration/serializers.py:
--------------------------------------------------------------------------------
1 | from rest_framework import serializers
2 | from . import models
3 |
4 |
5 | class RecoursSerializer(serializers.ModelSerializer):
6 | class Meta:
7 | model = models.Recours
8 | fields = ('doctorant','sujet','message','accepted')
9 |
10 | class PassageGradeSerializer(serializers.ModelSerializer):
11 | class Meta:
12 | model = models.PassageGrade
13 | fields = ('id','enseignant','gradeVoulu','argument')
14 |
15 | class ReinscriptionSerializer(serializers.ModelSerializer):
16 | class Meta:
17 | model = models.Reinscription
18 | fields = ('doctorant','intitulerPostGrade','intitulerSujet','diplomeGraduation','nomEncadreur','nomCoEncadreur','dateReinscription')
19 |
20 | class InscriptionSerializer(serializers.ModelSerializer):
21 | class Meta:
22 | model = models.Inscription
23 | fields = ('doctorant','intitulerPostGrade','intitulerSujet','diplomeGraduation','nomEncadreur','nomCoEncadreur','dateInscription','gradeEncadreur','gradeCoEncadreur')
24 |
25 | class EnseignantSerializer(serializers.ModelSerializer):
26 | passagegrades = serializers.HyperlinkedRelatedField(
27 | many=True,
28 | read_only=True,
29 | view_name='passagegrade-detail'
30 | )
31 | class Meta:
32 | model = models.Enseignant
33 | fields = ('id','nom','prenom','sexe' ,'date_naissance', 'lieu_naissance', 'addresse','email','grade','passagegrades')
34 |
35 | class DoctorantSerializer(serializers.ModelSerializer):
36 | recours = serializers.HyperlinkedRelatedField(
37 | many=True,
38 | read_only=True,
39 | view_name='recours-detail'
40 | )
41 | reinscriptions = serializers.HyperlinkedRelatedField(
42 | many=True,
43 | read_only=True,
44 | view_name='reinscription-detail'
45 | )
46 | inscriptions = serializers.HyperlinkedRelatedField(
47 | many=True,
48 | read_only=True,
49 | view_name='inscription-detail'
50 | )
51 |
52 | class Meta:
53 | model = models.Doctorant
54 | fields = ('id','nationaliter', 'nom','prenom','sexe' ,'date_naissance', 'lieu_naissance', 'addresse','email','accepted','password','inscriptions','reinscriptions','recours')
55 |
56 | class ModuleSerializer(serializers.HyperlinkedModelSerializer):
57 | class Meta:
58 | model = models.Module
59 | fields = ('id','nom','niveau')
60 |
61 | class SujetSerializer(serializers.HyperlinkedModelSerializer):
62 | class Meta:
63 | model = models.Sujet
64 | fields = ('id','titre','description','accepted')
65 |
66 | class EnseignantSerializer(serializers.HyperlinkedModelSerializer):
67 | passagegrades = serializers.HyperlinkedRelatedField(
68 | many=True,
69 | read_only=True,
70 | view_name='passagegrade-detail'
71 | )
72 | class Meta:
73 | model = models.Enseignant
74 | fields = ('id', 'nom','prenom','sexe' ,'date_naissance', 'lieu_naissance', 'addresse','email','password','grade','passagegrades')
75 |
--------------------------------------------------------------------------------
/Administration/tests.py:
--------------------------------------------------------------------------------
1 | from django.test import TestCase
2 |
3 | # Create your tests here.
4 |
--------------------------------------------------------------------------------
/Administration/urls.py:
--------------------------------------------------------------------------------
1 | from django.urls import path, include
2 | from rest_framework.routers import DefaultRouter
3 |
4 | from . import views
5 |
6 | router = DefaultRouter()
7 |
8 | router.register(r'doctorant', views.DoctorantViewSet)
9 | router.register(r'module', views.ModuleViewSet)
10 | router.register(r'recours', views.RecoursViewSet)
11 | router.register(r'sujet', views.SujetViewSet)
12 | router.register(r'reinscription', views.ReinscriptionViewSet)
13 | router.register(r'inscription', views.InscriptionViewSet)
14 | router.register(r'enseignant', views.EnseignantViewSet)
15 | router.register(r'passagegrade', views.PassageGradeViewSet)
16 |
17 | urlpatterns = [
18 | path('', include(router.urls)),
19 | ]
--------------------------------------------------------------------------------
/Administration/views.py:
--------------------------------------------------------------------------------
1 | from rest_framework import viewsets
2 | from . import models
3 | from . import serializers
4 |
5 |
6 | class DoctorantViewSet(viewsets.ModelViewSet):
7 | queryset = models.Doctorant.objects.all()
8 | serializer_class = serializers.DoctorantSerializer
9 |
10 | class ModuleViewSet(viewsets.ModelViewSet):
11 | queryset = models.Module.objects.all()
12 | serializer_class = serializers.ModuleSerializer
13 | lookup_field = 'niveau'
14 |
15 | class RecoursViewSet(viewsets.ModelViewSet):
16 | queryset = models.Recours.objects.all()
17 | serializer_class = serializers.RecoursSerializer
18 |
19 | class SujetViewSet(viewsets.ModelViewSet):
20 | queryset = models.Sujet.objects.all()
21 | serializer_class = serializers.SujetSerializer
22 | lookup_field = 'id'
23 |
24 | class ReinscriptionViewSet(viewsets.ModelViewSet):
25 | queryset = models.Reinscription.objects.all()
26 | serializer_class = serializers.ReinscriptionSerializer
27 |
28 | class InscriptionViewSet(viewsets.ModelViewSet):
29 | queryset = models.Inscription.objects.all()
30 | serializer_class = serializers.InscriptionSerializer
31 |
32 | class EnseignantViewSet(viewsets.ModelViewSet):
33 | queryset = models.Enseignant.objects.all()
34 | serializer_class = serializers.EnseignantSerializer
35 |
36 | class PassageGradeViewSet(viewsets.ModelViewSet):
37 | queryset = models.PassageGrade.objects.all()
38 | serializer_class = serializers.PassageGradeSerializer
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2018 Amine Smahi
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/PostGraduation/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/PostGraduation/__init__.py
--------------------------------------------------------------------------------
/PostGraduation/__pycache__/__init__.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/PostGraduation/__pycache__/__init__.cpython-35.pyc
--------------------------------------------------------------------------------
/PostGraduation/__pycache__/settings.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/PostGraduation/__pycache__/settings.cpython-35.pyc
--------------------------------------------------------------------------------
/PostGraduation/__pycache__/urls.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/PostGraduation/__pycache__/urls.cpython-35.pyc
--------------------------------------------------------------------------------
/PostGraduation/__pycache__/wsgi.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/PostGraduation/__pycache__/wsgi.cpython-35.pyc
--------------------------------------------------------------------------------
/PostGraduation/settings.py:
--------------------------------------------------------------------------------
1 | """
2 | Django settings for PostGraduation project.
3 |
4 | Generated by 'django-admin startproject' using Django 2.0.5.
5 |
6 | For more information on this file, see
7 | https://docs.djangoproject.com/en/2.0/topics/settings/
8 |
9 | For the full list of settings and their values, see
10 | https://docs.djangoproject.com/en/2.0/ref/settings/
11 | """
12 |
13 | import os
14 |
15 | # Build paths inside the project like this: os.path.join(BASE_DIR, ...)
16 | BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
17 |
18 |
19 | # Quick-start development settings - unsuitable for production
20 | # See https://docs.djangoproject.com/en/2.0/howto/deployment/checklist/
21 |
22 | # SECURITY WARNING: keep the secret key used in production secret!
23 | SECRET_KEY = 'a_fg*@gegind@k$x(80fm7-d9lxlacnbskpd^8%jiejbq06c3$'
24 |
25 | # SECURITY WARNING: don't run with debug turned on in production!
26 | DEBUG = True
27 |
28 | ALLOWED_HOSTS = []
29 |
30 |
31 | # Application definition
32 |
33 | INSTALLED_APPS = [
34 | 'django.contrib.admin',
35 | 'django.contrib.auth',
36 | 'django.contrib.contenttypes',
37 | 'django.contrib.sessions',
38 | 'django.contrib.messages',
39 | 'django.contrib.staticfiles',
40 | 'rest_framework',
41 | 'Administration',
42 | 'corsheaders',
43 | ]
44 |
45 | MIDDLEWARE = [
46 | 'django.middleware.security.SecurityMiddleware',
47 | 'corsheaders.middleware.CorsMiddleware',
48 | 'django.contrib.sessions.middleware.SessionMiddleware',
49 | 'django.middleware.common.CommonMiddleware',
50 | 'django.middleware.csrf.CsrfViewMiddleware',
51 | 'corsheaders.middleware.CorsMiddleware',
52 | 'django.contrib.auth.middleware.AuthenticationMiddleware',
53 | 'django.contrib.messages.middleware.MessageMiddleware',
54 | 'django.middleware.clickjacking.XFrameOptionsMiddleware',
55 | ]
56 |
57 | ROOT_URLCONF = 'PostGraduation.urls'
58 |
59 | TEMPLATES = [
60 | {
61 | 'BACKEND': 'django.template.backends.django.DjangoTemplates',
62 | 'DIRS': [],
63 | 'APP_DIRS': True,
64 | 'OPTIONS': {
65 | 'context_processors': [
66 | 'django.template.context_processors.debug',
67 | 'django.template.context_processors.request',
68 | 'django.contrib.auth.context_processors.auth',
69 | 'django.contrib.messages.context_processors.messages',
70 | ],
71 | },
72 | },
73 | ]
74 |
75 | WSGI_APPLICATION = 'PostGraduation.wsgi.application'
76 |
77 |
78 | # Database
79 | # https://docs.djangoproject.com/en/2.0/ref/settings/#databases
80 |
81 | DATABASES = {
82 | 'default': {
83 | 'ENGINE': 'django.db.backends.mysql',
84 | 'OPTIONS': {
85 | 'read_default_file': '/etc/mysql/my.cnf',
86 | },
87 | }
88 | }
89 |
90 |
91 | # Password validation
92 | # https://docs.djangoproject.com/en/2.0/ref/settings/#auth-password-validators
93 |
94 | AUTH_PASSWORD_VALIDATORS = [
95 | {
96 | 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
97 | },
98 | {
99 | 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
100 | },
101 | {
102 | 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
103 | },
104 | {
105 | 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
106 | },
107 | ]
108 |
109 |
110 | # Internationalization
111 | # https://docs.djangoproject.com/en/2.0/topics/i18n/
112 |
113 | LANGUAGE_CODE = 'en-us'
114 |
115 | TIME_ZONE = 'UTC'
116 |
117 | USE_I18N = True
118 |
119 | USE_L10N = True
120 |
121 | USE_TZ = True
122 |
123 | CORS_ORIGIN_ALLOW_ALL = True
124 |
125 |
126 | # Static files (CSS, JavaScript, Images)
127 | # https://docs.djangoproject.com/en/2.0/howto/static-files/
128 |
129 | STATIC_URL = '/static/'
130 | DATE_INPUT_FORMATS = ['%d-%m-%Y']
131 |
132 | REST_FRAMEWORK = {
133 | 'DEFAULT_RENDERER_CLASSES': (
134 | 'rest_framework.renderers.JSONRenderer',
135 | )
136 | }
--------------------------------------------------------------------------------
/PostGraduation/urls.py:
--------------------------------------------------------------------------------
1 | from django.contrib import admin
2 | from django.urls import path, include
3 |
4 | urlpatterns = [
5 | path('Administration/', include('Administration.urls')),
6 | ]
7 |
--------------------------------------------------------------------------------
/PostGraduation/wsgi.py:
--------------------------------------------------------------------------------
1 | """
2 | WSGI config for PostGraduation project.
3 |
4 | It exposes the WSGI callable as a module-level variable named ``application``.
5 |
6 | For more information on this file, see
7 | https://docs.djangoproject.com/en/2.0/howto/deployment/wsgi/
8 | """
9 |
10 | import os
11 |
12 | from django.core.wsgi import get_wsgi_application
13 |
14 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "PostGraduation.settings")
15 |
16 | application = get_wsgi_application()
17 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # PostGraduation
2 | University management platform dedicated for post-graduation in computer science field.
3 | ## Tools and Languages:
4 | * Visuel Studio Code (code writting and debugging).
5 | * Django REST Framework (API based access and data transfer).
6 | * HTML, CSS and JS
7 | * Materelize.
8 | * Python (programming language).
9 |
10 | ## Screenshots:
11 | 
12 |
13 |
14 |
15 | 
16 |
17 |
18 |
19 | 
20 |
21 |
22 |
23 | 
24 |
25 |
26 |
27 | 
28 |
29 |
30 |
31 | 
32 |
33 |
34 |
35 | 
36 |
--------------------------------------------------------------------------------
/Template/about.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Universiter oran 1
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
124 |
125 |
126 |
127 |
128 | A bout Us
129 |
130 |
131 |
Welcome to Education
132 |
Donec bibendum velit quis diam venenatis, vulputate aliquam sapien blandit. Etiam dui massa, vehicula a convallis a,
133 | facilisis vitae neque.Pellentesque sit amet odio quis libero eleifend congue at ac justo. Suspendisse posuere congue
134 | accumsan Vulputate aliquam sapien.
135 |
136 | Proin tempor pulvinar Vivamus nisi hendrerit et.
137 |
138 | Proin tempor pulvinar Vivamus nisi hendrerit et.
139 |
140 | Proin tempor pulvinar Vivamus nisi hendrerit et.
141 |
142 | Proin tempor pulvinar Vivamus nisi hendrerit et.
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
194 | © 2018 All Rights Reserved | Design by Amine Smahi & Ousssama Bonnor
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 |
--------------------------------------------------------------------------------
/Template/admin/css/style.css:
--------------------------------------------------------------------------------
1 | header, main, footer {
2 | padding-left: 240px;
3 | }
4 | body {
5 | backgroud: white;
6 | }
7 | main{
8 | padding-top: 2%;
9 | padding-left: 15%;
10 | padding-right: 2%;
11 | }
12 | .login-form{
13 | border: 1px solid #BCC2E2;
14 | box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23);
15 | }
16 | .accept{
17 | background-color: seagreen;
18 | }
19 | .refuse{
20 | background-color: indianred;
21 | }
22 | .imprimer{
23 | background-color: darkslateblue;
24 | }
25 | .inside-table{
26 | border: 1px solid black;
27 | border-collapse: collapse;
28 | height: 10px;
29 | font-weight: normal;
30 | }
31 | .mark{
32 | padding-top: 15px;
33 | padding-bottom: 15px;
34 | }
35 | .login-footer{
36 | position:absolute;
37 | bottom:0;
38 | width:100%;
39 | }
40 | .tableview{
41 | padding-left: 0px;
42 | }
43 | @media only screen and (max-width: 992px) {
44 | header, main, footer {
45 | padding-left: 0;
46 | }
47 | }
48 | .indigo.darken-2 {
49 | background-color: #1a9b46 !important;
50 | }
51 | .indigo{
52 | background-color: #1eb04f !important;
53 | }
54 | #credits li, #credits li a {
55 | color: white;
56 | }
57 | #credits li a {
58 | font-weight: bold;
59 | }
60 | .footer-copyright .container, .footer-copyright .container a {
61 | color: #BCC2E2;
62 | }
63 | .fab-tip {
64 | position: fixed;
65 | right: 85px;
66 | padding: 0px 0.5rem;
67 | text-align: right;
68 | background-color: #323232;
69 | border-radius: 2px;
70 | color: #FFF;
71 | width: auto;
72 | }
73 | @media only screen and (max-width: 600px) {
74 | .tableview{
75 | padding-left: 10px;
76 | }
77 | }
78 | #printablediv input{
79 | align-content: unset;
80 | align-items: unset;
81 | align-self: unset;
82 | animation: unset;
83 | appearance: unset;
84 | backface-visibility: unset;
85 | background-blend-mode: unset;
86 | background: unset;
87 | binding: unset;
88 | block-size: unset;
89 | border-block-end: unset;
90 | border-block-start: unset;
91 | border-collapse: unset;
92 | border-inline-end: unset;
93 | border-inline-start: unset;
94 | border-radius: unset;
95 | border-spacing: unset;
96 | border: unset;
97 | bottom: unset;
98 | box-align: unset;
99 | box-decoration-break: unset;
100 | box-direction: unset;
101 | box-flex: unset;
102 | box-ordinal-group: unset;
103 | box-orient: unset;
104 | box-pack: unset;
105 | box-shadow: unset;
106 | box-sizing: unset;
107 | caption-side: unset;
108 | clear: unset;
109 | clip-path: unset;
110 | clip-rule: unset;
111 | clip: unset;
112 | color-adjust: unset;
113 | color-interpolation-filters: unset;
114 | color-interpolation: unset;
115 | color: unset;
116 | column-fill: unset;
117 | column-gap: unset;
118 | column-rule: unset;
119 | columns: unset;
120 | content: unset;
121 | control-character-visibility: unset;
122 | counter-increment: unset;
123 | counter-reset: unset;
124 | cursor: unset;
125 | display: unset;
126 | dominant-baseline: unset;
127 | empty-cells: unset;
128 | fill-opacity: unset;
129 | fill-rule: unset;
130 | fill: unset;
131 | filter: unset;
132 | flex-flow: unset;
133 | flex: unset;
134 | float-edge: unset;
135 | float: unset;
136 | flood-color: unset;
137 | flood-opacity: unset;
138 | font-family: unset;
139 | font-feature-settings: unset;
140 | font-kerning: unset;
141 | font-language-override: unset;
142 | font-size-adjust: unset;
143 | font-size: unset;
144 | font-stretch: unset;
145 | font-synthesis: unset;
146 | font-variant: unset;
147 | font-weight: unset;
148 | force-broken-image-icon: unset;
149 | height: unset;
150 | hyphens: unset;
151 | image-orientation: unset;
152 | image-region: unset;
153 | image-rendering: unset;
154 | ime-mode: unset;
155 | inline-size: unset;
156 | isolation: unset;
157 | justify-content: unset;
158 | justify-items: unset;
159 | justify-self: unset;
160 | left: unset;
161 | letter-spacing: unset;
162 | lighting-color: unset;
163 | line-height: unset;
164 | list-style: unset;
165 | margin-block-end: unset;
166 | margin-block-start: unset;
167 | margin-inline-end: unset;
168 | margin-inline-start: unset;
169 | margin: unset;
170 | marker-offset: unset;
171 | marker: unset;
172 | mask-type: unset;
173 | mask: unset;
174 | max-block-size: unset;
175 | max-height: unset;
176 | max-inline-size: unset;
177 | max-width: unset;
178 | min-block-size: unset;
179 | min-height: unset;
180 | min-inline-size: unset;
181 | min-width: unset;
182 | mix-blend-mode: unset;
183 | object-fit: unset;
184 | object-position: unset;
185 | offset-block-end: unset;
186 | offset-block-start: unset;
187 | offset-inline-end: unset;
188 | offset-inline-start: unset;
189 | opacity: unset;
190 | order: unset;
191 | orient: unset;
192 | outline-offset: unset;
193 | outline-radius: unset;
194 | outline: unset;
195 | overflow: unset;
196 | padding-block-end: unset;
197 | padding-block-start: unset;
198 | padding-inline-end: unset;
199 | padding-inline-start: unset;
200 | padding: unset;
201 | page-break-after: unset;
202 | page-break-before: unset;
203 | page-break-inside: unset;
204 | paint-order: unset;
205 | perspective-origin: unset;
206 | perspective: unset;
207 | pointer-events: unset;
208 | position: unset;
209 | quotes: unset;
210 | resize: unset;
211 | right: unset;
212 | ruby-align: unset;
213 | ruby-position: unset;
214 | scroll-behavior: unset;
215 | scroll-snap-coordinate: unset;
216 | scroll-snap-destination: unset;
217 | scroll-snap-points-x: unset;
218 | scroll-snap-points-y: unset;
219 | scroll-snap-type: unset;
220 | shape-rendering: unset;
221 | stack-sizing: unset;
222 | stop-color: unset;
223 | stop-opacity: unset;
224 | stroke-dasharray: unset;
225 | stroke-dashoffset: unset;
226 | stroke-linecap: unset;
227 | stroke-linejoin: unset;
228 | stroke-miterlimit: unset;
229 | stroke-opacity: unset;
230 | stroke-width: unset;
231 | stroke: unset;
232 | tab-size: unset;
233 | table-layout: unset;
234 | text-align-last: unset;
235 | text-align: unset;
236 | text-anchor: unset;
237 | text-combine-upright: unset;
238 | text-decoration: unset;
239 | text-emphasis-position: unset;
240 | text-emphasis: unset;
241 | text-indent: unset;
242 | text-orientation: unset;
243 | text-overflow: unset;
244 | text-rendering: unset;
245 | text-shadow: unset;
246 | text-size-adjust: unset;
247 | text-transform: unset;
248 | top: unset;
249 | transform-origin: unset;
250 | transform-style: unset;
251 | transform: unset;
252 | transition: unset;
253 | user-focus: unset;
254 | user-input: unset;
255 | user-modify: unset;
256 | user-select: unset;
257 | vector-effect: unset;
258 | vertical-align: unset;
259 | visibility: unset;
260 | white-space: unset;
261 | width: unset;
262 | will-change: unset;
263 | window-dragging: unset;
264 | word-break: unset;
265 | word-spacing: unset;
266 | word-wrap: unset;
267 | writing-mode: unset;
268 | z-index: unset;
269 | }
270 |
--------------------------------------------------------------------------------
/Template/admin/dashboard.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Paneaux d'administration
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
28 |
83 |
84 |
85 |
86 |
87 |
88 | Logout
89 |
90 |
91 |
92 |
93 |
110 |
111 |
112 |
113 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 | Personnel Post-Graduation
128 |
129 |
130 |
131 |
159 |
187 |
188 |
189 |
190 | Comité scientifique du département
191 |
192 |
193 |
194 |
222 |
250 |
251 |
252 |
253 |
254 |
255 |
271 |
272 |
273 |
274 |
275 |
276 |
277 |
--------------------------------------------------------------------------------
/Template/admin/demandesoutenace.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Paneaux d'administration
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
70 |
71 |
72 |
73 |
74 |
75 | Logout
76 |
77 |
78 |
79 |
80 |
97 |
98 |
99 |
100 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 | Name
117 | Item Name
118 | Item Price
119 | sss
120 | sss
121 | ghbj
122 | ghjnk
123 | Action
124 |
125 |
126 |
127 |
128 |
129 | Alvin
130 | Eclairsssss@sssss.cccc
131 | $0.870
132 |
133 | accepter
134 | refuser
135 |
136 |
137 |
138 | Alan
139 | Eclairsssss@sssss.cccc
140 | $3.760
141 |
142 | accepter
143 | refuser
144 |
145 |
146 |
147 | Jonathan
148 | Eclairsssss@sssss.cccc
149 | $7.000
150 |
151 | accepter
152 | refuser
153 |
154 |
155 |
156 | Jonathan
157 | Eclairsssss@sssss.cccc
158 | $7.000
159 |
160 | accepter
161 | refuser
162 |
163 |
164 |
165 | Jonathan
166 | Eclairsssss@sssss.cccc
167 | $7.000
168 |
169 | accepter
170 | refuser
171 |
172 |
173 |
174 | Jonathan
175 | Eclairsssss@sssss.cccc
176 | $7.000
177 |
178 | accepter
179 | refuser
180 |
181 |
182 |
183 | Jonathan
184 | Eclairsssss@sssss.cccc
185 | $7.000
186 |
187 | accepter
188 | refuser
189 |
190 |
191 |
192 | Jonathan
193 | Eclairsssss@sssss.cccc
194 | $7.000
195 |
196 | accepter
197 | refuser
198 |
199 |
200 |
201 | Jonathan
202 | Eclairsssss@sssss.cccc
203 | $7.000
204 |
205 | accepter
206 | refuser
207 |
208 |
209 |
210 | Jonathan
211 | Eclairsssss@sssss.cccc
212 | $7.000
213 |
214 | accepter
215 | refuser
216 |
217 |
218 |
219 | Jonathan
220 | Eclairsssss@sssss.cccc
221 | $7.000
222 |
223 | accepter
224 | refuser
225 |
226 |
227 |
228 | Jonathan
229 | Eclairsssss@sssss.cccc
230 | $7.000
231 |
232 | accepter
233 | refuser
234 |
235 |
236 |
237 |
238 |
239 |
240 |
241 |
242 |
243 |
259 |
260 |
261 |
262 |
263 |
264 |
--------------------------------------------------------------------------------
/Template/admin/emploit.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Paneaux d'administration
7 |
8 |
9 |
10 |
11 |
12 |
13 |
21 |
76 |
77 |
78 |
79 |
80 |
81 | Logout
82 |
83 |
84 |
85 |
86 |
103 |
104 |
105 |
106 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
Selectionner l'anner :
122 |
123 |
124 |
125 | 1ere anner
126 | 2eme anner
127 | 3em anner
128 | 4em anner
129 | 5em anner
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 | Generer emploit du temp
139 |
140 |
141 |
142 |
143 |
144 | Empoit du temp suggerer
145 |
146 |
147 |
148 |
149 | Horair
150 | Dimanche
151 | Lundi
152 | Mardi
153 | Mercredi
154 | Jeudi
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
Imprimer
165 |
166 |
167 |
168 |
169 |
170 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
--------------------------------------------------------------------------------
/Template/admin/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
Paneaux d'administration
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
28 |
29 |
30 |
31 |
37 |
38 |
39 |
40 |
41 |
56 |
57 |
58 |
59 |
60 |
61 |
77 |
78 |
79 |
80 |
81 |
--------------------------------------------------------------------------------
/Template/admin/inscriptions.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
Paneaux d'administration
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
76 |
77 |
78 |
79 |
80 |
81 | Logout
82 |
83 |
84 |
85 |
86 |
103 |
104 |
105 |
106 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 | Nom
123 | Prenom
124 | sexe
125 | date naissance
126 | lieu naissance
127 | email
128 | addresse
129 | Action
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
157 |
158 |
159 |
160 |
161 |
162 |
--------------------------------------------------------------------------------
/Template/admin/js/print.min.js:
--------------------------------------------------------------------------------
1 | !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("print-js",[],t):"object"==typeof exports?exports["print-js"]=t():e["print-js"]=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var n={};return t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="./",t(t.s=10)}([function(e,t,n){"use strict";function r(e,t){if(e.focus(),a.a.isEdge()||a.a.isIE())try{e.contentWindow.document.execCommand("print",!1,null)}catch(t){e.contentWindow.print()}else e.contentWindow.print();t.showModal&&d.a.close(),t.onLoadingEnd&&t.onLoadingEnd()}function i(e,t){var n=[];return t.printable.forEach(function(t,r){return n.push(o(e,r))}),Promise.all(n)}function o(e,t){return new Promise(function(n){var r=e?e.getElementById("printableImage"+t):null;r&&void 0!==r.naturalWidth&&0!==r.naturalWidth?n():setTimeout(function(){o(e,t)},500)})}var a=n(2),d=n(3),l={send:function(e,t){document.getElementsByTagName("body")[0].appendChild(t);var n=document.getElementById(e.frameId);"pdf"===e.type&&(a.a.isIE()||a.a.isEdge())?n.setAttribute("onload",r(n,e)):t.onload=function(){if("pdf"===e.type)r(n,e);else{var t=n.contentWindow||n.contentDocument;if(t.document&&(t=t.document),t.body.innerHTML=e.htmlData,"pdf"!==e.type&&null!==e.style){var o=document.createElement("style");o.innerHTML=e.style,t.head.appendChild(o)}"image"===e.type?i(t,e).then(function(){r(n,e)}):r(n,e)}}}};t.a=l},function(e,t,n){"use strict";function r(e,t){return'
'+e+"
"}function i(e){return e.charAt(0).toUpperCase()+e.slice(1)}function o(e,t){var n=document.defaultView||window,r=[],i="";if(n.getComputedStyle){r=n.getComputedStyle(e,"");var o=t.targetStyles||["border","box","break","text-decoration"],a=t.targetStyle||["clear","display","width","min-width","height","min-height","max-height"];t.honorMarginPadding&&o.push("margin","padding"),t.honorColor&&o.push("color");for(var d=0;d
0||-1!==navigator.userAgent.toLowerCase().indexOf("safari")}};t.a=r},function(e,t,n){"use strict";var r={show:function(e){var t=document.createElement("div");t.setAttribute("style","font-family:sans-serif; display:table; text-align:center; font-weight:300; font-size:30px; left:0; top:0;position:fixed; z-index: 9990;color: #0460B5; width: 100%; height: 100%; background-color:rgba(255,255,255,.9);transition: opacity .3s ease;"),t.setAttribute("id","printJS-Modal");var n=document.createElement("div");n.setAttribute("style","display:table-cell; vertical-align:middle; padding-bottom:100px;");var i=document.createElement("div");i.setAttribute("class","printClose"),i.setAttribute("id","printClose"),n.appendChild(i);var o=document.createElement("span");o.setAttribute("class","printSpinner"),n.appendChild(o);var a=document.createTextNode(e.modalMessage);n.appendChild(a),t.appendChild(n),document.getElementsByTagName("body")[0].appendChild(t),document.getElementById("printClose").addEventListener("click",function(){r.close()})},close:function(){var e=document.getElementById("printJS-Modal");e.parentNode.removeChild(e)}};t.a=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(7),i=r.a.init;"undefined"!=typeof window&&(window.printJS=i),t.default=i},function(e,t,n){"use strict";var r=n(1),i=n(0);t.a={print:function(e,t){var o=document.getElementById(e.printable);if(!o)return window.console.error("Invalid HTML element id: "+e.printable),!1;var a=document.createElement("div");a.appendChild(o.cloneNode(!0)),a.setAttribute("style","height:0; overflow:hidden;"),a.setAttribute("id","printJS-html"),o.parentNode.appendChild(a),a=document.getElementById("printJS-html"),!0===e.scanStyles&&a.setAttribute("style",n.i(r.c)(a,e)+"margin:0 !important;");var d=a.children;!0===e.scanStyles&&n.i(r.d)(d,e),e.header&&n.i(r.e)(a,e.header,e.headerStyle),a.parentNode.removeChild(a),e.htmlData=n.i(r.a)(a.innerHTML,e),i.a.send(e,t)}}},function(e,t,n){"use strict";function r(e,t){var n=[];return t.printable.forEach(function(r,o){var a=document.createElement("img");a.src=r,n.push(i(e,t,a,o))}),Promise.all(n)}function i(e,t,n,r){return new Promise(function(i){n.onload=function(){var o=document.createElement("div");o.setAttribute("style",t.imageStyle),n.setAttribute("style","width:100%;"),n.setAttribute("id","printableImage"+r),o.appendChild(n),e.appendChild(o),i()}})}var o=n(1),a=n(0);t.a={print:function(e,t){e.printable.constructor!==Array&&(e.printable=[e.printable]);var i=document.createElement("div");i.setAttribute("style","width:100%"),r(i,e).then(function(){e.header&&n.i(o.e)(i,e.header,e.headerStyle),e.htmlData=i.outerHTML,a.a.send(e,t)})}}},function(e,t,n){"use strict";var r=n(2),i=n(3),o=n(9),a=n(5),d=n(6),l=n(8),s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c=["pdf","html","image","json"];t.a={init:function(){var e={printable:null,fallbackPrintable:null,type:"pdf",header:null,headerStyle:"font-weight: 300;",maxWidth:800,font:"TimesNewRoman",font_size:"12pt",honorMarginPadding:!0,honorColor:!1,properties:null,gridHeaderStyle:"font-weight: bold; padding: 5px; border: 1px solid #dddddd;",gridStyle:"border: 1px solid lightgray; margin-bottom: -1px;",showModal:!1,onLoadingStart:null,onLoadingEnd:null,modalMessage:"Retrieving Document...",frameId:"printJS",htmlData:"",documentTitle:"Document",targetStyle:null,targetStyles:null,ignoreElements:[],imageStyle:"width:100%;",repeatTableHeader:!0,css:null,style:null,scanStyles:!0},t=arguments[0];if(void 0===t)throw new Error("printJS expects at least 1 attribute.");switch(void 0===t?"undefined":s(t)){case"string":e.printable=encodeURI(t),e.fallbackPrintable=e.printable,e.type=arguments[1]||e.type;break;case"object":e.printable=t.printable,e.fallbackPrintable=void 0!==t.fallbackPrintable?t.fallbackPrintable:e.printable,e.type=void 0!==t.type?t.type:e.type,e.frameId=void 0!==t.frameId?t.frameId:e.frameId,e.header=void 0!==t.header?t.header:e.header,e.headerStyle=void 0!==t.headerStyle?t.headerStyle:e.headerStyle,e.maxWidth=void 0!==t.maxWidth?t.maxWidth:e.maxWidth,e.font=void 0!==t.font?t.font:e.font,e.font_size=void 0!==t.font_size?t.font_size:e.font_size,e.honorMarginPadding=void 0!==t.honorMarginPadding?t.honorMarginPadding:e.honorMarginPadding,e.properties=void 0!==t.properties?t.properties:e.properties,e.gridHeaderStyle=void 0!==t.gridHeaderStyle?t.gridHeaderStyle:e.gridHeaderStyle,e.gridStyle=void 0!==t.gridStyle?t.gridStyle:e.gridStyle,e.showModal=void 0!==t.showModal?t.showModal:e.showModal,e.onLoadingStart=void 0!==t.onLoadingStart?t.onLoadingStart:e.onLoadingStart,e.onLoadingEnd=void 0!==t.onLoadingEnd?t.onLoadingEnd:e.onLoadingEnd,e.modalMessage=void 0!==t.modalMessage?t.modalMessage:e.modalMessage,e.documentTitle=void 0!==t.documentTitle?t.documentTitle:e.documentTitle,e.targetStyle=void 0!==t.targetStyle?t.targetStyle:e.targetStyle,e.targetStyles=void 0!==t.targetStyles?t.targetStyles:e.targetStyles,e.ignoreElements=void 0!==t.ignoreElements?t.ignoreElements:e.ignoreElements,e.imageStyle=void 0!==t.imageStyle?t.imageStyle:e.imageStyle,e.repeatTableHeader=void 0!==t.repeatTableHeader?t.repeatTableHeader:e.repeatTableHeader,e.css=void 0!==t.css?t.css:e.css,e.style=void 0!==t.style?t.style:e.style,e.scanStyles=void 0!==t.scanStyles?t.scanStyles:e.scanStyles;break;default:throw new Error('Unexpected argument type! Expected "string" or "object", got '+(void 0===t?"undefined":s(t)))}if(!e.printable)throw new Error("Missing printable information.");if(!e.type||"string"!=typeof e.type||-1===c.indexOf(e.type.toLowerCase()))throw new Error("Invalid print type. Available types are: pdf, html, image and json.");e.showModal&&i.a.show(e),e.onLoadingStart&&e.onLoadingStart();var n=document.getElementById(e.frameId);n&&n.parentNode.removeChild(n);var p=void 0;switch(p=document.createElement("iframe"),p.setAttribute("style","visibility: hidden; height: 0; width: 0; position: absolute;"),p.setAttribute("id",e.frameId),"pdf"!==e.type&&(p.srcdoc=""+e.documentTitle+" ",null!==e.css&&(Array.isArray(e.css)||(e.css=[e.css]),e.css.forEach(function(e){p.srcdoc+=' '})),p.srcdoc+=""),e.type){case"pdf":if(r.a.isFirefox()||r.a.isEdge()||r.a.isIE()){window.open(e.fallbackPrintable,"_blank").focus(),e.showModal&&i.a.close(),e.onLoadingEnd&&e.onLoadingEnd()}else o.a.print(e,p);break;case"image":d.a.print(e,p);break;case"html":a.a.print(e,p);break;case"json":l.a.print(e,p)}}}},function(e,t,n){"use strict";function r(e){var t=e.printable,r=e.properties,o='';e.repeatTableHeader&&(o+=""),o+="";for(var a=0;a'+n.i(i.b)(r[a])+"";o+=" ",e.repeatTableHeader&&(o+=" "),o+="";for(var d=0;d";for(var l=0;l1)for(var p=0;p'+s+""}o+=""}return o+="
"}var i=n(1),o=n(0),a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.a={print:function(e,t){if("object"!==a(e.printable))throw new Error("Invalid javascript data object (JSON).");if("boolean"!=typeof e.repeatTableHeader)throw new Error("Invalid value for repeatTableHeader attribute (JSON).");if(!e.properties||"object"!==a(e.properties))throw new Error("Invalid properties array for your JSON data.");var d="";e.header&&(d+=''+e.header+" "),d+=r(e),e.htmlData=n.i(i.a)(d,e),o.a.send(e,t)}}},function(e,t,n){"use strict";function r(e,t){t.setAttribute("src",e.printable),i.a.send(e,t)}var i=n(0);t.a={print:function(e,t){if(e.printable=-1!==e.printable.indexOf("http")?e.printable:window.location.origin+("/"!==e.printable.charAt(0)?"/"+e.printable:e.printable),e.showModal||e.onLoadingStart){var n=new window.XMLHttpRequest;n.responseType="arraybuffer",n.addEventListener("load",function(){var i=new window.Blob([n.response],{type:"application/pdf"});i=window.URL.createObjectURL(i),e.printable=i,r(e,t)}),n.open("GET",e.printable,!0),n.send()}else r(e,t)}}},function(e,t,n){e.exports=n(4)}])});
--------------------------------------------------------------------------------
/Template/admin/listeetudiant.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Paneaux d'administration
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
70 |
71 |
72 |
73 |
74 |
75 | Logout
76 |
77 |
78 |
79 |
80 |
97 |
98 |
99 |
100 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 | Nom
117 | Prenom
118 | Sexe
119 | Date de naissance
120 | Lieu de naissance
121 | Addresse
122 | Email
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
149 |
150 |
151 |
152 |
153 |
154 |
--------------------------------------------------------------------------------
/Template/admin/recours.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Paneaux d'administration
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
70 |
71 |
72 |
73 |
74 |
75 | Logout
76 |
77 |
78 |
79 |
80 |
97 |
98 |
99 |
100 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 | Nom
117 | Prenom
118 | Sujet
119 | Email
120 | Action
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
147 |
148 |
149 |
150 |
151 |
152 |
--------------------------------------------------------------------------------
/Template/admin/reinscription.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Paneaux d'administration
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
70 |
71 |
72 |
73 |
74 |
75 | Logout
76 |
77 |
78 |
79 |
80 |
97 |
98 |
99 |
100 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 | Nom
117 | Prenom
118 | Email
119 | intituler PostGrade
120 | intituler Sujet
121 | diplome Graduation
122 | nomEncadreur
123 | nom CoEncadreur
124 | dateRinscription
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
151 |
152 |
153 |
154 |
155 |
156 |
--------------------------------------------------------------------------------
/Template/admin/validergrade.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Paneaux d'administration
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
70 |
71 |
72 |
73 |
74 |
75 | Logout
76 |
77 |
78 |
79 |
80 |
97 |
98 |
99 |
100 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 | Nom
117 | Prenom
118 | Email
119 | Grade
120 | Objectif
121 | Argument
122 | Action
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
149 |
150 |
151 |
152 |
153 |
154 |
--------------------------------------------------------------------------------
/Template/admin/validersujet.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Paneaux d'administration
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
70 |
71 |
72 |
73 |
74 |
75 | Logout
76 |
77 |
78 |
79 |
80 |
97 |
98 |
99 |
100 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 | Titre
117 | Description
118 | Action
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
145 |
146 |
147 |
148 |
149 |
150 |
--------------------------------------------------------------------------------
/Template/css/flexslider.css:
--------------------------------------------------------------------------------
1 | /*
2 | * jQuery FlexSlider v2.0
3 | * http://www.woothemes.com/flexslider/
4 | *
5 | * Copyright 2012 WooThemes
6 | * Free to use under the GPLv2 license.
7 | * http://www.gnu.org/licenses/gpl-2.0.html
8 | *
9 | * Contributing author: Tyler Smith (@mbmufffin)
10 | */
11 |
12 |
13 | /* Browser Resets */
14 |
15 | .flex-container a:active,
16 | .flexslider a:active,
17 | .flex-container a:focus,
18 | .flexslider a:focus {
19 | outline: none;
20 | }
21 |
22 | .slides,
23 | .flex-control-nav,
24 | .flex-direction-nav {
25 | margin: 0;
26 | padding: 0;
27 | list-style: none;
28 | }
29 |
30 |
31 | /* FlexSlider Necessary Styles
32 | *********************************/
33 |
34 | .flexslider .slides>li {
35 | display: none;
36 | -webkit-backface-visibility: hidden;
37 | }
38 |
39 |
40 | /* Hide the slides before the JS is loaded. Avoids image jumping */
41 |
42 | .flexslider .slides img {
43 | display: block;
44 | }
45 |
46 | .flex-pauseplay span {
47 | text-transform: capitalize;
48 | }
49 |
50 |
51 | /* Clearfix for the .slides element */
52 |
53 | .slides:after {
54 | content: ".";
55 | display: block;
56 | clear: both;
57 | visibility: hidden;
58 | line-height: 0;
59 | height: 0;
60 | }
61 |
62 | html[xmlns] .slides {
63 | display: block;
64 | }
65 |
66 | * html .slides {
67 | height: 1%;
68 | }
69 |
70 |
71 | /* No JavaScript Fallback */
72 |
73 |
74 | /* If you are not using another script, such as Modernizr, make sure you
75 | * include js that eliminates this class on page load */
76 |
77 | .no-js .slides>li:first-child {
78 | display: block;
79 | }
80 |
81 |
82 | /* FlexSlider Default Theme
83 | *********************************/
84 |
85 | .flexslider {
86 | border: 0px;
87 | position: relative;
88 | zoom: 1;
89 | }
90 |
91 | .flex-viewport {
92 | max-height: 2000px;
93 | -webkit-transition: all 1s ease;
94 | -moz-transition: all 1s ease;
95 | transition: all 1s ease;
96 | }
97 |
98 | .loading .flex-viewport {
99 | max-height: 300px;
100 | }
101 |
102 | .flexslider .slides {
103 | zoom: 1;
104 | }
105 |
106 | .carousel li {
107 | margin-right: 5px
108 | }
109 |
110 |
111 | /* Direction Nav */
112 |
113 | .flex-direction-nav {
114 | *height: 0;
115 | }
116 |
117 | .flex-direction-nav a {
118 | width: 35px;
119 | height: 49px;
120 | margin: 0;
121 | display: block;
122 | background: #93c83f url(../images/right.png) no-repeat 4px 11px;
123 | position: absolute;
124 | top: 0;
125 | z-index: 10;
126 | cursor: pointer;
127 | text-indent: -9999px;
128 | opacity: 1;
129 | -webkit-transition: all .3s ease;
130 | }
131 |
132 | .flex-direction-nav .flex-next {
133 | background: #93c83f url(../images/left.png) no-repeat 7px 11px;
134 | right: 53%;
135 | }
136 |
137 | .flex-direction-nav .flex-prev {
138 | left: 47%;
139 | }
140 |
141 |
142 | /*
143 | .flexslider:hover .flex-next {opacity: 1;}
144 | .flexslider:hover .flex-prev {opacity: 1;}
145 | .flexslider:hover .flex-next:hover, .flexslider:hover .flex-prev:hover {opacity: 1;}
146 | .flex-direction-nav .flex-disabled {opacity: .3!important; filter:alpha(opacity=30); cursor: default;}*/
147 |
148 | .flex-next:hover,
149 | .flex-prev:hover {
150 | opacity: .8;
151 | }
152 |
153 |
154 | /* Control Nav */
155 |
156 | .flex-control-nav {
157 | display: block;
158 | position: absolute;
159 | left: 9px;
160 | margin-left: 0;
161 | bottom: 20%;
162 | }
163 |
164 | .flex-control-nav li {
165 | margin: 0 .5em;
166 | display: inline-block;
167 | zoom: 1;
168 | position: relative;
169 | }
170 |
171 | .flex-control-paging li a {
172 | width: 10px;
173 | height: 10px;
174 | display: block;
175 | background: none;
176 | cursor: pointer;
177 | text-indent: -9999px;
178 | border: none;
179 | color: #fff;
180 | background: #000;
181 | text-align: center;
182 | border-radius: 15px;
183 | font-weight: 600;
184 | display: none;
185 | }
186 |
187 | .flex-control-paging li a.flex-active {
188 | background: #3be8b0;
189 | cursor: default;
190 | transform: rotateX(360deg);
191 | -webkit-transform: rotateX(360deg);
192 | -moz-transform: rotateX(360deg);
193 | -o-transform: rotateX(360deg);
194 | -ms-transform: rotateX(360deg);
195 | transition: transform 2s;
196 | }
197 |
198 | .flex-control-thumbs {
199 | margin: 5px 0 0;
200 | position: static;
201 | overflow: hidden;
202 | }
203 |
204 | .flex-control-thumbs li {
205 | width: 25%;
206 | float: left;
207 | margin: 0;
208 | }
209 |
210 | .flex-control-thumbs img {
211 | width: 100%;
212 | display: block;
213 | opacity: .7;
214 | cursor: pointer;
215 | }
216 |
217 | .flex-control-thumbs img:hover {
218 | opacity: 1;
219 | }
220 |
221 | .flex-control-thumbs .flex-active {
222 | opacity: 1;
223 | cursor: default;
224 | }
225 |
226 | @media screen and (max-width:1080px) {
227 | .flex-direction-nav .flex-prev {
228 | left: 46.2%;
229 | }
230 | .flex-direction-nav .flex-next {
231 | right: 53.8%;
232 | }
233 | .flex-direction-nav a {
234 | bottom: 88%;
235 | }
236 | .flex-control-nav {
237 | left: -7px;
238 | bottom: 14%;
239 | }
240 | }
241 |
242 | @media screen and (max-width: 991px) {
243 | .flex-direction-nav .flex-prev {
244 | left: 10.2%;
245 | }
246 | .flex-direction-nav .flex-next {
247 | right: 89.8%;
248 | }
249 | .flex-direction-nav a {
250 | bottom: 93%;
251 | }
252 | .flex-control-nav {
253 | left: 92px;
254 | bottom: -1%;
255 | }
256 | }
257 |
258 | @media screen and (max-width: 667px) {}
259 |
260 | @media screen and (max-width: 640px) {}
261 |
262 | @media screen and (max-width: 600px) {}
263 |
264 | @media screen and (max-width: 480px) {}
265 |
266 | @media screen and (max-width: 414px) {
267 | .flex-direction-nav .flex-next {
268 | right: 97.5%;
269 | }
270 | }
271 |
272 | @media screen and (max-width: 375px) {
273 | .flex-direction-nav .flex-next {
274 | right: 96.5%;
275 | }
276 | }
277 |
278 | @media screen and (max-width: 320px) {
279 | section.slider {
280 | padding-top: 0%;
281 | }
282 | .flex-direction-nav .flex-prev {
283 | left: -8.8%;
284 | }
285 | .flex-direction-nav .flex-next {
286 | right: 86.5%;
287 | }
288 | .flex-control-nav {
289 | left: -8.8%;
290 | }
291 | .flex-control-nav li:first-child:before {
292 | left: -135%;
293 | }
294 | }
--------------------------------------------------------------------------------
/Template/css/swipebox.css:
--------------------------------------------------------------------------------
1 | /*! Swipebox v1.2.8 | Constantin Saguin csag.co | MIT License | github.com/brutaldesign/swipebox */
2 |
3 | html.swipebox-html.swipebox-touch {
4 | overflow: hidden !important;
5 | }
6 |
7 | #swipebox-overlay img {
8 | border: none !important;
9 | }
10 |
11 | #swipebox-overlay {
12 | width: 100%;
13 | height: 100%;
14 | position: fixed;
15 | top: 0;
16 | left: 0;
17 | z-index: 99999 !important;
18 | overflow: hidden;
19 | -webkit-user-select: none;
20 | -moz-user-select: none;
21 | -ms-user-select: none;
22 | user-select: none;
23 | }
24 |
25 | #swipebox-container {
26 | position: relative;
27 | width: 100%;
28 | height: 100%;
29 | }
30 |
31 | #swipebox-slider {
32 | -webkit-transition: -webkit-transform 0.4s ease;
33 | transition: transform 0.4s ease;
34 | height: 100%;
35 | left: 0;
36 | top: 0;
37 | width: 100%;
38 | white-space: nowrap;
39 | position: absolute;
40 | display: none;
41 | cursor: pointer;
42 | }
43 |
44 | #swipebox-slider .slide {
45 | height: 100%;
46 | width: 100%;
47 | line-height: 1px;
48 | text-align: center;
49 | display: inline-block;
50 | }
51 |
52 | #swipebox-slider .slide:before {
53 | content: "";
54 | display: inline-block;
55 | height: 43%;
56 | width: 1px;
57 | margin-right: -1px;
58 | }
59 |
60 | #swipebox-slider .slide img,
61 | #swipebox-slider .slide .swipebox-video-container {
62 | display: inline-block;
63 | max-height: 100%;
64 | max-width: 100%;
65 | margin: 0;
66 | padding: 0;
67 | width: auto;
68 | height: auto;
69 | vertical-align: middle;
70 | }
71 |
72 | #swipebox-slider .slide .swipebox-video-container {
73 | background: none;
74 | max-width: 1140px;
75 | max-height: 100%;
76 | width: 100%;
77 | padding: 5%;
78 | -webkit-box-sizing: border-box;
79 | box-sizing: border-box;
80 | -moz-box-sizing: border-box;
81 | }
82 |
83 | #swipebox-slider .slide .swipebox-video-container .swipebox-video {
84 | width: 100%;
85 | height: 0;
86 | padding-bottom: 56.25%;
87 | overflow: hidden;
88 | position: relative;
89 | }
90 |
91 | #swipebox-slider .slide .swipebox-video-container .swipebox-video iframe {
92 | width: 100% !important;
93 | height: 100% !important;
94 | position: absolute;
95 | top: 0;
96 | left: 0;
97 | }
98 |
99 | #swipebox-slider .slide-loading {
100 | background: url(../images/loader.gif) no-repeat center center;
101 | }
102 |
103 | #swipebox-bottom-bar,
104 | #swipebox-top-bar {
105 | -webkit-transition: 0.5s all;
106 | transition: 0.5s all;
107 | -moz-transition: 0.5s all;
108 | position: absolute;
109 | left: 0;
110 | z-index: 999;
111 | height: 50px;
112 | width: 100%;
113 | }
114 |
115 | #swipebox-bottom-bar {
116 | bottom: -50px;
117 | }
118 |
119 | #swipebox-bottom-bar.visible-bars {
120 | -webkit-transform: translate3d(0, -50px, 0);
121 | transform: translate3d(0, -50px, 0);
122 | -moz-transform: translate3d(0, -50px, 0);
123 | -o-transform: translate3d(0, -50px, 0);
124 | -ms-transform: translate3d(0, -50px, 0);
125 | }
126 |
127 | #swipebox-top-bar {
128 | bottom: 14%;
129 | }
130 |
131 | #swipebox-title {
132 | display: block;
133 | width: 45%;
134 | text-align: center;
135 | margin: 0 auto !important;
136 | }
137 |
138 | #swipebox-prev,
139 | #swipebox-next,
140 | #swipebox-close {
141 | background-image: url(../images/icons.png);
142 | background-repeat: no-repeat;
143 | border: none !important;
144 | text-decoration: none !important;
145 | cursor: pointer;
146 | width: 50px;
147 | height: 50px;
148 | top: 0;
149 | }
150 |
151 | #swipebox-arrows {
152 | display: block;
153 | margin: 0 auto;
154 | width: 100%;
155 | height: 50px;
156 | }
157 |
158 | #swipebox-prev {
159 | background-position: -32px 13px;
160 | float: left;
161 | }
162 |
163 | #swipebox-next {
164 | background-position: -78px 13px;
165 | float: right;
166 | }
167 |
168 | #swipebox-close {
169 | right: 50px;
170 | top: 12px;
171 | position: absolute;
172 | z-index: 9999;
173 | background-position: 15px 12px;
174 | }
175 |
176 | .swipebox-no-close-button #swipebox-close {
177 | display: none;
178 | }
179 |
180 | #swipebox-prev.disabled,
181 | #swipebox-next.disabled {
182 | opacity: 0.3;
183 | }
184 |
185 | .swipebox-no-touch #swipebox-overlay.rightSpring #swipebox-slider {
186 | -webkit-animation: rightSpring 0.3s;
187 | animation: rightSpring 0.3s;
188 | -moz-animation: rightSpring 0.3s;
189 | }
190 |
191 | .swipebox-no-touch #swipebox-overlay.leftSpring #swipebox-slider {
192 | -webkit-animation: leftSpring 0.3s;
193 | animation: leftSpring 0.3s;
194 | -moz-animation: leftSpring 0.3s;
195 | }
196 |
197 | .swipebox-touch #swipebox-container:before,
198 | .swipebox-touch #swipebox-container:after {
199 | -webkit-backface-visibility: hidden;
200 | backface-visibility: hidden;
201 | -webkit-transition: all .3s ease;
202 | transition: all .3s ease;
203 | -moz-transition: all .3s ease;
204 | content: ' ';
205 | position: absolute;
206 | z-index: 999;
207 | top: 0;
208 | height: 100%;
209 | width: 20px;
210 | opacity: 0;
211 | }
212 |
213 | .swipebox-touch #swipebox-container:before {
214 | left: 0;
215 | -webkit-box-shadow: inset 10px 0px 10px -8px #656565;
216 | box-shadow: inset 10px 0px 10px -8px #656565;
217 | -moz-box-shadow: inset 10px 0px 10px -8px #656565;
218 | }
219 |
220 | .swipebox-touch #swipebox-container:after {
221 | right: 0;
222 | -webkit-box-shadow: inset -10px 0px 10px -8px #656565;
223 | box-shadow: inset -10px 0px 10px -8px #656565;
224 | -moz-box-shadow: inset -10px 0px 10px -8px #656565;
225 | }
226 |
227 | .swipebox-touch #swipebox-overlay.leftSpringTouch #swipebox-container:before {
228 | opacity: 1;
229 | }
230 |
231 | .swipebox-touch #swipebox-overlay.rightSpringTouch #swipebox-container:after {
232 | opacity: 1;
233 | }
234 |
235 | @-webkit-keyframes rightSpring {
236 | 0% {
237 | left: 0;
238 | }
239 | 50% {
240 | left: -30px;
241 | }
242 | 100% {
243 | left: 0;
244 | }
245 | }
246 |
247 | @keyframes rightSpring {
248 | 0% {
249 | left: 0;
250 | }
251 | 50% {
252 | left: -30px;
253 | }
254 | 100% {
255 | left: 0;
256 | }
257 | }
258 |
259 | @-webkit-keyframes leftSpring {
260 | 0% {
261 | left: 0;
262 | }
263 | 50% {
264 | left: 30px;
265 | }
266 | 100% {
267 | left: 0;
268 | }
269 | }
270 |
271 | @keyframes leftSpring {
272 | 0% {
273 | left: 0;
274 | }
275 | 50% {
276 | left: 30px;
277 | }
278 | 100% {
279 | left: 0;
280 | }
281 | }
282 |
283 | @media screen and (min-width: 800px) {
284 | #swipebox-close {
285 | right: 50px;
286 | top: 12px;
287 | }
288 | #swipebox-arrows {
289 | width: 80%;
290 | max-width: 800px;
291 | }
292 | }
293 |
294 |
295 | /* Skin
296 | --------------------------*/
297 |
298 | #swipebox-overlay {
299 | background: #0d0d0d;
300 | }
301 |
302 | #swipebox-bottom-bar,
303 | #swipebox-top-bar {
304 | opacity: 1;
305 | }
306 |
307 | #swipebox-top-bar {
308 | color: white !important;
309 | font-size: 15px;
310 | line-height: 30px;
311 | }
312 |
313 | @media(max-width:1366px) {
314 | #swipebox-top-bar {
315 | bottom: 20%;
316 | }
317 | }
318 |
319 | @media(max-width:1080px) {
320 | #swipebox-title {
321 | width: 61%;
322 | line-height: 1.8em;
323 | margin: 1em auto 0 !important;
324 | }
325 | }
326 |
327 | @media(max-width:991px) {
328 | #swipebox-top-bar {
329 | bottom: 11%;
330 | }
331 | }
332 |
333 | @media(max-width:768px) {
334 | #swipebox-title {
335 | width: 75%;
336 | }
337 | #swipebox-arrows {
338 | width: 83%;
339 | }
340 | }
341 |
342 | @media(max-width:667px) {
343 | #swipebox-slider .slide img,
344 | #swipebox-slider .slide .swipebox-video-container {
345 | max-width: 80%;
346 | }
347 | #swipebox-title {
348 | width: 82%;
349 | font-size: 14px;
350 | font-weight: 300;
351 | }
352 | }
353 |
354 | @media(max-width:640px) {
355 | #swipebox-title {
356 | width: 82%;
357 | font-size: .9em;
358 | }
359 | #swipebox-arrows {
360 | width: 80%;
361 | }
362 | }
363 |
364 | @media(max-width:480px) {
365 | #swipebox-title {
366 | width: 85%;
367 | }
368 | #swipebox-close {
369 | right: 30px;
370 | }
371 | #swipebox-slider .slide img,
372 | #swipebox-slider .slide .swipebox-video-container {
373 | max-width: 100%;
374 | }
375 | #swipebox-container {
376 | width: 97%;
377 | }
378 | }
379 |
380 | @media(max-width:414px) {
381 | #swipebox-container {
382 | width: 96%;
383 | }
384 | }
385 |
386 | @media(max-width:384px) {
387 | #swipebox-top-bar {
388 | bottom: 23%;
389 | }
390 | }
--------------------------------------------------------------------------------
/Template/enseignant/login.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | login Post-Graduation
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
124 |
148 |
190 | © 2018 All Rights Reserved | Design by Amine Smahi & Ousssama Bonnor
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
--------------------------------------------------------------------------------
/Template/enseignant/passagegrade.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | login Post-Graduation
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
93 |
112 |
119 |
161 | © 2018 All Rights Reserved | Design by Amine Smahi & Ousssama Bonnor
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
--------------------------------------------------------------------------------
/Template/images/arr.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/Template/images/arr.png
--------------------------------------------------------------------------------
/Template/images/bann1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/Template/images/bann1.jpg
--------------------------------------------------------------------------------
/Template/images/bann2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/Template/images/bann2.jpg
--------------------------------------------------------------------------------
/Template/images/bann3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/Template/images/bann3.jpg
--------------------------------------------------------------------------------
/Template/images/bann4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/Template/images/bann4.jpg
--------------------------------------------------------------------------------
/Template/images/g1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/Template/images/g1.jpg
--------------------------------------------------------------------------------
/Template/images/g2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/Template/images/g2.jpg
--------------------------------------------------------------------------------
/Template/images/g6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/Template/images/g6.jpg
--------------------------------------------------------------------------------
/Template/images/g7.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/Template/images/g7.jpg
--------------------------------------------------------------------------------
/Template/images/icons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/Template/images/icons.png
--------------------------------------------------------------------------------
/Template/images/left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/Template/images/left.png
--------------------------------------------------------------------------------
/Template/images/left11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/Template/images/left11.png
--------------------------------------------------------------------------------
/Template/images/loader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/Template/images/loader.gif
--------------------------------------------------------------------------------
/Template/images/logo (copy).jpg~:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/Template/images/logo (copy).jpg~
--------------------------------------------------------------------------------
/Template/images/logo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/Template/images/logo.jpg
--------------------------------------------------------------------------------
/Template/images/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/Template/images/logo.png
--------------------------------------------------------------------------------
/Template/images/right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/Template/images/right.png
--------------------------------------------------------------------------------
/Template/images/right11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Amine-Smahi/PostGraduation/1f201439346d10000270b977551005f980ab5c11/Template/images/right11.png
--------------------------------------------------------------------------------
/Template/inscription.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Inscription Post-Graduation
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
122 |
129 |
133 |
175 | © 2018 All Rights Reserved | Design by Amine Smahi & Ousssama Bonnor
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
--------------------------------------------------------------------------------
/Template/js/easing.js:
--------------------------------------------------------------------------------
1 | /*
2 | * jQuery EasIng v1.1.2 - http://gsgd.co.uk/sandbox/jquery.easIng.php
3 | *
4 | * Uses the built In easIng capabilities added In jQuery 1.1
5 | * to offer multiple easIng options
6 | *
7 | * Copyright (c) 2007 George Smith
8 | * Licensed under the MIT License:
9 | * http://www.opensource.org/licenses/mit-license.php
10 | */
11 |
12 | // t: current time, b: begInnIng value, c: change In value, d: duration
13 |
14 | jQuery.extend( jQuery.easing,
15 | {
16 | easeInQuad: function (x, t, b, c, d) {
17 | return c*(t/=d)*t + b;
18 | },
19 | easeOutQuad: function (x, t, b, c, d) {
20 | return -c *(t/=d)*(t-2) + b;
21 | },
22 | easeInOutQuad: function (x, t, b, c, d) {
23 | if ((t/=d/2) < 1) return c/2*t*t + b;
24 | return -c/2 * ((--t)*(t-2) - 1) + b;
25 | },
26 | easeInCubic: function (x, t, b, c, d) {
27 | return c*(t/=d)*t*t + b;
28 | },
29 | easeOutCubic: function (x, t, b, c, d) {
30 | return c*((t=t/d-1)*t*t + 1) + b;
31 | },
32 | easeInOutCubic: function (x, t, b, c, d) {
33 | if ((t/=d/2) < 1) return c/2*t*t*t + b;
34 | return c/2*((t-=2)*t*t + 2) + b;
35 | },
36 | easeInQuart: function (x, t, b, c, d) {
37 | return c*(t/=d)*t*t*t + b;
38 | },
39 | easeOutQuart: function (x, t, b, c, d) {
40 | return -c * ((t=t/d-1)*t*t*t - 1) + b;
41 | },
42 | easeInOutQuart: function (x, t, b, c, d) {
43 | if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
44 | return -c/2 * ((t-=2)*t*t*t - 2) + b;
45 | },
46 | easeInQuint: function (x, t, b, c, d) {
47 | return c*(t/=d)*t*t*t*t + b;
48 | },
49 | easeOutQuint: function (x, t, b, c, d) {
50 | return c*((t=t/d-1)*t*t*t*t + 1) + b;
51 | },
52 | easeInOutQuint: function (x, t, b, c, d) {
53 | if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
54 | return c/2*((t-=2)*t*t*t*t + 2) + b;
55 | },
56 | easeInSine: function (x, t, b, c, d) {
57 | return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
58 | },
59 | easeOutSine: function (x, t, b, c, d) {
60 | return c * Math.sin(t/d * (Math.PI/2)) + b;
61 | },
62 | easeInOutSine: function (x, t, b, c, d) {
63 | return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
64 | },
65 | easeInExpo: function (x, t, b, c, d) {
66 | return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
67 | },
68 | easeOutExpo: function (x, t, b, c, d) {
69 | return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
70 | },
71 | easeInOutExpo: function (x, t, b, c, d) {
72 | if (t==0) return b;
73 | if (t==d) return b+c;
74 | if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
75 | return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
76 | },
77 | easeInCirc: function (x, t, b, c, d) {
78 | return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
79 | },
80 | easeOutCirc: function (x, t, b, c, d) {
81 | return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
82 | },
83 | easeInOutCirc: function (x, t, b, c, d) {
84 | if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
85 | return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
86 | },
87 | easeInElastic: function (x, t, b, c, d) {
88 | var s=1.70158;var p=0;var a=c;
89 | if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
90 | if (a < Math.abs(c)) { a=c; var s=p/4; }
91 | else var s = p/(2*Math.PI) * Math.asin (c/a);
92 | return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
93 | },
94 | easeOutElastic: function (x, t, b, c, d) {
95 | var s=1.70158;var p=0;var a=c;
96 | if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
97 | if (a < Math.abs(c)) { a=c; var s=p/4; }
98 | else var s = p/(2*Math.PI) * Math.asin (c/a);
99 | return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
100 | },
101 | easeInOutElastic: function (x, t, b, c, d) {
102 | var s=1.70158;var p=0;var a=c;
103 | if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5);
104 | if (a < Math.abs(c)) { a=c; var s=p/4; }
105 | else var s = p/(2*Math.PI) * Math.asin (c/a);
106 | if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
107 | return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
108 | },
109 | easeInBack: function (x, t, b, c, d, s) {
110 | if (s == undefined) s = 1.70158;
111 | return c*(t/=d)*t*((s+1)*t - s) + b;
112 | },
113 | easeOutBack: function (x, t, b, c, d, s) {
114 | if (s == undefined) s = 1.70158;
115 | return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
116 | },
117 | easeInOutBack: function (x, t, b, c, d, s) {
118 | if (s == undefined) s = 1.70158;
119 | if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
120 | return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
121 | },
122 | easeInBounce: function (x, t, b, c, d) {
123 | return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;
124 | },
125 | easeOutBounce: function (x, t, b, c, d) {
126 | if ((t/=d) < (1/2.75)) {
127 | return c*(7.5625*t*t) + b;
128 | } else if (t < (2/2.75)) {
129 | return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
130 | } else if (t < (2.5/2.75)) {
131 | return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
132 | } else {
133 | return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
134 | }
135 | },
136 | easeInOutBounce: function (x, t, b, c, d) {
137 | if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;
138 | return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;
139 | }
140 | });
141 |
--------------------------------------------------------------------------------
/Template/js/jquery.swipebox.min.js:
--------------------------------------------------------------------------------
1 | /*! Swipebox v1.3.0 | Constantin Saguin csag.co | MIT License | github.com/brutaldesign/swipebox */
2 | !function(a,b,c,d){c.swipebox=function(e,f){var g,h,i={useCSS:!0,useSVG:!0,initialIndexOnArray:0,hideCloseButtonOnMobile:!1,hideBarsDelay:3e3,videoMaxWidth:1140,vimeoColor:"cccccc",beforeOpen:null,afterOpen:null,afterClose:null,loopAtEnd:!1},j=this,k=[],l=e.selector,m=c(l),n=navigator.userAgent.match(/(iPad)|(iPhone)|(iPod)|(Android)|(PlayBook)|(BB10)|(BlackBerry)|(Opera Mini)|(IEMobile)|(webOS)|(MeeGo)/i),o=null!==n||b.createTouch!==d||"ontouchstart"in a||"onmsgesturechange"in a||navigator.msMaxTouchPoints,p=!!b.createElementNS&&!!b.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect,q=a.innerWidth?a.innerWidth:c(a).width(),r=a.innerHeight?a.innerHeight:c(a).height(),s=0,t='';j.settings={},c.swipebox.close=function(){g.closeSlide()},c.swipebox.extend=function(){return g},j.init=function(){j.settings=c.extend({},i,f),c.isArray(e)?(k=e,g.target=c(a),g.init(j.settings.initialIndexOnArray)):c(b).on("click",l,function(a){if("slide current"===a.target.parentNode.className)return!1;c.isArray(e)||(g.destroy(),h=c(l),g.actions()),k=[];var b,d,f;f||(d="data-rel",f=c(this).attr(d)),f||(d="rel",f=c(this).attr(d)),h=f&&""!==f&&"nofollow"!==f?m.filter("["+d+'="'+f+'"]'):c(l),h.each(function(){var a=null,b=null;c(this).attr("title")&&(a=c(this).attr("title")),c(this).attr("href")&&(b=c(this).attr("href")),k.push({href:b,title:a})}),b=h.index(c(this)),a.preventDefault(),a.stopPropagation(),g.target=c(a.target),g.init(b)})},g={init:function(a){j.settings.beforeOpen&&j.settings.beforeOpen(),this.target.trigger("swipebox-start"),c.swipebox.isOpen=!0,this.build(),this.openSlide(a),this.openMedia(a),this.preloadMedia(a+1),this.preloadMedia(a-1),j.settings.afterOpen&&j.settings.afterOpen()},build:function(){var a,b=this;c("body").append(t),p&&j.settings.useSVG===!0&&(a=c("#swipebox-close").css("background-image"),a=a.replace("png","svg"),c("#swipebox-prev, #swipebox-next, #swipebox-close").css({"background-image":a})),n&&c("#swipebox-bottom-bar, #swipebox-top-bar").remove(),c.each(k,function(){c("#swipebox-slider").append('
')}),b.setDim(),b.actions(),o&&b.gesture(),b.keyboard(),b.animBars(),b.resize()},setDim:function(){var b,d,e={};"onorientationchange"in a?a.addEventListener("orientationchange",function(){0===a.orientation?(b=q,d=r):(90===a.orientation||-90===a.orientation)&&(b=r,d=q)},!1):(b=a.innerWidth?a.innerWidth:c(a).width(),d=a.innerHeight?a.innerHeight:c(a).height()),e={width:b,height:d},c("#swipebox-overlay").css(e)},resize:function(){var b=this;c(a).resize(function(){b.setDim()}).resize()},supportTransition:function(){var a,c="transition WebkitTransition MozTransition OTransition msTransition KhtmlTransition".split(" ");for(a=0;a=m||i)){var p=.75-Math.abs(d)/r.height();r.css({top:d+"px"}),r.css({opacity:p}),i=!0}e=b,b=o.pageX-n.pageX,g=100*b/q,!j&&!i&&Math.abs(b)>=l&&(c("#swipebox-slider").css({"-webkit-transition":"",transition:""}),j=!0),j&&(b>0?0===a?c("#swipebox-overlay").addClass("leftSpringTouch"):(c("#swipebox-overlay").removeClass("leftSpringTouch").removeClass("rightSpringTouch"),c("#swipebox-slider").css({"-webkit-transform":"translate3d("+(s+g)+"%, 0, 0)",transform:"translate3d("+(s+g)+"%, 0, 0)"})):0>b&&(k.length===a+1?c("#swipebox-overlay").addClass("rightSpringTouch"):(c("#swipebox-overlay").removeClass("leftSpringTouch").removeClass("rightSpringTouch"),c("#swipebox-slider").css({"-webkit-transform":"translate3d("+(s+g)+"%, 0, 0)",transform:"translate3d("+(s+g)+"%, 0, 0)"}))))}),!1}).bind("touchend",function(a){if(a.preventDefault(),a.stopPropagation(),c("#swipebox-slider").css({"-webkit-transition":"-webkit-transform 0.4s ease",transition:"transform 0.4s ease"}),d=o.pageY-n.pageY,b=o.pageX-n.pageX,g=100*b/q,i)if(i=!1,Math.abs(d)>=2*m&&Math.abs(d)>Math.abs(f)){var k=d>0?r.height():-r.height();r.animate({top:k+"px",opacity:0},300,function(){h.closeSlide()})}else r.animate({top:0,opacity:1},300);else j?(j=!1,b>=l&&b>=e?h.getPrev():-l>=b&&e>=b&&h.getNext()):p.hasClass("visible-bars")?(h.clearTimeout(),h.hideBars()):(h.showBars(),h.setTimeout());c("#swipebox-slider").css({"-webkit-transform":"translate3d("+s+"%, 0, 0)",transform:"translate3d("+s+"%, 0, 0)"}),c("#swipebox-overlay").removeClass("leftSpringTouch").removeClass("rightSpringTouch"),c(".touching").off("touchmove").removeClass("touching")})},setTimeout:function(){if(j.settings.hideBarsDelay>0){var b=this;b.clearTimeout(),b.timeout=a.setTimeout(function(){b.hideBars()},j.settings.hideBarsDelay)}},clearTimeout:function(){a.clearTimeout(this.timeout),this.timeout=null},showBars:function(){var a=c("#swipebox-top-bar, #swipebox-bottom-bar");this.doCssTrans()?a.addClass("visible-bars"):(c("#swipebox-top-bar").animate({top:0},500),c("#swipebox-bottom-bar").animate({bottom:0},500),setTimeout(function(){a.addClass("visible-bars")},1e3))},hideBars:function(){var a=c("#swipebox-top-bar, #swipebox-bottom-bar");this.doCssTrans()?a.removeClass("visible-bars"):(c("#swipebox-top-bar").animate({top:"-50px"},500),c("#swipebox-bottom-bar").animate({bottom:"-50px"},500),setTimeout(function(){a.removeClass("visible-bars")},1e3))},animBars:function(){var a=this,b=c("#swipebox-top-bar, #swipebox-bottom-bar");b.addClass("visible-bars"),a.setTimeout(),c("#swipebox-slider").click(function(){b.hasClass("visible-bars")||(a.showBars(),a.setTimeout())}),c("#swipebox-bottom-bar").hover(function(){a.showBars(),b.addClass("visible-bars"),a.clearTimeout()},function(){j.settings.hideBarsDelay>0&&(b.removeClass("visible-bars"),a.setTimeout())})},keyboard:function(){var b=this;c(a).bind("keyup",function(a){a.preventDefault(),a.stopPropagation(),37===a.keyCode?b.getPrev():39===a.keyCode?b.getNext():27===a.keyCode&&b.closeSlide()})},actions:function(){var a=this,b="touchend click";k.length<2?(c("#swipebox-bottom-bar").hide(),d===k[1]&&c("#swipebox-top-bar").hide()):(c("#swipebox-prev").bind(b,function(b){b.preventDefault(),b.stopPropagation(),a.getPrev(),a.setTimeout()}),c("#swipebox-next").bind(b,function(b){b.preventDefault(),b.stopPropagation(),a.getNext(),a.setTimeout()})),c("#swipebox-close").bind(b,function(){a.closeSlide()})},setSlide:function(a,b){b=b||!1;var d=c("#swipebox-slider");s=100*-a,this.doCssTrans()?d.css({"-webkit-transform":"translate3d("+100*-a+"%, 0, 0)",transform:"translate3d("+100*-a+"%, 0, 0)"}):d.animate({left:100*-a+"%"}),c("#swipebox-slider .slide").removeClass("current"),c("#swipebox-slider .slide").eq(a).addClass("current"),this.setTitle(a),b&&d.fadeIn(),c("#swipebox-prev, #swipebox-next").removeClass("disabled"),0===a?c("#swipebox-prev").addClass("disabled"):a===k.length-1&&j.settings.loopAtEnd!==!0&&c("#swipebox-next").addClass("disabled")},openSlide:function(b){c("html").addClass("swipebox-html"),o?(c("html").addClass("swipebox-touch"),j.settings.hideCloseButtonOnMobile&&c("html").addClass("swipebox-no-close-button")):c("html").addClass("swipebox-no-touch"),c(a).trigger("resize"),this.setSlide(b,!0)},preloadMedia:function(a){var b=this,c=null;k[a]!==d&&(c=k[a].href),b.isVideo(c)?b.openMedia(a):setTimeout(function(){b.openMedia(a)},1e3)},openMedia:function(a){var b,e,f=this;return k[a]!==d&&(b=k[a].href),0>a||a>=k.length?!1:(e=c("#swipebox-slider .slide").eq(a),void(f.isVideo(b)?e.html(f.getVideo(b)):(e.addClass("slide-loading"),f.loadMedia(b,function(){e.removeClass("slide-loading"),e.html(this)}))))},setTitle:function(a){var b=null;c("#swipebox-title").empty(),k[a]!==d&&(b=k[a].title),b?(c("#swipebox-top-bar").show(),c("#swipebox-title").append(b)):c("#swipebox-top-bar").hide()},isVideo:function(a){if(a){if(a.match(/youtube\.com\/watch\?v=([a-zA-Z0-9\-_]+)/)||a.match(/vimeo\.com\/([0-9]*)/)||a.match(/youtu\.be\/([a-zA-Z0-9\-_]+)/))return!0;if(a.toLowerCase().indexOf("swipeboxvideo=1")>=0)return!0}},getVideo:function(a){var b="",c=a.match(/watch\?v=([a-zA-Z0-9\-_]+)/),d=a.match(/youtu\.be\/([a-zA-Z0-9\-_]+)/),e=a.match(/vimeo\.com\/([0-9]*)/);return c||d?(d&&(c=d),b=''):e&&(b=''),d||d||e||(b=''),'"},loadMedia:function(a,b){if(!this.isVideo(a)){var d=c(" ").on("load",function(){b.call(d)});d.attr("src",a)}},getNext:function(){var a,b=this,d=c("#swipebox-slider .slide").index(c("#swipebox-slider .slide.current"));d+10?(a=c("#swipebox-slider .slide").eq(b).contents().find("iframe").attr("src"),c("#swipebox-slider .slide").eq(b).contents().find("iframe").attr("src",a),b--,this.setSlide(b),this.preloadMedia(b-1)):(c("#swipebox-overlay").addClass("leftSpring"),setTimeout(function(){c("#swipebox-overlay").removeClass("leftSpring")},500))},closeSlide:function(){c("html").removeClass("swipebox-html"),c("html").removeClass("swipebox-touch"),c(a).trigger("resize"),this.destroy()},destroy:function(){c(a).unbind("keyup"),c("body").unbind("touchstart"),c("body").unbind("touchmove"),c("body").unbind("touchend"),c("#swipebox-slider").unbind(),c("#swipebox-overlay").remove(),c.isArray(e)||e.removeData("_swipebox"),this.target&&this.target.trigger("swipebox-destroy"),c.swipebox.isOpen=!1,j.settings.afterClose&&j.settings.afterClose()}},j.init()},c.fn.swipebox=function(a){if(!c.data(this,"_swipebox")){var b=new c.swipebox(this,a);this.data("_swipebox",b)}return this.data("_swipebox")}}(window,document,jQuery);
--------------------------------------------------------------------------------
/Template/js/jquery.waypoints.min.js:
--------------------------------------------------------------------------------
1 | /*!
2 | Waypoints - 4.0.0
3 | Copyright © 2011-2015 Caleb Troughton
4 | Licensed under the MIT license.
5 | https://github.com/imakewebthings/waypoints/blob/master/licenses.txt
6 | */
7 | !function(){"use strict";function t(o){if(!o)throw new Error("No options passed to Waypoint constructor");if(!o.element)throw new Error("No element option passed to Waypoint constructor");if(!o.handler)throw new Error("No handler option passed to Waypoint constructor");this.key="waypoint-"+e,this.options=t.Adapter.extend({},t.defaults,o),this.element=this.options.element,this.adapter=new t.Adapter(this.element),this.callback=o.handler,this.axis=this.options.horizontal?"horizontal":"vertical",this.enabled=this.options.enabled,this.triggerPoint=null,this.group=t.Group.findOrCreate({name:this.options.group,axis:this.axis}),this.context=t.Context.findOrCreateByElement(this.options.context),t.offsetAliases[this.options.offset]&&(this.options.offset=t.offsetAliases[this.options.offset]),this.group.add(this),this.context.add(this),i[this.key]=this,e+=1}var e=0,i={};t.prototype.queueTrigger=function(t){this.group.queueTrigger(this,t)},t.prototype.trigger=function(t){this.enabled&&this.callback&&this.callback.apply(this,t)},t.prototype.destroy=function(){this.context.remove(this),this.group.remove(this),delete i[this.key]},t.prototype.disable=function(){return this.enabled=!1,this},t.prototype.enable=function(){return this.context.refresh(),this.enabled=!0,this},t.prototype.next=function(){return this.group.next(this)},t.prototype.previous=function(){return this.group.previous(this)},t.invokeAll=function(t){var e=[];for(var o in i)e.push(i[o]);for(var n=0,r=e.length;r>n;n++)e[n][t]()},t.destroyAll=function(){t.invokeAll("destroy")},t.disableAll=function(){t.invokeAll("disable")},t.enableAll=function(){t.invokeAll("enable")},t.refreshAll=function(){t.Context.refreshAll()},t.viewportHeight=function(){return window.innerHeight||document.documentElement.clientHeight},t.viewportWidth=function(){return document.documentElement.clientWidth},t.adapters=[],t.defaults={context:window,continuous:!0,enabled:!0,group:"default",horizontal:!1,offset:0},t.offsetAliases={"bottom-in-view":function(){return this.context.innerHeight()-this.adapter.outerHeight()},"right-in-view":function(){return this.context.innerWidth()-this.adapter.outerWidth()}},window.Waypoint=t}(),function(){"use strict";function t(t){window.setTimeout(t,1e3/60)}function e(t){this.element=t,this.Adapter=n.Adapter,this.adapter=new this.Adapter(t),this.key="waypoint-context-"+i,this.didScroll=!1,this.didResize=!1,this.oldScroll={x:this.adapter.scrollLeft(),y:this.adapter.scrollTop()},this.waypoints={vertical:{},horizontal:{}},t.waypointContextKey=this.key,o[t.waypointContextKey]=this,i+=1,this.createThrottledScrollHandler(),this.createThrottledResizeHandler()}var i=0,o={},n=window.Waypoint,r=window.onload;e.prototype.add=function(t){var e=t.options.horizontal?"horizontal":"vertical";this.waypoints[e][t.key]=t,this.refresh()},e.prototype.checkEmpty=function(){var t=this.Adapter.isEmptyObject(this.waypoints.horizontal),e=this.Adapter.isEmptyObject(this.waypoints.vertical);t&&e&&(this.adapter.off(".waypoints"),delete o[this.key])},e.prototype.createThrottledResizeHandler=function(){function t(){e.handleResize(),e.didResize=!1}var e=this;this.adapter.on("resize.waypoints",function(){e.didResize||(e.didResize=!0,n.requestAnimationFrame(t))})},e.prototype.createThrottledScrollHandler=function(){function t(){e.handleScroll(),e.didScroll=!1}var e=this;this.adapter.on("scroll.waypoints",function(){(!e.didScroll||n.isTouch)&&(e.didScroll=!0,n.requestAnimationFrame(t))})},e.prototype.handleResize=function(){n.Context.refreshAll()},e.prototype.handleScroll=function(){var t={},e={horizontal:{newScroll:this.adapter.scrollLeft(),oldScroll:this.oldScroll.x,forward:"right",backward:"left"},vertical:{newScroll:this.adapter.scrollTop(),oldScroll:this.oldScroll.y,forward:"down",backward:"up"}};for(var i in e){var o=e[i],n=o.newScroll>o.oldScroll,r=n?o.forward:o.backward;for(var s in this.waypoints[i]){var a=this.waypoints[i][s],l=o.oldScroll=a.triggerPoint,p=l&&h,u=!l&&!h;(p||u)&&(a.queueTrigger(r),t[a.group.id]=a.group)}}for(var c in t)t[c].flushTriggers();this.oldScroll={x:e.horizontal.newScroll,y:e.vertical.newScroll}},e.prototype.innerHeight=function(){return this.element==this.element.window?n.viewportHeight():this.adapter.innerHeight()},e.prototype.remove=function(t){delete this.waypoints[t.axis][t.key],this.checkEmpty()},e.prototype.innerWidth=function(){return this.element==this.element.window?n.viewportWidth():this.adapter.innerWidth()},e.prototype.destroy=function(){var t=[];for(var e in this.waypoints)for(var i in this.waypoints[e])t.push(this.waypoints[e][i]);for(var o=0,n=t.length;n>o;o++)t[o].destroy()},e.prototype.refresh=function(){var t,e=this.element==this.element.window,i=e?void 0:this.adapter.offset(),o={};this.handleScroll(),t={horizontal:{contextOffset:e?0:i.left,contextScroll:e?0:this.oldScroll.x,contextDimension:this.innerWidth(),oldScroll:this.oldScroll.x,forward:"right",backward:"left",offsetProp:"left"},vertical:{contextOffset:e?0:i.top,contextScroll:e?0:this.oldScroll.y,contextDimension:this.innerHeight(),oldScroll:this.oldScroll.y,forward:"down",backward:"up",offsetProp:"top"}};for(var r in t){var s=t[r];for(var a in this.waypoints[r]){var l,h,p,u,c,d=this.waypoints[r][a],f=d.options.offset,w=d.triggerPoint,y=0,g=null==w;d.element!==d.element.window&&(y=d.adapter.offset()[s.offsetProp]),"function"==typeof f?f=f.apply(d):"string"==typeof f&&(f=parseFloat(f),d.options.offset.indexOf("%")>-1&&(f=Math.ceil(s.contextDimension*f/100))),l=s.contextScroll-s.contextOffset,d.triggerPoint=y+l-f,h=w=s.oldScroll,u=h&&p,c=!h&&!p,!g&&u?(d.queueTrigger(s.backward),o[d.group.id]=d.group):!g&&c?(d.queueTrigger(s.forward),o[d.group.id]=d.group):g&&s.oldScroll>=d.triggerPoint&&(d.queueTrigger(s.forward),o[d.group.id]=d.group)}}return n.requestAnimationFrame(function(){for(var t in o)o[t].flushTriggers()}),this},e.findOrCreateByElement=function(t){return e.findByElement(t)||new e(t)},e.refreshAll=function(){for(var t in o)o[t].refresh()},e.findByElement=function(t){return o[t.waypointContextKey]},window.onload=function(){r&&r(),e.refreshAll()},n.requestAnimationFrame=function(e){var i=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||t;i.call(window,e)},n.Context=e}(),function(){"use strict";function t(t,e){return t.triggerPoint-e.triggerPoint}function e(t,e){return e.triggerPoint-t.triggerPoint}function i(t){this.name=t.name,this.axis=t.axis,this.id=this.name+"-"+this.axis,this.waypoints=[],this.clearTriggerQueues(),o[this.axis][this.name]=this}var o={vertical:{},horizontal:{}},n=window.Waypoint;i.prototype.add=function(t){this.waypoints.push(t)},i.prototype.clearTriggerQueues=function(){this.triggerQueues={up:[],down:[],left:[],right:[]}},i.prototype.flushTriggers=function(){for(var i in this.triggerQueues){var o=this.triggerQueues[i],n="up"===i||"left"===i;o.sort(n?e:t);for(var r=0,s=o.length;s>r;r+=1){var a=o[r];(a.options.continuous||r===o.length-1)&&a.trigger([i])}}this.clearTriggerQueues()},i.prototype.next=function(e){this.waypoints.sort(t);var i=n.Adapter.inArray(e,this.waypoints),o=i===this.waypoints.length-1;return o?null:this.waypoints[i+1]},i.prototype.previous=function(e){this.waypoints.sort(t);var i=n.Adapter.inArray(e,this.waypoints);return i?this.waypoints[i-1]:null},i.prototype.queueTrigger=function(t,e){this.triggerQueues[e].push(t)},i.prototype.remove=function(t){var e=n.Adapter.inArray(t,this.waypoints);e>-1&&this.waypoints.splice(e,1)},i.prototype.first=function(){return this.waypoints[0]},i.prototype.last=function(){return this.waypoints[this.waypoints.length-1]},i.findOrCreate=function(t){return o[t.axis][t.name]||new i(t)},n.Group=i}(),function(){"use strict";function t(t){this.$element=e(t)}var e=window.jQuery,i=window.Waypoint;e.each(["innerHeight","innerWidth","off","offset","on","outerHeight","outerWidth","scrollLeft","scrollTop"],function(e,i){t.prototype[i]=function(){var t=Array.prototype.slice.call(arguments);return this.$element[i].apply(this.$element,t)}}),e.each(["extend","inArray","isEmptyObject"],function(i,o){t[o]=e[o]}),i.adapters.push({name:"jquery",Adapter:t}),i.Adapter=t}(),function(){"use strict";function t(t){return function(){var i=[],o=arguments[0];return t.isFunction(arguments[0])&&(o=t.extend({},arguments[1]),o.handler=arguments[0]),this.each(function(){var n=t.extend({},o,{element:this});"string"==typeof n.context&&(n.context=t(this).closest(n.context)[0]),i.push(new e(n))}),i}}var e=window.Waypoint;window.jQuery&&(window.jQuery.fn.waypoint=t(window.jQuery)),window.Zepto&&(window.Zepto.fn.waypoint=t(window.Zepto))}();
--------------------------------------------------------------------------------
/Template/js/main.js:
--------------------------------------------------------------------------------
1 | $('#ok').click(function(){
2 | $('#popup').fadeOut();
3 | });
4 |
5 |
6 | jQuery(document).ready(function($){
7 | var MqL = 1170;
8 | //move nav element position according to window width
9 | moveNavigation();
10 | $(window).on('resize', function(){
11 | (!window.requestAnimationFrame) ? setTimeout(moveNavigation, 300) : window.requestAnimationFrame(moveNavigation);
12 | });
13 |
14 | //mobile - open lateral menu clicking on the menu icon
15 | $('.cd-nav-trigger').on('click', function(event){
16 | event.preventDefault();
17 | if( $('.cd-main-content').hasClass('nav-is-visible') ) {
18 | closeNav();
19 | $('.cd-overlay').removeClass('is-visible');
20 | } else {
21 | $(this).addClass('nav-is-visible');
22 | $('.cd-main-header').addClass('nav-is-visible');
23 | $('.cd-main-content').addClass('nav-is-visible').one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function(){
24 | $('body').addClass('overflow-hidden');
25 | });
26 | toggleSearch('close');
27 | $('.cd-overlay').addClass('is-visible');
28 | }
29 | });
30 |
31 | //submenu items - go back link
32 | $('.go-back').on('click', function(){
33 | $(this).parent('ul').addClass('is-hidden').parent('.has-children').parent('ul').removeClass('moves-out');
34 | });
35 |
36 | function closeNav() {
37 | $('.cd-nav-trigger').removeClass('nav-is-visible');
38 | $('.cd-main-header').removeClass('nav-is-visible');
39 | $('.cd-primary-nav').removeClass('nav-is-visible');
40 | $('.has-children ul').addClass('is-hidden');
41 | $('.has-children a').removeClass('selected');
42 | $('.moves-out').removeClass('moves-out');
43 | $('.cd-main-content').removeClass('nav-is-visible').one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function(){
44 | $('body').removeClass('overflow-hidden');
45 | });
46 | }
47 |
48 | function checkWindowWidth() {
49 | //check window width (scrollbar included)
50 | var e = window,
51 | a = 'inner';
52 | if (!('innerWidth' in window )) {
53 | a = 'client';
54 | e = document.documentElement || document.body;
55 | }
56 | if ( e[ a+'Width' ] >= MqL ) {
57 | return true;
58 | } else {
59 | return false;
60 | }
61 | }
62 |
63 | function moveNavigation(){
64 | var navigation = $('.cd-nav');
65 | var desktop = checkWindowWidth();
66 | if ( desktop ) {
67 | navigation.detach();
68 | navigation.insertBefore('.cd-header-buttons');
69 | } else {
70 | navigation.detach();
71 | navigation.insertAfter('.cd-main-content');
72 | }
73 | }
74 | });
--------------------------------------------------------------------------------
/Template/js/responsiveslides.min.js:
--------------------------------------------------------------------------------
1 | /*! http://responsiveslides.com v1.54 by @viljamis */
2 | (function(c,I,B){c.fn.responsiveSlides=function(l){var a=c.extend({auto:!0,speed:500,timeout:4E3,pager:!1,nav:!1,random:!1,pause:!1,pauseControls:!0,prevText:"Previous",nextText:"Next",maxwidth:"",navContainer:"",manualControls:"",namespace:"rslides",before:c.noop,after:c.noop},l);return this.each(function(){B++;var f=c(this),s,r,t,m,p,q,n=0,e=f.children(),C=e.size(),h=parseFloat(a.speed),D=parseFloat(a.timeout),u=parseFloat(a.maxwidth),g=a.namespace,d=g+B,E=g+"_nav "+d+"_nav",v=g+"_here",j=d+"_on",
3 | w=d+"_s",k=c(""),x={"float":"left",position:"relative",opacity:1,zIndex:2},y={"float":"none",position:"absolute",opacity:0,zIndex:1},F=function(){var b=(document.body||document.documentElement).style,a="transition";if("string"===typeof b[a])return!0;s=["Moz","Webkit","Khtml","O","ms"];var a=a.charAt(0).toUpperCase()+a.substr(1),c;for(c=0;c"+a+" "});k.append(A);l.navContainer?c(a.navContainer).append(k):f.after(k)}a.manualControls&&(k=c(a.manualControls),k.addClass(g+"_tabs "+d+"_tabs"));(a.pager||a.manualControls)&&k.find("li").each(function(a){c(this).addClass(w+(a+1))});if(a.pager||a.manualControls)q=
6 | k.find("a"),r=function(a){q.closest("li").removeClass(v).eq(a).addClass(v)};a.auto&&(t=function(){p=setInterval(function(){e.stop(!0,!0);var b=n+1"+a.prevText+""+a.nextText+" ";l.navContainer?c(a.navContainer).append(g):f.after(g);var d=c("."+d+"_nav"),G=d.filter(".prev");d.bind("click",function(b){b.preventDefault();b=c("."+j);if(!b.queue("fx").length){var d=e.index(b);b=d-1;d=d+1u&&f.css("width",u)};H();c(I).bind("resize",function(){H()})}})}})(jQuery,this,0);
9 |
--------------------------------------------------------------------------------
/Template/login.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | login Post-Graduation
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
124 |
153 |
195 | © 2018 All Rights Reserved | Design by Amine Smahi & Ousssama Bonnor
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 |
205 |
--------------------------------------------------------------------------------
/Template/recours.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | login Post-Graduation
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
99 |
118 |
160 | © 2018 All Rights Reserved | Design by Amine Smahi & Ousssama Bonnor
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
--------------------------------------------------------------------------------
/Template/reinscription.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | login Post-Graduation
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
99 |
142 |
184 | © 2018 All Rights Reserved | Design by Amine Smahi & Ousssama Bonnor
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
--------------------------------------------------------------------------------
/manage.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | import os
3 | import sys
4 |
5 | if __name__ == "__main__":
6 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "PostGraduation.settings")
7 | try:
8 | from django.core.management import execute_from_command_line
9 | except ImportError as exc:
10 | raise ImportError(
11 | "Couldn't import Django. Are you sure it's installed and "
12 | "available on your PYTHONPATH environment variable? Did you "
13 | "forget to activate a virtual environment?"
14 | ) from exc
15 | execute_from_command_line(sys.argv)
16 |
--------------------------------------------------------------------------------