def index(req):
    req.content_type = "text/html"

    sess = Session.Session(req)

    login = req.form['login']
    password = req.form['password']

    conn = fonctions.connexionBD()
    cur = conn.cursor()

    sql = "select * from util where login=%s and mdp =%s;"
    cur.execute(sql, (
        login,
        password,
    ))
    data = cur.fetchall()

    if not data:
        sess.delete()
        req.write(
            fonctions.codeHTML(
                "Erreur !",
                """<h3>Identifiants invalides</h3>""" + fonctions.lien(
                    'form-connexion.py', "Retour à la page de connexion")))

    else:
        id_util = data[0]
        sess["login"] = login
        sess["id_util"] = id_util[0]
        sess.save()
        req.write(
            fonctions.codeHTML(
                "Connexion", """<h3>Identifiants valides</h3>""" +
                fonctions.lien('menu.py', "Menu du site")))
def index(req):
    req.content_type = "text/html"

    sess = Session.Session(req)  #recup session
    redirectionSiNonConnecte(req, sess)  #redirige si la session est nouvelle
    id_util = sess["id_util"]  #recup l'id_util

    #start sql check que l'util est root
    conn = connexionBD()
    cur = conn.cursor()
    sql = "select login from util where util.id_util={} and util.login='******';".format(
        id_util, 'root')
    cur.execute(sql)
    conn.commit()
    data = cur.fetchall()
    if not data:
        req.write(
            codeHTML(
                "Erreur !", """
<h3><g>Seul l'utilisateur root a le droit d'ajouter un utilisateur.</g></h3>
""" + lien('menu.py', "Retour au menu")))
#end sql check util root

    else:
        req.write(
            codeHTML(
                "Ajout d'un utilisateur", """
<p><b>Ajout d'un utilisateur</b></p>
<form method="POST" action="ajout-util.py" onsubmit="return isItGood()">
    <table>
        <tr>
            <td>Login</td>
            <td><input type="text" name="login" id="login" onkeyup="alreadyUsed()"/></td>
            <td></td>
        </tr>
        <tr>
            <td>Mot de passe</td>
            <td><input type="password" name="motdepasse" id="motdepasse"/></td>
            <td></td>
        </tr>
        <tr>
            <td>Confirmation du mot de passe</td>
            <td><input type="password" name="conf" id="conf"/></td>
            <td></td>
        </tr>
    </table>
    <div id="used"></div>
</form>
""" + lien("menu.py", "Retour au menu principal") + """
<script src="form-ajout-util.js"></script>
"""))
Exemple #3
0
def index(req):
    req.content_type = "text/html"
    req.write(
        fonctions.codeHTML(
            "Formulaire de connexion",
            """<form action="connexion.py" method="post">
	<table>
		<tr>
			<th></th>
			<th></th>
			<th></th>
		</tr>
		<tr>
			<td>
				<label for="login">Login</label>
			</td>
			<td>
				<input type="text" id="login" name="login" />
			</td>
			<td></td>
		</tr>
		<tr>
			<td>
				<label for="password">Mot de passe</label>
			</td>
			<td>
				<input type="password" id="password" name="password" />
			</td>
			<td>
				<input type="submit" value="Valider" />
			</td>
		</tr>
	</table>
</form>
"""))
Exemple #4
0
def index(req):
    req.content_type="text/html"

    sess = Session.Session(req)
    fonctions.redirectionSiNonConnecte(req,sess)

    req.write(fonctions.codeHTML("Ajout d'un contact","""
<p><b>Ajout d'un contact</b></p>
<form method="POST" action="ajout.py" onsubmit="return isItGood()">
    <table>
        <tr>
            <td>Nom</td>
            <td><input type="text" name="nom" id="nom"/></td>
            <td></td>
        </tr>
        <tr>
            <td>Adresse</td>
            <td><input type="text" name="adresse"/></td>
            <td></td>
        </tr>
        <tr>
            <td>Email</td>
            <td><input type="text" name="email" id="email"/></td>
            <td></td>
        </tr>
        <tr>
            <td>Téléphone</td>
            <td><input type="text" name="telephone" id="telephone"/></td>
            <td><input type="submit" value="Valider" id="submit"></td>
        </tr>
    </table>
</form>
""" + fonctions.lien("menu.py","Retour au menu principal") + """
<script src="form-ajout.js"></script>
"""))
Exemple #5
0
def index(req):
    req.content_type = "text/html"

    sess = Session.Session(req)  #recup session
    redirectionSiNonConnecte(req, sess)  #redirige si la session est nouvelle
    id_util = sess["id_util"]  #recup l'id_util

    login = req.form['login']
    mdp = req.form['motdepasse']

    conn = connexionBD()
    cur = conn.cursor()
    sql = "insert into util (login,mdp) values (%s,%s);"
    cur.execute(sql, (
        login,
        mdp,
    ))
    conn.commit()
    conn.close()

    req.write(
        codeHTML(
            "", """
<p><b>Nouvel utilisateur</b></p>
<p>""" + login + """ a bien été ajouté</p>
""" + lien('menu.py', "Retour au menu principal")))
Exemple #6
0
def index(req):
    req.content_type = "text/html"
    sess = Session.Session(req)
    fonctions.redirectionSiNonConnecte(req, sess)

    req.write(
        fonctions.codeHTML(
            "Liste des contacts",
            """<b> Liste des contacts </b> <br/> Rechercher un nom : <input type="text" onkeyup="chargementContacts(this.value)"/> 
		<div id="liste"></div>""" + fonctions.lien("menu.py", "Retour au menu")) +
        """
<script>
function chargementContacts(value) {
  if(value == null){
  	value = "";
  }
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
     document.getElementById("liste").innerHTML = this.responseText;
    }
  };
  xhttp.open("GET", "affiche-liste.py?nom=" + value, true);
  xhttp.send();
}
chargementContacts();
</script>""")
def index(req):
    req.content_type = "text/html"

    sess = Session.Session(req)
    redirectionSiNonConnecte(req, sess)
    id_util = sess["id_util"]
    id_contact = req.form["id_contact"]
    conn = connexionBD()
    cur = conn.cursor()

    sql = "select * from contact where id_contact={} and id_util={};".format(
        id_contact, id_util)
    cur.execute(sql)
    conn.commit()
    data = cur.fetchall()

    if not data:
        req.write(
            codeHTML(
                "Erreur !", """
<p>Ce contact ne vous appartient pas.</p>
""" + lien('menu.py', "Retour au menu")))
        conn.close()
    else:
        sql = "delete from contact where id_contact={};".format(id_contact)
        cur.execute(sql)
        conn.commit()
        conn.close()
        util.redirect(req, "liste.py")
