diff --git a/cao_blogr.sqlite b/cao_blogr.sqlite index 2a7fbe0..d5a11ea 100644 Binary files a/cao_blogr.sqlite and b/cao_blogr.sqlite differ diff --git a/cao_blogr/alembic/versions/20220505_5ad5927ad64d.py b/cao_blogr/alembic/versions/20220505_5ad5927ad64d.py new file mode 100644 index 0000000..35393b4 --- /dev/null +++ b/cao_blogr/alembic/versions/20220505_5ad5927ad64d.py @@ -0,0 +1,30 @@ +"""init + +Revision ID: 5ad5927ad64d +Revises: 1a99bede8b76 +Create Date: 2022-05-05 15:49:10.984878 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '5ad5927ad64d' +down_revision = '1a99bede8b76' +branch_labels = None +depends_on = None + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('entries', sa.Column('author', sa.UnicodeText(), nullable=True)) + op.drop_column('entries', 'title_url') + op.drop_column('entries', 'body_html') + # ### end Alembic commands ### + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('entries', sa.Column('body_html', sa.TEXT(), nullable=True)) + op.add_column('entries', sa.Column('title_url', sa.VARCHAR(length=255), nullable=True)) + op.drop_column('entries', 'author') + # ### end Alembic commands ### diff --git a/cao_blogr/models/blog_record.py b/cao_blogr/models/blog_record.py index 7db516b..b3450da 100644 --- a/cao_blogr/models/blog_record.py +++ b/cao_blogr/models/blog_record.py @@ -19,11 +19,10 @@ class BlogRecord(Base): __tablename__ = 'entries' id = Column(Integer, primary_key=True) title = Column(Unicode(255), unique=True, nullable=False) - title_url = Column(Unicode(255)) body = Column(UnicodeText, default='') - body_html = Column(UnicodeText, default='') - created = Column(DateTime, default=datetime.datetime.utcnow) - edited = Column(DateTime, default=datetime.datetime.utcnow) + author = Column(Unicode(30), default='') + created = Column(DateTime, default=datetime.datetime.now) + edited = Column(DateTime, default=datetime.datetime.now) topic_id = Column(ForeignKey('topics.topic'), nullable=False) topic = relationship('Topics', backref='topic_pages') @@ -35,7 +34,7 @@ class BlogRecord(Base): @property def created_in_words(self): - return distance_of_time_in_words(self.created, datetime.datetime.utcnow()) + return distance_of_time_in_words(self.created, datetime.datetime.now()) class Topics(Base): diff --git a/cao_blogr/services/blog_record.py b/cao_blogr/services/blog_record.py index 7a37a3a..212f0f6 100644 --- a/cao_blogr/services/blog_record.py +++ b/cao_blogr/services/blog_record.py @@ -49,11 +49,8 @@ class BlogRecordService(object): query = request.dbsession.query(Topics).filter(Topics.topic == id).first() return query.topic_name.upper() - @classmethod - def proc_after_update(cls, request, _id): - entry = request.dbsession.query(BlogRecord).get(_id) - entry.edited = datetime.datetime.now() - entry.title_url = entry.slug + def delete(cls, request, id): + request.dbsession.query(BlogRecord).filter(BlogRecord.id == id).delete(synchronize_session=False) return diff --git a/cao_blogr/views/blog.py b/cao_blogr/views/blog.py index 8634a76..ed07acf 100644 --- a/cao_blogr/views/blog.py +++ b/cao_blogr/views/blog.py @@ -1,6 +1,7 @@ from pyramid.view import view_config from pyramid.httpexceptions import HTTPNotFound, HTTPFound from markdown2 import Markdown +import datetime #<- will be used to set default dates on models from ..models.blog_record import BlogRecord from ..services.blog_record import BlogRecordService @@ -61,7 +62,6 @@ def blog_edit(request): if 'form.submitted' in request.params and form.validate(): if blog_id == '0': form.populate_obj(entry) - entry.title_url = entry.slug entry.topic_id = topic request.dbsession.add(entry) @@ -70,12 +70,14 @@ def blog_edit(request): else: del form.id # SECURITY: prevent overwriting of primary key form.populate_obj(entry) - - # after update procedure - BlogRecordService.proc_after_update(request, blog_id) - + entry.edited = datetime.datetime.now() return HTTPFound(location=request.route_url('blog', id=entry.id, slug=entry.slug)) + if 'form.deleted' in request.params: + BlogRecordService.delete(request, blog_id) + request.session.flash("La page a été supprimée avec succès.", 'success') + return HTTPFound(location=request.route_url('topic', topic=topic)) + return { 'page_title': entry.title, 'url': url,