diff --git a/caotek_mesavoirs/layout.py b/caotek_mesavoirs/layout.py index 3c71bf4..5d4fae6 100644 --- a/caotek_mesavoirs/layout.py +++ b/caotek_mesavoirs/layout.py @@ -1,11 +1,12 @@ # -*- coding: utf8 -*- from pyramid_layout.layout import layout_config +from pyramid.security import authenticated_userid +from .security import groupfinder from views.default import ( to_euro, - to_percent, - to_decimal, + to_percent, + to_decimal, ) -from pyramid.security import authenticated_userid @layout_config(template='templates/layouts/global_layout.pt') class GlobalLayout(object): diff --git a/caotek_mesavoirs/models/members.py b/caotek_mesavoirs/models/members.py index abcd258..08668ac 100644 --- a/caotek_mesavoirs/models/members.py +++ b/caotek_mesavoirs/models/members.py @@ -61,16 +61,13 @@ def update_membre(request, email, new_values): for param in new_values.keys(): if param == 'nom': new_values['nom'] = new_values['nom'].upper() - if param == 'access': - ' ne prend que le 1er caractère' - new_values['access'] = new_values['access'][0] - + if s: s += ",%s=:%s" % (param, param) else: s = "%s=:%s" % (param, param) - if email == '': + if email == 'new': query = "INSERT INTO members SET %s" % s else: new_values['email'] = email diff --git a/caotek_mesavoirs/static/img/logo.png b/caotek_mesavoirs/static/img/logo.png index a617ec1..42d90e2 100644 Binary files a/caotek_mesavoirs/static/img/logo.png and b/caotek_mesavoirs/static/img/logo.png differ diff --git a/caotek_mesavoirs/templates/home.pt b/caotek_mesavoirs/templates/home.pt index 1b2adac..214a499 100644 --- a/caotek_mesavoirs/templates/home.pt +++ b/caotek_mesavoirs/templates/home.pt @@ -3,26 +3,6 @@

-
- - -
-
-
- -


diff --git a/caotek_mesavoirs/templates/layouts/global_layout.pt b/caotek_mesavoirs/templates/layouts/global_layout.pt index 9640635..f3846cf 100644 --- a/caotek_mesavoirs/templates/layouts/global_layout.pt +++ b/caotek_mesavoirs/templates/layouts/global_layout.pt @@ -1,71 +1,67 @@ + xmlns:metal="http://xml.zope.org/namespaces/metal" + xmlns:tal="http://xml.zope.org/namespaces/tal" + lang="fr"> - ${page_title} - - + ${page_title} + + - - - - - - - - + + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + @@ -74,32 +70,32 @@

${page_title}

-
+
-
- - ${structure:message} -
+ tal:omit-tag=""> +
+ + ${structure:message} +
- -
-
-
+ +
+
+
- + diff --git a/caotek_mesavoirs/templates/members/user_edit.pt b/caotek_mesavoirs/templates/members/user_edit.pt index 9828e60..daa1c58 100644 --- a/caotek_mesavoirs/templates/members/user_edit.pt +++ b/caotek_mesavoirs/templates/members/user_edit.pt @@ -13,22 +13,32 @@
-
- +
+ data-fv-stringlength-max="45" + data-fv-stringlength-message="45 caractères maximum" /> +
+
+
+ +
+
@@ -44,7 +54,7 @@
-

${membre.modif_le.strftime('%d/%m/%Y - %H:%M')}

+

${membre.modif_le.strftime('%d/%m/%Y - %H:%M')}

diff --git a/caotek_mesavoirs/templates/members/users_list.pt b/caotek_mesavoirs/templates/members/users_list.pt index b44b643..d6ff004 100644 --- a/caotek_mesavoirs/templates/members/users_list.pt +++ b/caotek_mesavoirs/templates/members/users_list.pt @@ -4,8 +4,8 @@

Retour - - Nouveau utilisateur + + Nouveau membre