Exemple #8
0
def index(req):
    req.content_type = "text/html"
    _cursor.execute("SELECT mdp, id_util FROM UTIL WHERE login = %s",
                    (req.form['login'], ))
    query = _cursor.fetchone()
    if (query == None or req.form["password"] != query[0]):
        req.write(
            fonctions.codeHTML(
                "Erreur", "Login ou mot de passe incorrects. " +
                fonctions.lien("form-connexion.py", "Connexion")))
    else:
        sess = Session.Session(req)
        sess["id_util"] = query[1]
        sess["login"] = req.form['login']
        sess.save()
        req.write(
            fonctions.codeHTML(
                "Connexion réussie",
                fonctions.lien("menu.py", "Connexion réussie, allez au menu")))
Exemple #9
0
def index(req):
	req.content_type = "text/html"
	sess = Session.Session(req)
	fonctions.redirectionSiNonConnecte(req, sess)

	_db = fonctions.connexionBD()
	_cursor = _db.cursor()
	_cursor.execute("SELECT * FROM CONTACT WHERE id_util = %s AND id_contact = %s", (sess['id_util'], req.form["id_contact"],))
	user = _cursor.fetchone()

	if user is None:
		req.write(fonctions.codeHTML("Erreur utilisateur", "Utilisateur introuvable. <br/> " + fonctions.lien('menu.py','Retour au menu principal')))
	else:
		table_contents = "<tr> <td>Nom</td> <td>" + user[1] + "</td></tr>"
		if user[2]:
			table_contents += "<tr> <td>Email</td> <td>" + fonctions.lien("mailto:" + user[2], user[2]) + "</td></tr>"
		if user[3]:
			table_contents += "<tr> <td>Téléphone</td> <td>" + user[3] + "</td></tr>"
		if user[4]:
			table_contents += "<tr> <td>Adresse</td> <td>" + user[4] + "</td></tr>"
		if user[5] != 0 and user[6] != 0:
			map_contents = """
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.5.1/leaflet.css" />
<div id="carte" style="width: 600px; height: 400px;">
</div>

<script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.5.1/leaflet.js"></script>
<script>
	var map = L.map("carte");
	map.setView({lat: """ + str(user[5]) + """, lon: """ + str(user[6]) + """}, 10);
	url = 'http://{s}.tile.osm.org/{z}/{x}/{y}.png';
	var layer = L.tileLayer(url);
	layer.addTo(map);
	var m = L.marker ({lat: """ + str(user[5]) + """ ,  lon: """ + str(user[6]) + """});
	m.addTo(map);
</script>"""
		else:
			map_contents = "<p>Adresse du contact introuvable</p>"
		req.write(fonctions.codeHTML("Fiche d'un contact","""<b> Fiche d'un contact </b> <br/>
		<table>""" + table_contents + """</table>""" + map_contents + fonctions.lien("suppression.py?id_contact=" + str(user[0]) ,"Supprimer l'utilisateur") + "<br/>" + fonctions.lien("menu.py","Retour au menu principal")))

	_db.close()
