Stage -> Expérience

This commit is contained in:
Evarin 2017-05-02 03:11:34 +02:00
parent 88de2fe0c0
commit 17dedf6078
11 changed files with 125 additions and 84 deletions

View file

@ -23,11 +23,11 @@ class AvisStageForm(HTMLTrimmerForm):
model = AvisStage
fields = ['chapo', 'avis_ambiance', 'avis_sujet', 'avis_admin', 'les_plus', 'les_moins']
help_texts = {
"chapo": u"Une accroche résumant ce que vous avez pensé de ce stage",
"avis_ambiance": u"Avez-vous passé un bon moment à ce stage ? Étiez-vous assez guidé⋅e ? Aviez-vous un bon contact avec vos encadrant⋅e⋅s ? Y avait-il une bonne ambiance dans l'équipe ?",
"avis_sujet": u"Avez-vous appris des choses de votre stage ? Le travail correspondait-il à vos attentes ? Était-ce à votre niveau, trop dur, trop facile ?",
"avis_admin": u"Avez-vous commencé votre stage à la date prévue ? Était-ce compliqué d'obtenir les documents nécessaires (visa, contrats, etc) ? L'administration de l'établissement vous a-t-elle aidé⋅e ?",
"les_plus": u"Les principaux points positifs de ce stage",
"chapo": u"Une accroche résumant ce que vous avez pensé de ce séjour",
"avis_ambiance": u"Avez-vous passé un bon moment à ce travail ? Étiez-vous assez guidé⋅e ? Aviez-vous un bon contact avec vos encadrant⋅e⋅s ? Y avait-il une bonne ambiance dans l'équipe ?",
"avis_sujet": u"Avez-vous appris des choses de votre expérience ? Le travail correspondait-il à vos attentes ? Était-ce à votre niveau, trop dur, trop facile ?",
"avis_admin": u"Avez-vous commencé votre travail à la date prévue ? Était-ce compliqué d'obtenir les documents nécessaires (visa, contrats, etc) ? L'administration de l'établissement vous a-t-elle aidé⋅e ?",
"les_plus": u"Les principaux points positifs de cette expérience",
"les_moins": u"Ce qui aurait pu être mieux",
}
@ -37,7 +37,7 @@ class AvisLieuForm(HTMLTrimmerForm):
fields = ['lieu', 'chapo', 'avis_lieustage', 'avis_pratique', 'avis_tourisme', 'les_plus', 'les_moins']
help_texts = {
"chapo": u"Une accroche résumant ce que vous avez pensé de cet endroit",
"avis_lieustage": u"Qu'avez-vous pensé des lieux où avait lieu votre stage ? Les bâtiments étaient-ils modernes ? Était-il agréable d'y travailler ?",
"avis_lieustage": u"Qu'avez-vous pensé des lieux où vous travailliez ? Les bâtiments étaient-ils modernes ? Était-il agréable d'y travailler ?",
"avis_pratique": u"Avez-vous eu du mal à trouver un logement ? Y-a-t-il des choses que vous avez apprises sur place qu'il vous aurait été utile de savoir avant de partir ?",
"avis_tourisme": u"Y-a-t-il des lieux à visiter dans cette zone ? Avez-vous pratiqué des activités sportives ? Est-il facile de faire des rencontres ?",
"les_plus": u"Les meilleures raisons de partir à cet endroit",

View file

@ -184,11 +184,11 @@ class AvisStage(models.Model):
chapo = models.TextField(u"En quelques mots", blank=True)
avis_ambiance = RichTextField(u"L'ambiance de travail", blank=True)
avis_sujet = RichTextField(u"Le sujet de stage", blank=True)
avis_sujet = RichTextField(u"La mission", blank=True)
avis_admin = RichTextField(u"Formalités et administration", blank=True)
les_plus = models.TextField(u"Les plus du stage", blank=True)
les_moins = models.TextField(u"Les moins du stage", blank=True)
les_plus = models.TextField(u"Les plus de cette expérience", blank=True)
les_moins = models.TextField(u"Les moins de cette expérience", blank=True)
def __unicode__(self):
return u"Avis sur {%s} par %s" % (self.stage.sujet, self.stage.auteur.user.username)

View file

@ -380,7 +380,7 @@ article.stage {
// Formulaires
input, textarea, select, div.tinymce {
input, textarea, select, div.tinymce, option, optgroup:before {
background: #fff;
font-size: 1em;
font-family: $textfont;
@ -395,6 +395,20 @@ input, textarea, select, div.tinymce {
}
}
select option {
padding: 3px;
white-space: pre-wrap;
}
select optgroup {
option {
padding-left: 10px;
}
&:before {
font-weight:bold;
}
}
input[type='text'], input[type='password'],
input[type='email'], textarea, select {
border:none;

View file

@ -460,7 +460,7 @@ article.stage section .plusmoins .moins:before {
}
/* line 383, ../../sass/screen.scss */
input, textarea, select, div.tinymce {
input, textarea, select, div.tinymce, option, optgroup:before {
background: #fff;
font-size: 1em;
font-family: "Dosis", sans-serif;
@ -470,12 +470,27 @@ input, textarea, select, div.tinymce {
text-align: left;
}
/* line 392, ../../sass/screen.scss */
input:focus, input.mce-edit-focus, textarea:focus, textarea.mce-edit-focus, select:focus, select.mce-edit-focus, div.tinymce:focus, div.tinymce.mce-edit-focus {
input:focus, input.mce-edit-focus, textarea:focus, textarea.mce-edit-focus, select:focus, select.mce-edit-focus, div.tinymce:focus, div.tinymce.mce-edit-focus, option:focus, option.mce-edit-focus, optgroup:before:focus, optgroup:before.mce-edit-focus {
background-color: #e9f5d6;
outline: none;
}
/* line 398, ../../sass/screen.scss */
select option {
padding: 3px;
white-space: pre-wrap;
}
/* line 404, ../../sass/screen.scss */
select optgroup option {
padding-left: 10px;
}
/* line 407, ../../sass/screen.scss */
select optgroup:before {
font-weight: bold;
}
/* line 412, ../../sass/screen.scss */
input[type='text'], input[type='password'],
input[type='email'], textarea, select {
border: none;
@ -485,7 +500,7 @@ input[type='email'], textarea, select {
transition: border 1s ease-out, background 1s ease-out;
}
/* line 407, ../../sass/screen.scss */
/* line 421, ../../sass/screen.scss */
input[type="submit"],
.btn {
font: 19px "Dosis", sans-serif;
@ -499,14 +514,14 @@ input[type="submit"],
margin-right: 0;
}
/* line 420, ../../sass/screen.scss */
/* line 434, ../../sass/screen.scss */
p input[type="submit"],
p .btn,
h1 .btn {
display: inline-block;
}
/* line 426, ../../sass/screen.scss */
/* line 440, ../../sass/screen.scss */
.edit-btn {
border-color: #706c00;
color: #000;
@ -515,14 +530,14 @@ h1 .btn {
background-origin: content-box;
background-size: contain;
}
/* line 434, ../../sass/screen.scss */
/* line 448, ../../sass/screen.scss */
.edit-btn:after {
content: "";
width: 30px;
display: inline-block;
}
/* line 441, ../../sass/screen.scss */
/* line 455, ../../sass/screen.scss */
select {
-moz-appearance: none;
appearance: none;
@ -531,7 +546,7 @@ select {
cursor: pointer;
}
/* line 449, ../../sass/screen.scss */
/* line 463, ../../sass/screen.scss */
textarea, div.tinymce {
border: none;
border-left: 1px solid #8fcc33;
@ -540,20 +555,20 @@ textarea, div.tinymce {
transition: border 1s ease-out, background 1s ease-out;
}
/* line 457, ../../sass/screen.scss */
/* line 471, ../../sass/screen.scss */
textarea {
height: 200px;
resize: vertical;
}
/* line 463, ../../sass/screen.scss */
/* line 477, ../../sass/screen.scss */
form .field {
margin: 5px 0;
display: flex;
background: #fff;
padding: 10px;
}
/* line 469, ../../sass/screen.scss */
/* line 483, ../../sass/screen.scss */
form .field label, form .field .label {
display: inline-block;
width: 250px;
@ -562,33 +577,33 @@ form .field label, form .field .label {
padding-top: 5px;
flex-shrink: 0;
}
/* line 477, ../../sass/screen.scss */
/* line 491, ../../sass/screen.scss */
form .field label {
font-family: Podkova, serif;
font-weight: bold;
}
/* line 481, ../../sass/screen.scss */
/* line 495, ../../sass/screen.scss */
form .field .help_text {
font-style: italic;
font-size: 0.9em;
}
/* line 485, ../../sass/screen.scss */
/* line 499, ../../sass/screen.scss */
form .field .input {
display: inline-block;
flex-grow: 1;
margin-right: 10px;
}
/* line 494, ../../sass/screen.scss */
/* line 508, ../../sass/screen.scss */
ul.as-selections {
display: flex;
flex-wrap: wrap;
}
/* line 498, ../../sass/screen.scss */
/* line 512, ../../sass/screen.scss */
ul.as-selections li {
display: inline-block;
}
/* line 502, ../../sass/screen.scss */
/* line 516, ../../sass/screen.scss */
ul.as-selections .as-selection-item {
padding: 0 5px;
background: #f99b20;
@ -597,52 +612,52 @@ ul.as-selections .as-selection-item {
border-radius: 2px;
font-weight: 500;
}
/* line 510, ../../sass/screen.scss */
/* line 524, ../../sass/screen.scss */
ul.as-selections .as-selection-item a.as-close {
color: #fff;
-webkit-cursor: pointer;
cursor: pointer;
margin-right: 5px;
}
/* line 517, ../../sass/screen.scss */
/* line 531, ../../sass/screen.scss */
ul.as-selections .as-selection-item.selected {
background: #8fcc33;
}
/* line 522, ../../sass/screen.scss */
/* line 536, ../../sass/screen.scss */
ul.as-selections .as-original {
flex-grow: 1;
min-width: 200px;
}
/* line 526, ../../sass/screen.scss */
/* line 540, ../../sass/screen.scss */
ul.as-selections .as-original input {
width: 100%;
}
/* line 532, ../../sass/screen.scss */
/* line 546, ../../sass/screen.scss */
div.as-results {
position: relative;
}
/* line 534, ../../sass/screen.scss */
/* line 548, ../../sass/screen.scss */
div.as-results ul {
position: absolute;
width: 100%;
background: #fff;
border: 1px solid #d2ebad;
}
/* line 541, ../../sass/screen.scss */
/* line 555, ../../sass/screen.scss */
div.as-results ul li {
padding: 3px 5px;
}
/* line 547, ../../sass/screen.scss */
/* line 561, ../../sass/screen.scss */
div.as-results ul li.as-result-item.active {
background: #fddeb5;
}
/* line 552, ../../sass/screen.scss */
/* line 566, ../../sass/screen.scss */
div.as-results ul li.as-message {
font-style: italic;
}
/* line 560, ../../sass/screen.scss */
/* line 574, ../../sass/screen.scss */
.window {
display: none;
position: fixed;
@ -653,11 +668,11 @@ div.as-results ul li.as-message {
left: 0;
z-index: 50;
}
/* line 570, ../../sass/screen.scss */
/* line 584, ../../sass/screen.scss */
.window.visible {
display: block;
}
/* line 574, ../../sass/screen.scss */
/* line 588, ../../sass/screen.scss */
.window .window-bg {
background: #000;
opacity: 0.7;
@ -668,7 +683,7 @@ div.as-results ul li.as-message {
top: 0;
z-index: -1;
}
/* line 585, ../../sass/screen.scss */
/* line 599, ../../sass/screen.scss */
.window .window-content {
position: relative;
margin: 0 auto;
@ -682,11 +697,11 @@ div.as-results ul li.as-message {
max-height: 100%;
overflow: auto;
}
/* line 599, ../../sass/screen.scss */
/* line 613, ../../sass/screen.scss */
.window .window-content form label, .window .window-content form .label {
width: 150px;
}
/* line 605, ../../sass/screen.scss */
/* line 619, ../../sass/screen.scss */
.window .window-closer {
position: absolute;
top: 0;
@ -694,36 +709,36 @@ div.as-results ul li.as-message {
padding: 12px;
z-index: 3;
}
/* line 611, ../../sass/screen.scss */
/* line 625, ../../sass/screen.scss */
.window .window-closer:after {
content: "×";
}
/* line 617, ../../sass/screen.scss */
/* line 631, ../../sass/screen.scss */
#map_addlieu {
height: 500px;
}
/* line 622, ../../sass/screen.scss */
/* line 636, ../../sass/screen.scss */
.lieu-ui .map {
height: 400px;
width: 100%;
}
/* line 626, ../../sass/screen.scss */
/* line 640, ../../sass/screen.scss */
.lieu-ui .hidden {
display: none;
}
/* line 629, ../../sass/screen.scss */
/* line 643, ../../sass/screen.scss */
.lieu-ui .masked {
visibility: hidden;
}
/* line 634, ../../sass/screen.scss */
/* line 648, ../../sass/screen.scss */
#avis_lieu_vide {
display: none;
}
/* line 638, ../../sass/screen.scss */
/* line 652, ../../sass/screen.scss */
a.lieu-change {
color: #fff;
background: #f99b20;
@ -736,20 +751,20 @@ a.lieu-change {
border-radius: 5px;
margin-right: 7px;
}
/* line 650, ../../sass/screen.scss */
/* line 664, ../../sass/screen.scss */
a.lieu-change.ajout:before {
content: "+";
margin-right: 5px;
}
/* line 656, ../../sass/screen.scss */
/* line 670, ../../sass/screen.scss */
#stages-map {
width: 100%;
height: 600px;
max-height: 90vh;
}
/* line 662, ../../sass/screen.scss */
/* line 676, ../../sass/screen.scss */
#feedback-button {
position: fixed;
left: 0;
@ -762,13 +777,13 @@ a.lieu-change.ajout:before {
transform-origin: bottom left;
}
/* line 675, ../../sass/screen.scss */
/* line 689, ../../sass/screen.scss */
.betacadre {
background: #fa6cae;
padding: 10px;
}
/* line 680, ../../sass/screen.scss */
/* line 694, ../../sass/screen.scss */
.entrer {
background: #fff;
max-width: 500px;
@ -777,71 +792,71 @@ a.lieu-change.ajout:before {
margin: 15px auto;
}
/* line 688, ../../sass/screen.scss */
/* line 702, ../../sass/screen.scss */
article.promo {
display: block;
font-size: 1.1em;
}
/* line 692, ../../sass/screen.scss */
/* line 706, ../../sass/screen.scss */
article.promo .explications {
display: table;
}
/* line 695, ../../sass/screen.scss */
/* line 709, ../../sass/screen.scss */
article.promo .explications:first-child {
direction: rtl;
}
/* line 697, ../../sass/screen.scss */
/* line 711, ../../sass/screen.scss */
article.promo .explications:first-child > * {
direction: ltr;
}
/* line 702, ../../sass/screen.scss */
/* line 716, ../../sass/screen.scss */
article.promo .explications > div {
display: table-cell;
vertical-align: middle;
text-align: center;
}
/* line 707, ../../sass/screen.scss */
/* line 721, ../../sass/screen.scss */
article.promo .explications > div p {
margin: 15px 15px;
}
/* line 714, ../../sass/screen.scss */
/* line 728, ../../sass/screen.scss */
#id_stage-thematiques {
display: none;
}
/* line 718, ../../sass/screen.scss */
/* line 732, ../../sass/screen.scss */
.leaflet-container {
z-index: 1;
}
/* line 723, ../../sass/screen.scss */
/* line 737, ../../sass/screen.scss */
.stage-liste li {
display: block;
}
/* line 725, ../../sass/screen.scss */
/* line 739, ../../sass/screen.scss */
.stage-liste li.date-maj {
font-weight: bold;
font-size: 0.9em;
padding: 3px 0;
}
/* line 730, ../../sass/screen.scss */
/* line 744, ../../sass/screen.scss */
.stage-liste li.stage {
padding: 10px;
background: #fff;
margin: 10px;
}
/* line 735, ../../sass/screen.scss */
/* line 749, ../../sass/screen.scss */
.stage-liste li.stage h3 {
font-size: 1.4em;
}
/* line 738, ../../sass/screen.scss */
/* line 752, ../../sass/screen.scss */
.stage-liste li.stage h3 .auteur {
font-family: "Dosis", sans-serif;
font-weight: bold;
font-size: 0.8em;
}
/* line 744, ../../sass/screen.scss */
/* line 758, ../../sass/screen.scss */
.stage-liste li.stage ul.infos {
display: inline;
}

View file

@ -14,9 +14,19 @@ DEPARTEMENTS_DEFAUT = (
)
TYPE_STAGE_OPTIONS = (
('recherche', u"Stage de recherche"),
('pro', u"Stage professionnel"),
('lectorat', u"Lectorat"),
(u'Recherche :', (
('recherche', u"Stage académique"),
('recherche_autre', u"Stage non-académique"),
('sejour_dri', u"Séjour de recherche DRI"),
)),
(u'Stage sans visée de recherche :', (
('pro', u"Stage en entreprise"),
('admin', u"Stage en admin./ONG/orga. internationale"),
)),
(u'Enseignement :', (
('lectorat', u"Lectorat DRI"),
('autre_teach', u"Autre expérience d'enseignement"),
)),
('autre', u"Autre"),
)

View file

@ -27,7 +27,7 @@
<ul id="menu">
<li><a href="{% url 'avisstage:index' %}">Accueil</a></li>
{% if user.is_authenticated %}
<li><a href="{% url 'avisstage:perso' %}">Mes stages</a></li>
<li><a href="{% url 'avisstage:perso' %}">Mon expérience</a></li>
<li><a href="{% url 'avisstage:recherche' %}">Recherche</a></li>
{% endif %}
{% if user.is_staff %}

View file

@ -42,13 +42,13 @@
<h1>{{ object.sujet }}</h1>
{% if object.auteur == user.profil %}
<div class="edit-box {{ object.public|yesno:"public,prive" }}">
<p><a href="{% url "avisstage:stage_edit" object.id %}" class="edit-btn btn">Modifier ce stage</a></p>
<p><a href="{% url "avisstage:stage_edit" object.id %}" class="edit-btn btn">Modifier cette expérience</a></p>
<form action="{% url "avisstage:stage_publication" object.id %}" method="POST">
{% csrf_token %}
{% if object.public %}
<p>Ce stage est visible publiquement. <input type="submit" value="Masquer ce stage" name="depublier" /></p>
<p>Cette page est visible publiquement. <input type="submit" value="Masquer ce stage" name="depublier" /></p>
{% else %}
<p>Ce stage n'est qu'un brouillon, vous seul pouvez le voir. <input type="submit" value="Publier ce stage" name="publier" /></p>
<p>Cette page n'est qu'un brouillon, vous seul pouvez le voir. <input type="submit" value="Publier ce stage" name="publier" /></p>
{% endif %}
</form>
</div>
@ -60,7 +60,7 @@
</div>
<article class="stage">
<section class="misc">
<h3>À propos du stage</h3>
<h3>À propos de cette expérience</h3>
{% if object.lieux.all %}
<div id="stage-map"></div>
<script type="text/javascript">
@ -91,7 +91,7 @@
</ul>
</section>
{% include "avisstage/detail/avis.html" with avis=object.avis_stage titre="Avis sur le stage" %}
{% include "avisstage/detail/avis.html" with avis=object.avis_stage titre="Avis sur le travail" %}
{% for avis in object.avislieu_set.all %}
{% include "avisstage/detail/avis.html" with avis=avis titre=avis.lieu %}

View file

@ -155,7 +155,7 @@
{% endblock %}
{% block content %}
<h1>{% if creation %}Nouveau stage{% else %}Modification d'un stage{% endif %}</h1>
<h1>{% if creation %}Nouvelle expérience{% else %}Modification d'une expérience{% endif %}</h1>
<form action="" method="post" id="stageform">
{% csrf_token %}
{# Général #}
@ -176,7 +176,7 @@
{% endfor %}
{# Lieux #}
<div class="field">
<label>Lieu(x) du stage</label>
<label>Lieu(x) de travail</label>
<div class="input">
<div id="lieux-selector">
{% for fform in avis_lieu_formset %}
@ -190,7 +190,7 @@
</div>
<div id="avis-general">
{# Avis - général #}
<h2>Commentaires sur le stage</h2>
<h2>Commentaires sur le travail</h2>
{{ avis_stage_form.non_field_errors }}
{% for field in avis_stage_form %}
{{ field.errors }}

View file

@ -6,7 +6,7 @@
{% block content %}
<div class="homeh1">
<h1>ExperiENS <span class="beta">beta</span></h1>
<p>Partagez vos expériences de stages&nbsp;!</p>
<p>Partagez vos expériences de stage&nbsp;!</p>
</div>
<div class="betacadre">
@ -26,7 +26,7 @@
<img src="{% static 'images/home2.jpg' %}"/>
</div>
<div>
<p>Ne partez plus en stage en terre inconnue : nourrissez-vous de l'expérience des stages effectués par la communauté normalienne, repérez les bons plans, et ne faites pas les mêmes erreurs&nbsp;!</p>
<p>Ne partez plus en stage en terre inconnue : nourrissez-vous de l'expérience des séjours effectués par la communauté normalienne, repérez les bons plans, et ne faites pas les mêmes erreurs&nbsp;!</p>
{% if user.is_authenticated %}<p><a href="{% url 'avisstage:recherche' %}" class="btn">Rechercher des stages</a></p>{% endif %}
</div>
</div>
@ -35,7 +35,7 @@
<img src="{% static 'images/home1.jpg' %}"/>
</div>
<div>
<p>Vous revenez du bout du monde (ou de la rue d'à côté)&nbsp;? N'attendez plus, rédigez un avis sur votre stage pour que votre expérience profite à d'autres&nbsp;!</p>
<p>Vous revenez du bout du monde (ou de la rue d'à côté)&nbsp;? N'attendez plus, rédigez un avis sur votre séjour pour que votre expérience profite à d'autres&nbsp;!</p>
{% if user.is_authenticated %}<p><a href="{% url 'avisstage:perso' %}" class="btn">Partager ses stages</a></p>{% endif %}
</div>
</div>

View file

@ -13,6 +13,7 @@
<div>
<ul class="infos">
<li class="dates">Du {{ stage.date_debut }} au {{ stage.date_fin }}</li>
<li class="type">{{ stage.get_type_stage_display }}</li>
<li class="structure">{{ stage.structure }}</li>
{% for lieu in stage.lieux.all %}<li class="lieu">{{ lieu.nom }}</li>{% endfor %}
{% for matiere in stage.matieres.all %}

View file

@ -81,9 +81,10 @@
{% block content %}
<h1>Recherche</h1>
<div class="entrer">Ici, bientôt, un vrai formulaire de recherche</div>
<p><a href="{% url "avisstage:stage_majs" %}">Dernières mises à jour</a></p>
<article>
<h2>Carte des stages</h2>
<h2>Carte des expériences</h2>
<div id="stages-map"></div>
</article>
{% endblock %}