initial upload

This commit is contained in:
2022-04-21 13:49:31 +02:00
parent fc93b5552a
commit e3d4616e62
51 changed files with 1677 additions and 54 deletions

View File

View File

@@ -0,0 +1,56 @@
import sqlalchemy as sa
import datetime #<- will be used to set default dates on models
from paginate_sqlalchemy import SqlalchemyOrmPage #<- provides pagination
from ..models.blog_record import BlogRecord
from markdown2 import Markdown
class BlogRecordService(object):
@classmethod
def all(cls, request):
query = request.dbsession.query(BlogRecord)
return query.order_by(sa.desc(BlogRecord.created))
@classmethod
def by_id(cls, request, _id):
query = request.dbsession.query(BlogRecord)
return query.get(_id)
@classmethod
def get_paginator(cls, request, page=1):
query = request.dbsession.query(BlogRecord)
query = query.order_by(sa.desc(BlogRecord.created))
query_params = request.GET.mixed()
def url_maker(link_page):
# replace page param with values generated by paginator
query_params['page'] = link_page
return request.current_route_url(_query=query_params)
return SqlalchemyOrmPage(query, page, items_per_page=5,
url_maker=url_maker)
@classmethod
def proc_after_create(cls, request, _id):
entry = request.dbsession.query(BlogRecord).get(_id)
# set default values
if entry.tag == '':
entry.tag = 'pyramid'
if entry.topic == '':
entry.topic = 'blog'
# convertir mardown en HTML
markdowner = Markdown()
entry.body_html = markdowner.convert(entry.body)
return
@classmethod
def proc_after_update(cls, request, _id):
entry = request.dbsession.query(BlogRecord).get(_id)
entry.edited = datetime.datetime.now()
# convertir mardown en HTML
markdowner = Markdown()
entry.body_html = markdowner.convert(entry.body)
return

View File

@@ -0,0 +1,32 @@
import sqlalchemy as sa
from ..models.user import User
class UserService(object):
@classmethod
def all(cls, request):
items = request.dbsession.query(User).order_by(sa.asc(User.name)).all()
return items
@classmethod
def by_name(cls, request, name ):
item = request.dbsession.query(User).filter(User.name == name).first()
return item
@classmethod
def delete(cls, request, id):
request.dbsession.query(User).filter(User.id == id).delete(synchronize_session=False)
return
def groupfinder(userid, request):
if userid:
# user name is 'admin' ?
if userid == 'admin':
return ['group:administrators']
else:
return [] # it means that userid is logged in
else:
# it returns None if userid isn't logged in
return None