Exemple #10
0
def index(req):
    session = Session.Session(req)
#    fonctions.redirectionSiNonConnecte(req, session)
    req.content_type = "text/html"
    body = """<h1>Menu principal</h1>
<br/>Vous êtes connecté en tant que <b>"""  """</b>.
<ul>
    <li><a href="form-ajout.py">Ajouter un contact</a></li>
    <li><a href="liste.py">Liste des contacts</a></li>
    <li><a href="deconnexion.py">Déconexion</a></li>
</ul>"""
    req.write(fonctions.codeHTML("Menu principal", body))
def index(req):
    req.content_type="text/html"

    sess = Session.Session(req) #recup session
    redirectionSiNonConnecte(req,sess) #redirige si la session est nouvelle
    id_util=sess["id_util"] #recup l'id_util

#sqlstart
    conn = connexionBD()
    cur = conn.cursor()
    sql = "select * from contact where id_util={} and latitude is not null and longitude is not null;".format(id_util)
#ajout des deux (lon et lat) pour être sur si jamais il y a un bug avec un seul des deux renseigné
    cur.execute(sql)
    conn.commit()
    data = cur.fetchall()
    conn.close()
#sqlend

#mapstart    
    maps="""
<link rel="stylesheet" href="leaflet.css"/>
<script src="leaflet.js"></script> 
<div id="carte" style="width: 600px; height: 400px"></div>
<script>
        var map = L.map("carte");
        map.setView({lat: 0 , lon: 0}, 1);
        url="https://{s}.tile.openstreetmap.org" + "/{z}/{x}/{y}.png";
        var layer = L.tileLayer(url);
        layer.addTo(map);
"""#initialise tous ce qui ne changera pas

#debut prise donné par contact
    for i in range(len(data)):
	lat=str(data[i][5])
	lon=str(data[i][6])
	id_contact=str(data[i][0])
	nom=str(data[i][1])
	maps+="""
var m = L.marker({lat: """ + lat + """, lon: """ + lon + """});
        m.addTo(map);
	m.bindPopup('<a href="fiche.py?id_contact=""" + id_contact + """">""" + nom + """</a>');
"""
#fin prise donné par contact

    maps+="</script>"
