From 1c24b993bb1595bd819f8d8ffe23377d71865dd2 Mon Sep 17 00:00:00 2001 From: Phuoc Cao Date: Mon, 16 Dec 2024 18:43:06 +0100 Subject: [PATCH] removed wtform --- cao_sunyata/forms.py | 50 ------------ cao_sunyata/models/entries.py | 77 +++++++++++++++--- cao_sunyata/models/users.py | 7 +- cao_sunyata/templates/blog.jinja2 | 2 +- cao_sunyata/templates/blog_edit.jinja2 | 52 +++++++------ cao_sunyata/templates/blog_search.jinja2 | 11 +-- cao_sunyata/templates/home.jinja2 | 2 +- cao_sunyata/templates/settings.jinja2 | 2 +- cao_sunyata/templates/tag_edit.jinja2 | 22 ++---- cao_sunyata/templates/topic_edit.jinja2 | 36 ++++----- cao_sunyata/views/blog.py | 99 +++++++++++++----------- cao_sunyata/views/default.py | 84 ++++++++++---------- setup.py | 1 - 13 files changed, 222 insertions(+), 223 deletions(-) delete mode 100644 cao_sunyata/forms.py diff --git a/cao_sunyata/forms.py b/cao_sunyata/forms.py deleted file mode 100644 index 6ca2961..0000000 --- a/cao_sunyata/forms.py +++ /dev/null @@ -1,50 +0,0 @@ -from wtforms import Form, StringField, TextAreaField, SelectField, DateTimeField -from wtforms import IntegerField, PasswordField -from wtforms.validators import InputRequired, Length, EqualTo -from wtforms.widgets import HiddenInput - -strip_filter = lambda x: x.strip() if x else None - -class BlogCreateForm(Form): - title = StringField('Titre', validators=[InputRequired(), Length(min=1, max=255)], - filters=[strip_filter]) - body = TextAreaField('Corps du texte', validators=[InputRequired(), Length(min=1)], - filters=[strip_filter]) - tag = SelectField('Tag') - author = StringField('Auteur', validators=[InputRequired(), Length(min=1, max=50)], - filters=[strip_filter]) - status = SelectField('Statut', choices=[('brouillon','Brouillon'),('privé','Privé'),('publié','Publié')]) - created = DateTimeField('Créé le', validators=[InputRequired()]) - - -class BlogUpdateForm(BlogCreateForm): - id = IntegerField(widget=HiddenInput()) - created = DateTimeField('Créé le', validators=[InputRequired()]) - -class BlogSearchForm(Form): - criteria = StringField('Critère', validators=[InputRequired(), Length(min=3, max=45)], - filters=[strip_filter]) - -class UserCreateForm(Form): - id = IntegerField(widget=HiddenInput()) - name = StringField('Nom', validators=[InputRequired(), Length(min=1, max=255)], - filters=[strip_filter]) - password = PasswordField('Mot de passe') - confirm = PasswordField('Confirmer', validators=[EqualTo('password', message='Les 2 Passwords doivent être identiques')]) - -class TopicForm(Form): - topic = StringField('Topic', validators=[InputRequired(), Length(min=1, max=25)], - filters=[strip_filter]) - topic_name = StringField('Intitulé', validators=[InputRequired(), Length(min=1, max=25)], - filters=[strip_filter]) - topic_quote = TextAreaField('Citation', validators=[InputRequired(), Length(min=1)], - filters=[strip_filter]) - - -class TagForm(Form): - id = IntegerField(widget=HiddenInput()) - - tag = StringField('Tag', validators=[InputRequired(), Length(min=1, max=25)], - filters=[strip_filter]) - tag_name = StringField('Intitulé', validators=[InputRequired(), Length(min=1, max=25)], - filters=[strip_filter]) diff --git a/cao_sunyata/models/entries.py b/cao_sunyata/models/entries.py index 31139b4..7558c45 100644 --- a/cao_sunyata/models/entries.py +++ b/cao_sunyata/models/entries.py @@ -4,7 +4,7 @@ from .default import ( ) def get_entries_by_topic(request, topic, tag): - query = f"SELECT * FROM entries WHERE topic_id = {topic}" + query = "SELECT *, strftime('%d/%m/%Y', created) AS create_date FROM entries WHERE topic_id = '{0}'".format(topic) if request.authenticated_userid == None: # if user is anonym, display only published posts query = query + " AND status='publié'" @@ -13,7 +13,7 @@ def get_entries_by_topic(request, topic, tag): # if user is not 'admin', hide admin posts query = query + " AND tag =! '_admin'" if tag != '': - query = query + " AND tag = {tag}" + query = query + " AND tag = '{0}'".format(tag) query = query + " ORDER BY tag, title;" results = request.dbsession.execute(query).fetchall() @@ -21,7 +21,7 @@ def get_entries_by_topic(request, topic, tag): def get_entries_by_criteria(request, criteria): search = "%{}%".format(criteria) - query = f"SELECT * FROM entries WHERE title = {search} or body = {search}" + query = f"SELECT *, strftime('%d/%m/%Y', edited) AS edit_date FROM entries WHERE title like '{search}' or body like '{search}'" if request.authenticated_userid == None: # if user is anonym, display only published posts query = query + " AND status='publié'" @@ -34,13 +34,14 @@ def get_entries_by_criteria(request, criteria): return results def get_entries_by_id(request, _id): - query = "SELECT * FROM entries WHERE id=:id;" + query = """SELECT *, strftime('%d/%m/%Y', created) AS create_date, + strftime('%d/%m/%Y', edited) AS edit_date FROM entries WHERE id=:id;""" results = request.dbsession.execute(query, {'id':_id}).first() return results def get_last_created(request): # gest the 10 last created posts - query = "SELECT strftime('%d/%m/%Y', created) AS create_date, title, author, status FROM entries WHERE topic_id <> '_admin'" + query = "SELECT strftime('%d/%m/%Y', created) AS create_date, id, title, author, status FROM entries WHERE topic_id <> '_admin'" if request.authenticated_userid == None: # if user is anonym, display only published posts query = query + " AND status='publié'" @@ -74,7 +75,7 @@ def get_tags_byTopic(request, topic): def get_tags_byId(request, id): query = "SELECT * FROM tags WHERE id=:id;" - results = request.dbsession.execute(query, {'topic':id}).first() + results = request.dbsession.execute(query, {'id':id}).first() return results def get_topic_byTopic(request, id): @@ -89,15 +90,69 @@ def get_topics(request): results = request.dbsession.execute(query, {'topic':id}).all() return results -def entries_delete(request, id): +def delete_entry(request, id): query = "DELETE FROM entries WHERE id = :id ;" execute_query(request, query, {'id': id}) -def tags_delete(request, id): +def delete_tag(request, id): query = "DELETE FROM tags WHERE id = :id ;" execute_query(request, query, {'id': id}) -def topics_delete(request, id): - query = "DELETE FROM topics WHERE topic = :id ;" - execute_query(request, query, {'id': id}) +def delete_topic(request, topic): + query = "DELETE FROM topics WHERE topic = :topic ;" + execute_query(request, query, {'topic': topic}) +def update_entry(request, blog_id, new_values): + # formater les champs + s = '' + for param in new_values.keys(): + if s: + s += ",%s=:%s" % (param, param) + else: + s = "%s=:%s" % (param, param) + + import pdb;pdb.set_trace() + if blog_id == '0': + query = """INSERT INTO entries (title, body, created, edited, topic_id, tag, author, status, creator, editor) + VALUES ('{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}', '{8}', '{8}')""".format( + new_values['title'], new_values['body'], new_values['created'], new_values['created'], + new_values['topic_id'], new_values['tag'], new_values['author'], new_values['status'], + new_values['editor'], new_values['editor'],) + else: + new_values['id'] = blog_id + query = "UPDATE entries SET %s WHERE id = :id;" % s + execute_query(request, query, new_values) + +def update_tag(request, id, new_values): + # formater les champs + s = '' + for param in new_values.keys(): + if s: + s += ",%s=:%s" % (param, param) + else: + s = "%s=:%s" % (param, param) + + if id == '0': + query = "INSERT INTO tags (topic, tag, tag_name) VALUES ('{0}', '{1}', '{2}')".format( + new_values['topic'], new_values['tag'], new_values['tag_name']) + else: + new_values['id'] = id + query = "UPDATE tags SET %s WHERE id = :id;" % s + execute_query(request, query, new_values) + +def update_topic(request, topic, new_values): + # formater les champs + s = '' + for param in new_values.keys(): + if s: + s += ",%s=:%s" % (param, param) + else: + s = "%s=:%s" % (param, param) + + if topic == '0': + query = "INSERT INTO topics (topic, topic_name, topic_quote) VALUES ('{0}', '{1}', '{2}')".format( + topic, new_values['topic_name'], new_values['topic_quote']) + else: + new_values['topic'] = topic + query = "UPDATE topics SET %s WHERE topic = :topic;" % s + execute_query(request, query, new_values) diff --git a/cao_sunyata/models/users.py b/cao_sunyata/models/users.py index 17208a2..cf37c26 100644 --- a/cao_sunyata/models/users.py +++ b/cao_sunyata/models/users.py @@ -42,7 +42,6 @@ def update_user(request, name, new_values): else: s = "%s=:%s" % (param, param) - import pdb;pdb.set_trace() if name == '0': query = "INSERT INTO users (name, password) VALUES ('{0}', '{1}')".format(new_values['name'], new_values['password']) else: @@ -50,8 +49,8 @@ def update_user(request, name, new_values): query = "UPDATE users SET %s WHERE name = :name;" % s execute_query(request, query, new_values) -def update_last_connection(request, id): +def update_last_connection(request, id, password_hash): """Update last connection for login """ last_logged = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') - query = "UPDATE users SET last_logged = '" + last_logged + "' WHERE id=:id;" - execute_query(request, query, {'id': id}) + query = "UPDATE users SET last_logged=:last_logged, password=:password_hash WHERE id=:id;" + execute_query(request, query, {'id': id, 'last_logged': last_logged, 'password_hash': password_hash}) diff --git a/cao_sunyata/templates/blog.jinja2 b/cao_sunyata/templates/blog.jinja2 index 6feb64d..0448619 100644 --- a/cao_sunyata/templates/blog.jinja2 +++ b/cao_sunyata/templates/blog.jinja2 @@ -19,7 +19,7 @@

