initial upload
This commit is contained in:
0
cao_blogr/services/__init__.py
Normal file
0
cao_blogr/services/__init__.py
Normal file
56
cao_blogr/services/blog_record.py
Normal file
56
cao_blogr/services/blog_record.py
Normal 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
|
||||
|
||||
32
cao_blogr/services/user.py
Normal file
32
cao_blogr/services/user.py
Normal 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
|
||||
Reference in New Issue
Block a user