#mapsend

    req.write(codeHTML("Localisation","""
<p><b>Localisation des contacts</b></p>
<br/>
""" + maps + lien("menu.py","Retour au menu")))
Exemple #12
0
def index(req):
    req.content_type = "text/html"
    sess = Session.Session(req)
    fonctions.redirectionSiNonConnecte(req, sess)

    _db = fonctions.connexionBD()
    _cursor = _db.cursor()
    _cursor.execute(
        "SELECT longitude, latitude, nom, id_contact FROM CONTACT WHERE id_util = %s",
        (sess['id_util'], ))
    markers = ""
    _db.close()

    req.write(
        fonctions.codeHTML(
            "Localisation", """
<label for="search">Rechercher un contact :</label>
<input type="text" id="search" onkeyup="chargementMarqueurs(this.value)"/>
<br><br>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.5.1/leaflet.css" />
<div id="carte" style="width: 600px; height: 400px;">
</div>

<script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.5.1/leaflet.js"></script>
<script>
var map = L.map("carte");
url = 'http://{s}.tile.osm.org/{z}/{x}/{y}.png';
var layer = L.tileLayer(url);
var layerGroup = L.layerGroup().addTo(map);
layer.addTo(map);

chargementMarqueurs();

function chargementMarqueurs(filter) {
  if(filter == null){
  	filter = "";
  }
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
     eval(this.responseText);
    }
  };
  xhttp.open("GET", "affiche-markers.py?nom=" + filter, true);
  xhttp.send();
}
</script>
"""))
Exemple #13
0
def index(req):
	req.content_type = "text/html"
	sess=Session.Session(req)
	fonctions.redirectionSiNonConnecte(req, sess)
	_db=fonctions.connexionBD()
	_cursor=_db.cursor()

	_cursor.execute("INSERT INTO UTIL (login, mdp) VALUES (%s , %s)", (req.form['login'], req.form['password'],))
	_db.commit()

	req.write(fonctions.codeHTML("Menu principal","""
		<b> Nouvel utilisateur </b> <br/> 
		<p>""" + req.form['login'] + """ a bien été ajouté à la base de données. </p> 
		""" + fonctions.lien('menu.py','Retour au menu principal')))

	_db.close()
def index(req):
    req.content_type = "text/html"

    sess = Session.Session(req)
    redirectionSiNonConnecte(req, sess)

    req.write(
        codeHTML(
            "Liste des contacts", """
    <p><b>Liste des contacts</b></p>
    <b>Rechercher un nom :</b>
    <input type="text" id="nom" onkeyup="cherche()"/><br/>
    <div id="liste"></div>
    """ + lien("menu.py", "Retour au menu") + """
<script src="liste.js"></script>
"""))
Exemple #15
0
def index(req):
    req.content_type = "text/html"
    titre = "exo10"
    body = """ <h4>Ajout d'un contact</h4>
	<form action="ajout.py" method="post"> 
	<label for="nom">Nom</label>
	<input name="nom" type="text" maxlenght="100" /><br />
	<label for="adresse">Adresse</label>
	<input name="adresse" type="text" maxlenght="100" /><br />
	<label for="email">Email</label>
	<input name="email" type"text" maxlenght="100" /><br />
	<label for="tel">Téléphone</label>
	<input name="tel" type="text" maxlenght="10" />
	<input type="submit" value="valider" /><br />
	<a href="menu.py">Retour au menu principal</a>
	"""
    req.write(fonctions.codeHTML(titre, body))
Exemple #16
0
def index(req):
	req.content_type = "text/html"
	sess = Session.Session(req)
	fonctions.redirectionSiNonConnecte(req, sess)
	if sess['id_util'] == 1:
		create_util = "<li>" + fonctions.lien('form-ajout-util.py', 'Ajout d\'un utilisateur') + "</li>"
	else:
		create_util = ""

	req.write(fonctions.codeHTML("Menu principal","""<b> Menu principal </b> <br/> Vous êtes connecté en tant que <b> """ + sess['login'] + """. </b><ul>
	<li>"""+fonctions.lien('form-ajout.py', 'Ajout d\'un contact')+"""</li>
	<li>"""+fonctions.lien('liste.py', 'Liste de contacts')+"""</li>
	<li>"""+fonctions.lien('localisation.py', 'Carte des contacts')+"""</li>
	""" + create_util + """
	<li>"""+fonctions.lien('deconnexion.py', 'Déconnexion')+"""</li>
	</ul>
	
	"""))
def index(req):
    req.content_type = "text/html"
    sess = Session.Session(req)
    fonctions.redirectionSiNonConnecte(req, sess)

    nom = req.form['nom']
    adresse = req.form['adresse']
    email = req.form['email']
    telephone = req.form['telephone']
    id_util = sess["id_util"]

    conn = fonctions.connexionBD()
    cur = conn.cursor()
    #debut geocodage
    #	geo=geocodage.geocodageIUTV(adresse) #decommentez pour utilisation IUT
    geo = geocodage.geocodage(adresse)  #decommentez pour utilisation home
    if not geo:
        lat = None
        lon = None
    else:
        lat = geo[0]
        lon = geo[1]