Auteur : {{ entry.author }}
- Publié le : {{ entry.created.strftime("%d-%m-%Y - %H:%M") }}
+ Publié le : {{ entry.create_date }}
{% if request.authenticated_userid %} Topic - Tag : {{ entry.topic_id }} - {{ entry.tag }}
Statut : {{ entry.status }} diff --git a/cao_sunyata/templates/blog_edit.jinja2 b/cao_sunyata/templates/blog_edit.jinja2 index 16c5367..c9ff9ff 100644 --- a/cao_sunyata/templates/blog_edit.jinja2 +++ b/cao_sunyata/templates/blog_edit.jinja2 @@ -4,46 +4,54 @@

- {% for error in form.title.errors %} -
{{ error }}
- {% endfor %}
- - {{ form.title(class_='form-control') }} -
- - {% for error in form.body.errors %} -
{{ error }}
- {% endfor %} -
- - {{ form.body(class_='form-control monospace-font', cols="35", rows="20") }} + +
- - {{ form.tag(class_='form-control') }} + +
- - {{ form.author(class_='form-control') }} + +
- - {{ form.status(class_='form-control') }} + +
- - {{ form.created(class_='form-control') }} + + +
+ +
+ +

Topic : {{ entry.topic_id }}
{% if blog_id != '0' %} - Modifié le : {{ entry.edited.strftime("%d-%m-%Y - %H:%M") }} + Modifié le : {{ entry.edit_date }} {% endif %}