diff --git a/caotek_mesavoirs/templates/panels/dropdown_menu_panel.pt b/caotek_mesavoirs/templates/panels/dropdown_menu_panel.pt index 5bb66ff..3c94464 100644 --- a/caotek_mesavoirs/templates/panels/dropdown_menu_panel.pt +++ b/caotek_mesavoirs/templates/panels/dropdown_menu_panel.pt @@ -9,6 +9,7 @@
  • Changer mon mot de passe
  • +
  • Gestion des membres
  • diff --git a/caotek_mesavoirs/views/default.py b/caotek_mesavoirs/views/default.py index 4569e4a..874bbed 100644 --- a/caotek_mesavoirs/views/default.py +++ b/caotek_mesavoirs/views/default.py @@ -22,6 +22,9 @@ import hashlib from sqlalchemy.exc import DBAPIError from ..security import groupfinder +from ..models.members import ( + get_member_by_email, +) import json @@ -50,9 +53,15 @@ def to_percent(x): @view_config(route_name='home', renderer='../templates/home.pt', permission='view') def home(request): + logged_in = authenticated_userid(request) + # lire la fiche du membre + membre = get_member_by_email(request, logged_in) + if not membre: + request.session.flash(u"Utilisateur non trouvé : %s" % logged_in, 'warning') + return HTTPFound(location=request.route_url('/home')) + return { - 'page_title': 'Bienvenue', - 'project': 'mondumas', + 'page_title': u"%s %s" % (membre.prenom, membre.nom), } diff --git a/caotek_mesavoirs/views/members.py b/caotek_mesavoirs/views/members.py index 8e81784..f8350fd 100644 --- a/caotek_mesavoirs/views/members.py +++ b/caotek_mesavoirs/views/members.py @@ -170,7 +170,7 @@ def users_list(request): expire_le = '' - d = (item.nom, item.email, item.acces, der_cnx_le, expire_le) + d = (item.nom + " " + item.prenom, item.email, item.acces, der_cnx_le, expire_le) liste.append(d) return { @@ -197,15 +197,18 @@ def user_edit(request): message = '' acces_list = ["ADMIN", "MEMBRE"] - if email == '0': + if email == 'new': # nouveau membre = {} membre['email'] = '' membre['nom'] = '' + membre['prenom'] = '' membre['acces'] = 'MEMBRE' + membre['modif_le'] = None + membre['expire_le'] = None page_title= 'Nouveau membre' else: - # lire la fiche de l'membre + # lire la fiche du membre membre = get_member_by_email(request, email) if not membre: request.session.flash(u"Utilisateur non trouvé : %s" % email, 'warning') diff --git a/db_mesavoirs.sql b/db_mesavoirs.sql new file mode 100644 index 0000000..b23b1ef --- /dev/null +++ b/db_mesavoirs.sql @@ -0,0 +1,112 @@ +-- MySQL dump 10.13 Distrib 5.7.17, for Win64 (x86_64) +-- +-- Host: localhost Database: bd_mesavoirs +-- ------------------------------------------------------ +-- Server version 5.7.19-log + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `members` +-- + +DROP TABLE IF EXISTS `members`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `members` ( + `email` varchar(55) NOT NULL, + `nom` varchar(45) DEFAULT 'UTILISATEUR 000', + `prenom` varchar(45) DEFAULT NULL, + `mdp` varchar(128) DEFAULT NULL, + `mdp_oublie` varchar(128) DEFAULT NULL, + `mdp_oublie_date` datetime DEFAULT NULL, + `acces` varchar(25) DEFAULT 'MEMBRE', + `expire_le` datetime DEFAULT NULL, + `cree_le` datetime DEFAULT NULL, + `modif_le` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, + `dern_cnx_le` datetime DEFAULT NULL, + PRIMARY KEY (`email`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Liste des Membres'; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `members` +-- + +LOCK TABLES `members` WRITE; +/*!40000 ALTER TABLE `members` DISABLE KEYS */; +INSERT INTO `members` VALUES ('ctphuoc@gmail.com','CAO ','Thien phuoc','a12ecaa430207687ad18a72564609d4f313184bd',NULL,NULL,'ADMIN',NULL,NULL,'2017-07-22 16:32:11','2017-07-22 16:41:34'),('toa.armorial@gmail.com','CAO ','Thien-an',NULL,NULL,NULL,'ADMIN',NULL,'2017-07-22 17:18:51','2017-07-22 16:32:11',NULL); +/*!40000 ALTER TABLE `members` ENABLE KEYS */; +UNLOCK TABLES; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8 */ ; +/*!50003 SET character_set_results = utf8 */ ; +/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`127.0.0.1`*/ /*!50003 TRIGGER `bd_mesavoirs`.`members_BEFORE_INSERT` BEFORE INSERT ON `members` FOR EACH ROW +BEGIN + + set NEW.cree_le = NOW(); + set NEW.modif_le = NOW(); + SET NEW.nom = UCASE(NEW.nom); + SET NEW.prenom = CONCAT( UCASE(LEFT(NEW.prenom,1)), LCASE(SUBSTRING(NEW.prenom,2))); + +END */;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8 */ ; +/*!50003 SET character_set_results = utf8 */ ; +/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `bd_mesavoirs`.`members_BEFORE_UPDATE` BEFORE UPDATE ON `members` FOR EACH ROW +BEGIN + + SET NEW.nom = UCASE(NEW.nom); + SET NEW.prenom = CONCAT( UCASE(LEFT(NEW.prenom,1)), LCASE(SUBSTRING(NEW.prenom,2))); + +END */;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; + +-- +-- Dumping events for database 'bd_mesavoirs' +-- + +-- +-- Dumping routines for database 'bd_mesavoirs' +-- +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2017-07-22 18:35:29