#fin geocodage
    sql = "insert into contact (nom,email,tel,adresse,latitude,longitude,id_util) values (%s,%s,%s,%s,%s,%s,%s);"
    cur.execute(sql, (
        nom,
        email,
        telephone,
        adresse,
        lat,
        lon,
        id_util,
    ))
    conn.commit()
    conn.close()

    req.write(
        fonctions.codeHTML(
            "Nouveau contact", """
<p><b>Nouveau contact</b></p>
<p>""" + nom + """ a bien été ajouté à vos contacts</p>
""" + fonctions.lien('menu.py', "Retour au menu principal")))
Exemple #18
0
def index(req):
    req.content_type = "text/html"

    sess = Session.Session(req)
    redirectionSiNonConnecte(req, sess)

    req.write(
        codeHTML(
            "Menu principal", """
<p><b>Menu principal</b><br/>
Vous êtes connecté en tant que <b>""" + sess["login"] + """</b>
</p>
<ul>
    <li>""" + lien("form-ajout.py", "Ajout d'un contact") + """</li>
    <li>""" + lien("liste.py", "Liste des contacts") + """</li>
    <li>""" + lien("localisation.py", "Localisation des contacts") + """</li>
    <li>""" + lien("form-ajout-util.py", "Ajout d'un utilisateur") + """</li>
    <li>""" + lien("deconnexion.py", "Déconnexion") + """</li>
</ul>
"""))
Exemple #19
0
def index(req):
    req.content_type = "text/html"
    sess = Session.Session(req)
    fonctions.redirectionSiNonConnecte(req, sess)
    _db = fonctions.connexionBD()
    _cursor = _db.cursor()
    _cursor.execute(
        "DELETE FROM CONTACT WHERE id_util = %s AND id_contact = %s", (
            sess['id_util'],
            req.form["id_contact"],
        ))
    if _cursor.rowcount == 0:
        req.write(
            fonctions.codeHTML(
                "Erreur utilisateur", "Utilisateur introuvable. <br/> " +
                fonctions.lien('menu.py', 'Retour au menu principal')))
    else:
        _db.commit()
        util.redirect(req, 'liste.py')
    _db.close()
Exemple #20
0
def index(req):
    req.content_type = "text/html"
    req.write(
        fonctions.codeHTML(
            "Page de connexion", """
<h2>Veuillez vous connectez pour accéder à nos services.</h2>
<form method="POST" action="connexion.py">
    <table>
        <tr>
            <td>Login</td>
            <td><input type="text" name="login"/></td>
            <td></td>
        </tr>
        <tr>
            <td>Mot de passe</td>
            <td><input type="password" name="password"/></td>
            <td><input type="submit" value="Valider"/></td>
        </tr>
    </table>
</form>
"""))
Exemple #21
0
def index(req):
	req.content_type = "text/html"
	sess=Session.Session(req)
	fonctions.redirectionSiNonConnecte(req, sess)
	_db=fonctions.connexionBD()
	_cursor=_db.cursor()
	geocode = geocodage.geocodage(req.form['address'])
	if geocode != None:
		lat = geocode[0]
		lon = geocode[1]
	else:
		lat = 0
		lon = 0
	_cursor.execute("INSERT INTO CONTACT (id_util, nom, email, tel, adresse, latitude, longitude) VALUES (%s , %s, %s, %s, %s, %s, %s)", (sess['id_util'],req.form['nom'], req.form['email'], req.form['telephone'], req.form['address'], lat, lon))
	_db.commit()

	req.write(fonctions.codeHTML("Menu principal","""
		<b> Nouveau contact </b> <br/> 
		<p>""" + req.form['nom'] + """ a bien été ajouté à vos contacts. </p> 
		""" + fonctions.lien('menu.py','Retour au menu principal')))

	_db.close()
