From 3841d34eabf866e49894977a69ddfd48efe58e1d Mon Sep 17 00:00:00 2001 From: CAO Thien-An Date: Sat, 22 Jul 2017 18:37:51 +0200 Subject: [PATCH] menu principal --- caotek_mesavoirs/layout.py | 7 +- caotek_mesavoirs/models/members.py | 7 +- caotek_mesavoirs/static/img/logo.png | Bin 29250 -> 7360 bytes caotek_mesavoirs/templates/home.pt | 20 --- .../templates/layouts/global_layout.pt | 138 +++++++++--------- .../templates/members/user_edit.pt | 22 ++- .../templates/members/users_list.pt | 4 +- .../templates/panels/dropdown_menu_panel.pt | 1 + caotek_mesavoirs/views/default.py | 13 +- caotek_mesavoirs/views/members.py | 9 +- db_mesavoirs.sql | 112 ++++++++++++++ 11 files changed, 221 insertions(+), 112 deletions(-) create mode 100644 db_mesavoirs.sql 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 a617ec121b92af3dd0fa69e166d0c9c349ab4db8..42d90e26075ec6ae12205179de53adc2ae23f9b2 100644 GIT binary patch literal 7360 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 literal 29250 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 KMNUMnLSTZj=Ka3_ 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