Feedback et autres trucs

This commit is contained in:
Evarin 2017-04-20 23:04:07 +02:00
parent 9374a5f158
commit be57b976d2
18 changed files with 243 additions and 55 deletions

View file

@ -1,4 +1,4 @@
{% load staticfiles %}
{% load staticfiles avisstage_tags %}
<!doctype html>
<html>
<head>
@ -24,14 +24,14 @@
<nav>
<ul id="menu">
<li><a href="{% url 'avisstage:index' %}">Accueil</a></li>
{% if user.username %}
{% if user.is_authenticated %}
<li><a href="{% url 'avisstage:perso' %}">Mes stages</a></li>
<li><a href="{% url 'avisstage:recherche' %}">Recherche</a></li>
{% endif %}
{% if user.is_staff %}
<li><a href="{% url 'admin:index' %}">Administration</a></li>
{% endif %}
{% if user.username %}
{% if user.is_authenticated %}
<li><a href="{% url 'logout' %}"><span class="username">{{ user.username }}</span><br/> Déconnexion</a></li>
{% else %}
<li><a href="{% url 'login' %}">Connexion</a></li>
@ -40,27 +40,9 @@
</nav>
</header>
{# BLOCK FEEDBACK #}
{% if request.user.is_authenticated %}
<div id="feedback_win" class="win_bg">
<div class="win_centrer">
<div class="win_content">
<h2>Envoyer un avis sur le site<a class="win_close" href="javascript:showFeedback(false)">X</a></h2>
<form method="POST" action="{% url 'avisstage:feedback' %}?next={{ request.path|urlencode }}">
{% csrf_token %}
<p>Connecté en tant que {{ user.profil }}</p>
<p><label for="id_feedback-message">Commentaire :</label><textarea name="feedback-message" id="id_feedback-message"></textarea></p>
<input type="submit" />
</form>
</div>
</div>
</div>
<a id="feedback_btn" href="javascript:showFeedback(true)">
Feedback
</a>
{% if user.is_authenticated %}
{% feedback_widget %}
{% endif %}
{# ENDBLOCK FEEDBACK #}
<section class="content">
{% if messages %}

View file

@ -1,6 +1,8 @@
{% extends "avisstage/base.html" %}
{% load staticfiles %}
{% block title %}Profil de {{ object.nom }} - ExperiENS{% endblock %}
{% block content %}
<h1>Profil de {{ object.nom }}</h1>
{% if object.user == user %}

View file

@ -1,6 +1,8 @@
{% extends "avisstage/base.html" %}
{% load staticfiles %}
{% block title %}{{ object.sujet }} - ExperiENS{% endblock %}
{% block extra_head %}
<script src="{% static 'js/toc.min.js' %}" type="text/javascript"></script>
<script type="text/javascript" src="{% static "js/leaflet.js" %}"></script>

View file

@ -12,8 +12,11 @@
<script type="text/javascript" src="{% static "js/select_lieu.js" %}"></script>
<script type="text/javascript">
$(function() {
// DATE FIELDS
$(".datepicker").datepicker({ dateFormat: 'dd/mm/yy' });
// Process rich text fields
// RICH TEXT FIELDS
var txtr = $("textarea.tinymce");
$.each(txtr, function(i, item) {
var newitem = $("<div>", {"class":"tinymce"}).html(item.value)
@ -30,7 +33,7 @@
language: "fr_FR",
});
// Process select multiple fields
// SELECT MULTIPLE FIELDS
var slts = $("select[multiple]");
var NULL_VAL = " ";
$.each(slts, function(i, item) {
@ -65,7 +68,7 @@
$item.remove();
});
// Widget du choix du lieu
// CHOIX DU LIEU
var lieu_select = new SelectLieuWidget(
"{{ STATIC_URL|escapejs }}",
"{% url 'avisstage:api_dispatch_list' resource_name="lieu" api_name="v1" %}",
@ -110,7 +113,7 @@
cnt.val(i_form+1);
$("#avis_lieu_container").append(dest_form);
} else {
// Changer le lieu
// Changer un lieu existant
dest_form = $("#avis-lieux-"+lieu_focus);
dest_btn = lieux_liste.find("#change-lieux-"+lieu_focus);
}
@ -121,9 +124,9 @@
.val(lieu.id);
lieu_select.closeWidget();
}
// TODO gérer le cas de l'actualisation du formulaire où le lieu affiché n'est plus le vrai lieu
// À l'envoi du formulaire
// CLEANUP ON SENDING
$("#stageform").submit(function() {
$.each(txtr, function(i, item) {
item.value = tinyMCE.get(item.fakeinput.attr("id")).getContent();

View file

@ -1,6 +1,8 @@
{% extends "avisstage/base.html" %}
{% load staticfiles %}
{% block title %}ExperiENS - Partagez vos expériences de stage !{% endblock %}
{% block content %}
<div class="homeh1">
<h1>ExperiENS <span class="beta">beta</span></h1>

View file

@ -1,6 +1,8 @@
{% extends "avisstage/base.html" %}
{% load staticfiles %}
{% block title %}Espace personnel - ExperiENS{% endblock %}
{% block content %}
<h1>Mon espace personnel</h1>
<p><a href="{% url "avisstage:profil" user %}">{{ user.profil.nom }}</a> <a href="{% url "avisstage:profil_edit" %}">Modifier mes infos</a></p>

View file

@ -1,6 +1,9 @@
{% extends "avisstage/base.html" %}
{% load staticfiles %}
{% block title %}Chercher un stage - ExperiENS{% endblock %}
{% block extra_head %}
<script type="text/javascript" src="{% static "js/leaflet.js" %}"></script>
<script type="text/javascript" src="{% static "js/leaflet.markercluster.js" %}"></script>
@ -34,7 +37,9 @@
var lieux = data.objects;
$.each(lieux, function(i, item) {
var marqueur = L.marker(item.coord, {icon: greenIcon});
marqueur.bindPopup("<h3>"+item.nom+"</h3>");
var txt = item.num_stages > 1 ? item.num_stages+" stages ici": "1 stage ici";
marqueur.bindPopup("<h3>"+item.nom+"</h3>"+
"<p>"+txt+"</p>");
marqueurs.addLayer(marqueur);
});
map.addLayer(marqueurs);

View file

@ -0,0 +1,60 @@
{% load staticfiles %}
<div id="feedback_widget" class="window">
<script type="text/javascript">
$(function(){
function showFeedback() {
$("#feedback_widget").addClass("visible");
}
function hideFeedback() {
$("#feedback_widget").removeClass("visible");
}
function onFeedbackSent(data) {
if(data.success)
widget.find(".message").text("Message envoyé");
else {
widget.find(".message").text("Erreur : "+data);
}
}
$("#feedback-button").on("click", showFeedback);
var widget = $("#feedback_widget");
widget.find(".window-closer").on("click", hideFeedback);
widget.find(".window-bg").on("click", hideFeedback);
var form = widget.find("form");
form.on("submit", function(){
$.post(form.attr("action")+"?format=json", form.serialize(), onFeedbackSent);
form.detach();
widget.find(".message").text("Envoi en cours");
return false;
});
});
</script>
<div class="window-bg"></div>
<div class="window-content">
<a class="window-closer" href="javascript:void(0);"></a>
<h2>Donnez votre avis !</h2>
<div class="feedback-form">
<div class="message"></div>
<form action="{% url 'avisstage:feedback' %}" method="post" id="feedback">
{% csrf_token %}
{% for field in form.hidden_fields %}
{{ field }}
{% endfor %}
{% for field in form.visible_fields %}
{{ field.errors }}
<div class="field">
<label for="{{ field.id_for_label }}">{{ field.label }}</label>
<div class="input">
{{ field }}
{% if field.help_text %}
<p class="help_text">{{ field.help_text }}</p>
{% endif %}
</div>
</div>
{% endfor %}
<input type="submit" />
</form>
</div>
</div>
</div>
<a id="feedback-button" href="javascript:void(0);">Feedback</a>

View file

@ -5,6 +5,7 @@
<div class="window-content">
<a class="window-closer"></a>
<h2>Choisir un lieu</h2>
<div class="message"></div>
<div class="lieu-ui">
</div>
<div class="lieu-form">{% load staticfiles %}