Exemple #22
0
def index(req):
    req.content_type = "text/html"
    titre = "exo5"
    corps = "<form action=\"test.html\" method=\"post\"><input name=\"login\" type=\"text\" maxlength=\"20\" placeholder=\"Login\" /><input name=\"pwd\" type=\"password\" maxlength=\"20\" placeholder=\"Password\" /><input type=\"submit\"</form><a href=\"menu.py\">Redirection manuelle</a>"
    req.write(fonctions.codeHTML(titre, corps))
Exemple #23
0
def index(req):
    req.content_type = "text/html"
    sess = Session.Session(req)
    fonctions.redirectionSiNonConnecte(req, sess)
    fonctions.redirectionSiNonRoot(req, sess)

    req.write(
        fonctions.codeHTML(
            "Ajout d'un utilisateur", """<b>Ajout d'un utilisateur</b> <br/>
	<form action="ajout-util.py" method="post" name="form" onsubmit="return validate()">
	<table>
		<tr>
			<th></th>
			<th></th>
			<th></th>
		</tr>
		<tr>
			<td>
				<label for="login">Login</label>
			</td>
			<td>
				<input type="text" id="login" name="login" onblur="checkLogin(this.value)"/>
			</td>
			<td></td>
		</tr>
		<tr>
			<td>
				<label for="password">Mot de passe</label>
			</td>
			<td>
				<input type="password" id="password" name="password" />
			</td>
			<td>
			</td>
		</tr>
		<tr>
			<td>
				<label for="password-again">Confirmation du mot de passe</label>
			</td>
			<td>
				<input type="password" id="password-again" name="password-again" />
			</td>
			<td>
				<input type="submit" value="Valider" />
			</td>
		</tr>
	</table>
</form>

<script>
function validate(){
	var login = document.forms["form"]["login"].value;
	if (login == "") {
		alert("Le login ne doit pas être vide !");
		return false;
	}

	var password = document.forms["form"]["password"].value;
	if (password.length < 8) {
		alert("Le mot de passe doit faire plus de 8 caractères");
		return false;
	}

	var password_again = document.forms["form"]["password-again"].value;
	if (password != password_again) {
		alert("Les mots de passe ne correspondent pas");
		return false;
	}

	var login = document.forms["form"]["login"];
	if(login.getAttribute("available") == "no"){
		alert("Nom d'utilisateur déjà existant");
		return false;
	}
}

function checkLogin(login){
	var xhttp = new XMLHttpRequest();

	xhttp.onreadystatechange = function() {
		if (this.readyState == 4 && this.status == 200) {
			response = JSON.parse(this.responseText);
			if(response.taken){
				document.forms["form"]["login"].setAttribute("available", "no");
			} else {
				document.forms["form"]["login"].setAttribute("available", "yes");
			}
		}
	};

	xhttp.open("GET", "verif-util.py?login="******""" + fonctions.lien('menu.py', 'Retour au menu principal')))
Exemple #24
0
def index(req):
    req.content_type = "text/html"
    sess = Session.Session(req)
    fonctions.redirectionSiNonConnecte(req, sess)
    req.write(
        fonctions.codeHTML(
            "Ajout d'un contact", """<b>Ajout d'un contact</b> <br/>
	<form action="ajout.py" method="post" name="form" onsubmit="return validate()">
	<table>
		<tr>
			<th></th>
			<th></th>
			<th></th>
		</tr>
		<tr>
			<td>
				<label for="nom">Nom</label>
			</td>
			<td>
				<input type="text" id="nom" name="nom" />
			</td>
			<td></td>
		</tr>
		<tr>
			<td>
				<label for="address">Adresse</label>
			</td>
			<td>
				<input type="address" id="address" name="address" />
			</td>
			<td>
			</td>
		</tr>
		<tr>
			<td>
				<label for="email">Mail</label>
			</td>
			<td>
				<input type="email" id="email" name="email" />
			</td>
			<td>
			</td>
		</tr>
		<tr>
			<td>
				<label for="telephone">Téléphone</label>
			</td>
			<td>
				<input type="telephone" id="telephone" name="telephone" />
			</td>
			<td>
				<input type="submit" value="Valider" />
			</td>
		</tr>
	</table>
</form>

<script>
function validate(){
	var nom = document.forms["form"]["nom"].value;
	if (nom == "") {
		alert("Le nom ne doit pas être vide !");
		return false;
	}

	var email = document.forms["form"]["email"].value;
	if(email.indexOf("@") == "-1"){
		alert("L'email doit contenir un @ !");
		return false;
	} else {
		var pos = email.indexOf("@")
	}
	if(email.indexOf(".", pos) == "-1"){
		alert("L'email doit contenir un . !");
		return false;
	}

	var address = document.forms["form"]["address"].value;
	if (address == "") {
		alert("L'adresse ne doit pas être vide !");
		return false;
	}

	var telephone = document.forms["form"]["telephone"].value;
	if(! /^\d+$/.test(telephone)){
		alert("Le numéro de téléphone doit être composé de chiffres");
		return false;
	}
	if(telephone.length != 10){
		alert("Le numéro de téléphone doit être une suite de 10 chiffres");
		return false;
	}
}
</script>
""" + fonctions.lien('menu.py', 'Retour au menu principal')))
def index(req):
    req.content_type = "text/html"
    req.write(
        fonctions.codeHTML("Mon premier script",
                           "Voici mon premier script de web dynamique!"))