diff --git a/cao_sunyata/templates/blog_search.jinja2 b/cao_sunyata/templates/blog_search.jinja2 index d237e59..f56ed4f 100644 --- a/cao_sunyata/templates/blog_search.jinja2 +++ b/cao_sunyata/templates/blog_search.jinja2 @@ -7,17 +7,14 @@
- {{ form.criteria(class_='form-control') }} +
- {% for error in form.criteria.errors %} -
{{ error }}
- {% endfor %} -
+
@@ -35,12 +32,12 @@ {% for entry in items %} - + {{ entry.title }} {{ entry.tag }} - {{ entry.edited.strftime("%d-%m-%Y - %H:%M") }} + {{ entry.edit_date }} {% endfor %} diff --git a/cao_sunyata/templates/home.jinja2 b/cao_sunyata/templates/home.jinja2 index cca4c88..873346a 100644 --- a/cao_sunyata/templates/home.jinja2 +++ b/cao_sunyata/templates/home.jinja2 @@ -78,7 +78,7 @@ {{ entry.create_date }} - {{ entry.title }} + {{ entry.title }} {{ entry.author }} {% if entry.status == 'brouillon' %} diff --git a/cao_sunyata/templates/settings.jinja2 b/cao_sunyata/templates/settings.jinja2 index 9ee7879..0be476e 100644 --- a/cao_sunyata/templates/settings.jinja2 +++ b/cao_sunyata/templates/settings.jinja2 @@ -43,7 +43,7 @@ {{ entry.edit_date }} {{ entry.editor }} - {{ entry.title }} + {{ entry.title }} {{ entry.tag }} {% if entry.status == 'brouillon' %} diff --git a/cao_sunyata/templates/tag_edit.jinja2 b/cao_sunyata/templates/tag_edit.jinja2 index 29b2d62..0034226 100644 --- a/cao_sunyata/templates/tag_edit.jinja2 +++ b/cao_sunyata/templates/tag_edit.jinja2 @@ -2,24 +2,16 @@ {% block content %} -
- - {% for error in form.tag.errors %} -
{{ error }}
- {% endfor %} +
- - {{form.tag(class_='form-control')}} + +
- {% for error in form.tag_name.errors %} -
{{error}}
- {% endfor %} -
- - {{form.tag_name(class_='form-control')}} + +
@@ -27,7 +19,7 @@ Retour - {% if form.id.data %} + {% if entry.tag != '0' %} {% endif %} @@ -46,7 +38,7 @@