def index(req):
    req.content_type = "text/html"

    sess = Session.Session(req)  #recup session
    redirectionSiNonConnecte(req, sess)  #redirige si la session est nouvelle
    id_util = sess["id_util"]  #recup l'id_util
    id_contact = req.form["id_contact"]  #recup l'id_contact

    #debut sql
    conn = connexionBD()
    cur = conn.cursor()
    sql = "select * from contact where id_contact={} and id_util={};".format(
        id_contact, id_util)
    cur.execute(sql)
    conn.commit()
    data = cur.fetchall()
    conn.close()
    #fin sql

    if not data:
        req.write(
            codeHTML(
                "Erreur !", """
<p>Ce contact ne vous appartient pas.</p>
""" + lien('menu.py', "Retour au menu")))
#si le resultat de la req sql est vide
#alors le contact n'appartient pas à l'utilisateur connecté

    else:
        #début prise info dans les var
        data = data[0]
        nom = str(data[1])
        email = str(data[2])
        tel = str(data[3])
        addr = str(data[4])
        lat = str(data[5])
        lon = str(data[6])
        #fin prise infos
        content = ""  #ou tout le surplus va être ajouté (en plus du nom)

        if email != "":
            content += """
        <tr>
                <td>Email</td>
                <td>""" + lien("mailto:" + email, email) + """</td>
        </tr>

"""
#check si l'email est donné

        if tel != "":
            content += """
        <tr>
                <td>Telephone</td>
                <td>""" + tel + """</td>
        </tr>

"""
#check si le num est donné

        if addr != "":
            content += """
	<tr>
		<td>Adresse</td>
		<td>""" + addr + """</td>
	</tr>
"""
#check si l'addresse est donné

#debut affiche map
        if addr == "":  #si pas d'adresse
            maps = "<b>Adresse non précisé</b>"
        elif lat == "None" and lon == "None":  #si le geocodage ne renvoit rien
            maps = "<b>Emplacement indisponible</b>"
        else:  #créé la map avec lat et lon de geocodage
            maps = """
<link rel="stylesheet" href="leaflet.css"/>
<script src="leaflet.js"></script> 
<div id="carte" style="width: 600px; height: 400px"></div>
<script>
	var map = L.map("carte");
	map.setView({lat: """ + lat + """, lon: """ + lon + """}, 10);
	url="https://{s}.tile.openstreetmap.org" + "/{z}/{x}/{y}.png";
	var layer = L.tileLayer(url);
	layer.addTo(map);
	var m = L.marker({lat: """ + lat + """, lon: """ + lon + """});
	m.addTo(map);
</script>
"""
#fin affichage maps

#la suite écrit la page avec les différentes variables données
        req.write(
            codeHTML(
                "Fiche d'un contact", """
<b>Fiche d'un contact</b><br/>
<table>
        <tr>
                <td>Nom</td>
                <td>""" + nom + """</td>
        </tr>
""" + content + """
</table>
""" + maps + """
<br/>
""" + lien("supression.py?id_contact=" + id_contact, "Supression du contact") +
                """
<br/>
""" + lien("menu.py", "Retour au menu")))