Fix flake8
This commit is contained in:
@@ -1,7 +1,5 @@
|
|||||||
__author__ = 'RemiZOffAlex'
|
__author__ = 'RemiZOffAlex'
|
||||||
__copyright__ = '(c) RemiZOffAlex'
|
__copyright__ = '(c) RemiZOffAlex'
|
||||||
__license__ = 'MIT'
|
|
||||||
__email__ = 'remizoffalex@mail.ru'
|
__email__ = 'remizoffalex@mail.ru'
|
||||||
__url__ = 'https://remizoffalex.ru'
|
|
||||||
|
|
||||||
CONFIG = 'config.demo'
|
CONFIG = 'config.demo'
|
||||||
|
|||||||
@@ -1,11 +1,8 @@
|
|||||||
__author__ = 'RemiZOffAlex'
|
__author__ = 'RemiZOffAlex'
|
||||||
__copyright__ = '(c) RemiZOffAlex'
|
__copyright__ = '(c) RemiZOffAlex'
|
||||||
__license__ = 'MIT'
|
|
||||||
__email__ = 'remizoffalex@mail.ru'
|
__email__ = 'remizoffalex@mail.ru'
|
||||||
__url__ = 'https://remizoffalex.ru'
|
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import sys
|
|
||||||
|
|
||||||
# Конфигурация
|
# Конфигурация
|
||||||
DEBUG = True
|
DEBUG = True
|
||||||
|
|||||||
@@ -5,6 +5,6 @@ server {
|
|||||||
error_log /var/log/nginx/myapp-error.log info;
|
error_log /var/log/nginx/myapp-error.log info;
|
||||||
location / {
|
location / {
|
||||||
include uwsgi_params;
|
include uwsgi_params;
|
||||||
uwsgi_pass unix:///var/run/uwsgi/myapp.sock;
|
uwsgi_pass unix:///run/uwsgi/myapp.sock;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
__author__ = 'RemiZOffAlex'
|
__author__ = 'RemiZOffAlex'
|
||||||
__copyright__ = '(c) RemiZOffAlex'
|
__copyright__ = '(c) RemiZOffAlex'
|
||||||
__license__ = 'MIT'
|
|
||||||
__email__ = 'remizoffalex@mail.ru'
|
__email__ = 'remizoffalex@mail.ru'
|
||||||
__url__ = 'https://remizoffalex.ru'
|
|
||||||
|
|
||||||
import config
|
import config
|
||||||
import logging
|
import logging
|
||||||
@@ -28,6 +26,7 @@ app.logger.addHandler(handler)
|
|||||||
|
|
||||||
from . import lib, models
|
from . import lib, models
|
||||||
|
|
||||||
|
|
||||||
@app.context_processor
|
@app.context_processor
|
||||||
def inject_data():
|
def inject_data():
|
||||||
result = {}
|
result = {}
|
||||||
@@ -38,29 +37,30 @@ def inject_data():
|
|||||||
|
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
@app.teardown_appcontext
|
@app.teardown_appcontext
|
||||||
def shutdown_session(exception=None):
|
def shutdown_session(exception=None):
|
||||||
models.db_session.close_all()
|
models.db_session.close_all()
|
||||||
|
|
||||||
# API
|
# API
|
||||||
from . import ns_api
|
from . import ns_api # noqa F401
|
||||||
|
|
||||||
# Авторизация
|
# Авторизация
|
||||||
from . import ns_login
|
from . import ns_login # noqa F401
|
||||||
|
|
||||||
# Заметки
|
# Заметки
|
||||||
from . import ns_note
|
from . import ns_note # noqa F401
|
||||||
|
|
||||||
# Статьи
|
# Статьи
|
||||||
from . import ns_page
|
from . import ns_page # noqa F401
|
||||||
|
|
||||||
# Профиль
|
# Профиль
|
||||||
from . import ns_profile
|
from . import ns_profile # noqa F401
|
||||||
|
|
||||||
# Метки
|
# Метки
|
||||||
from . import ns_tag
|
from . import ns_tag # noqa F401
|
||||||
|
|
||||||
# Пользователи
|
# Пользователи
|
||||||
from . import ns_user
|
from . import ns_user # noqa F401
|
||||||
|
|
||||||
from . import views
|
from . import views # noqa F401
|
||||||
|
|||||||
@@ -2,9 +2,7 @@
|
|||||||
|
|
||||||
__author__ = 'RemiZOffAlex'
|
__author__ = 'RemiZOffAlex'
|
||||||
__copyright__ = '(c) RemiZOffAlex'
|
__copyright__ = '(c) RemiZOffAlex'
|
||||||
__license__ = 'MIT'
|
|
||||||
__email__ = 'remizoffalex@mail.ru'
|
__email__ = 'remizoffalex@mail.ru'
|
||||||
__url__ = 'http://remizoffalex.ru'
|
|
||||||
|
|
||||||
import datetime
|
import datetime
|
||||||
|
|
||||||
@@ -21,7 +19,7 @@ def login_required(func):
|
|||||||
user = models.db_session.query(
|
user = models.db_session.query(
|
||||||
models.User
|
models.User
|
||||||
).filter(
|
).filter(
|
||||||
models.User.id==session['user_id']
|
models.User.id == session['user_id']
|
||||||
).first()
|
).first()
|
||||||
if user:
|
if user:
|
||||||
user.last_activity = datetime.datetime.now()
|
user.last_activity = datetime.datetime.now()
|
||||||
|
|||||||
@@ -1,10 +0,0 @@
|
|||||||
__author__ = 'RemiZOffAlex'
|
|
||||||
__copyright__ = '(c) RemiZOffAlex'
|
|
||||||
__license__ = 'MIT'
|
|
||||||
__email__ = 'remizoffalex@mail.ru'
|
|
||||||
__url__ = 'https://remizoffalex.ru'
|
|
||||||
|
|
||||||
from .users import LoginForm
|
|
||||||
from .page import PageEdit
|
|
||||||
|
|
||||||
__all__ = []
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
__author__ = 'RemiZOffAlex'
|
|
||||||
__copyright__ = '(c) RemiZOffAlex'
|
|
||||||
__license__ = 'MIT'
|
|
||||||
__email__ = 'remizoffalex@mail.ru'
|
|
||||||
__url__ = 'https://remizoffalex.ru'
|
|
||||||
|
|
||||||
from wtforms import (
|
|
||||||
Form,
|
|
||||||
TextField,
|
|
||||||
TextAreaField
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
class PageEdit(Form):
|
|
||||||
title = TextField('Заголовок')
|
|
||||||
text = TextAreaField('Текст')
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
__author__ = 'RemiZOffAlex'
|
|
||||||
__copyright__ = '(c) RemiZOffAlex'
|
|
||||||
__license__ = 'MIT'
|
|
||||||
__email__ = 'remizoffalex@mail.ru'
|
|
||||||
__url__ = 'https://remizoffalex.ru'
|
|
||||||
|
|
||||||
from wtforms import Form, TextField, PasswordField
|
|
||||||
|
|
||||||
|
|
||||||
class LoginForm(Form):
|
|
||||||
username = TextField('Имя пользователя')
|
|
||||||
password = PasswordField('Пароль')
|
|
||||||
@@ -1,12 +1,10 @@
|
|||||||
__author__ = 'RemiZOffAlex'
|
__author__ = 'RemiZOffAlex'
|
||||||
__copyright__ = '(c) RemiZOffAlex'
|
__copyright__ = '(c) RemiZOffAlex'
|
||||||
__license__ = 'MIT'
|
|
||||||
__email__ = 'remizoffalex@mail.ru'
|
__email__ = 'remizoffalex@mail.ru'
|
||||||
__url__ = 'https://remizoffalex.ru'
|
|
||||||
|
|
||||||
from .pagination import Pagination, getpage
|
from .pagination import Pagination, getpage # noqa F401
|
||||||
from .passwd import pwgen, get_hash_password
|
from .passwd import pwgen, get_hash_password # noqa F401
|
||||||
from .storage import gettree, gethashtree
|
from .storage import gettree, gethashtree # noqa F401
|
||||||
from .info import get_user
|
from .info import get_user # noqa F401
|
||||||
|
|
||||||
__all__ = []
|
__all__ = []
|
||||||
|
|||||||
@@ -1,22 +1,20 @@
|
|||||||
__author__ = 'RemiZOffAlex'
|
__author__ = 'RemiZOffAlex'
|
||||||
__copyright__ = '(c) RemiZOffAlex'
|
__copyright__ = '(c) RemiZOffAlex'
|
||||||
__license__ = 'MIT'
|
|
||||||
__email__ = 'remizoffalex@mail.ru'
|
__email__ = 'remizoffalex@mail.ru'
|
||||||
__url__ = 'https://remizoffalex.ru'
|
|
||||||
|
|
||||||
from flask import session, request
|
from flask import session
|
||||||
from .. import app, models
|
from .. import models
|
||||||
|
|
||||||
|
|
||||||
def get_user():
|
def get_user():
|
||||||
"""
|
"""Получить текущего пользователя
|
||||||
Получить текущего пользователя
|
|
||||||
"""
|
"""
|
||||||
result = None
|
result = None
|
||||||
if 'user_id' in session:
|
if 'user_id' in session:
|
||||||
result = models.db_session.query(
|
result = models.db_session.query(
|
||||||
models.User
|
models.User
|
||||||
).filter(
|
).filter(
|
||||||
models.User.id==session['user_id']
|
models.User.id == session['user_id']
|
||||||
).first()
|
).first()
|
||||||
if result is None:
|
if result is None:
|
||||||
session.pop('logged_in', None)
|
session.pop('logged_in', None)
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
__author__ = 'RemiZOffAlex'
|
__author__ = 'RemiZOffAlex'
|
||||||
__copyright__ = '(c) RemiZOffAlex'
|
__copyright__ = '(c) RemiZOffAlex'
|
||||||
__license__ = 'MIT'
|
|
||||||
__email__ = 'remizoffalex@mail.ru'
|
__email__ = 'remizoffalex@mail.ru'
|
||||||
__url__ = 'https://remizoffalex.ru'
|
|
||||||
|
|
||||||
from math import ceil
|
from math import ceil
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,14 @@
|
|||||||
__author__ = 'RemiZOffAlex'
|
__author__ = 'RemiZOffAlex'
|
||||||
__copyright__ = '(c) RemiZOffAlex'
|
__copyright__ = '(c) RemiZOffAlex'
|
||||||
__license__ = 'MIT'
|
|
||||||
__email__ = 'remizoffalex@mail.ru'
|
__email__ = 'remizoffalex@mail.ru'
|
||||||
__url__ = 'https://remizoffalex.ru'
|
|
||||||
|
|
||||||
import uuid
|
import uuid
|
||||||
import random
|
import random
|
||||||
import hashlib
|
import hashlib
|
||||||
|
|
||||||
|
|
||||||
def pwgen(length=15, hex=False):
|
def pwgen(length=15, hex=False):
|
||||||
"""
|
"""Генератор пароля
|
||||||
Генератор пароля
|
|
||||||
"""
|
"""
|
||||||
keylist = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
|
keylist = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
|
||||||
if hex:
|
if hex:
|
||||||
@@ -22,9 +20,9 @@ def pwgen(length=15, hex=False):
|
|||||||
password.append(a_char)
|
password.append(a_char)
|
||||||
return ''.join(password)
|
return ''.join(password)
|
||||||
|
|
||||||
|
|
||||||
def get_hash_password(password, salt=None):
|
def get_hash_password(password, salt=None):
|
||||||
"""
|
"""Получить хеш пароля SHA-512
|
||||||
Получить хеш пароля SHA-512
|
|
||||||
"""
|
"""
|
||||||
if salt is None:
|
if salt is None:
|
||||||
salt = uuid.uuid4().hex
|
salt = uuid.uuid4().hex
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
__author__ = 'RemiZOffAlex'
|
__author__ = 'RemiZOffAlex'
|
||||||
__copyright__ = '(c) RemiZOffAlex'
|
__copyright__ = '(c) RemiZOffAlex'
|
||||||
__license__ = 'MIT'
|
|
||||||
__email__ = 'remizoffalex@mail.ru'
|
__email__ = 'remizoffalex@mail.ru'
|
||||||
__url__ = 'https://remizoffalex.ru'
|
|
||||||
|
|
||||||
def gettree(number, count=3):
|
def gettree(number, count=3):
|
||||||
"""
|
"""
|
||||||
@@ -16,6 +15,7 @@ def gettree(number, count=3):
|
|||||||
result.append(newline[i*count:i*count+count])
|
result.append(newline[i*count:i*count+count])
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
def gethashtree(hash, count=3):
|
def gethashtree(hash, count=3):
|
||||||
"""
|
"""
|
||||||
Сформировать дерево каталогов
|
Сформировать дерево каталогов
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
__author__ = 'RemiZOffAlex'
|
__author__ = 'RemiZOffAlex'
|
||||||
__copyright__ = '(c) RemiZOffAlex'
|
__copyright__ = '(c) RemiZOffAlex'
|
||||||
__license__ = 'MIT'
|
|
||||||
__email__ = 'remizoffalex@mail.ru'
|
__email__ = 'remizoffalex@mail.ru'
|
||||||
__url__ = 'https://remizoffalex.ru'
|
|
||||||
|
|
||||||
from sqlalchemy import create_engine
|
from sqlalchemy import create_engine
|
||||||
from sqlalchemy.orm import scoped_session, sessionmaker
|
from sqlalchemy.orm import scoped_session, sessionmaker
|
||||||
@@ -25,16 +23,16 @@ Base = declarative_base()
|
|||||||
Base.query = db_session.query_property()
|
Base.query = db_session.query_property()
|
||||||
|
|
||||||
# Пользователи
|
# Пользователи
|
||||||
from .users import User
|
from .users import User # noqa F401
|
||||||
|
|
||||||
# Метки
|
# Метки
|
||||||
from .tag import Tag
|
from .tag import Tag # noqa F401
|
||||||
|
|
||||||
# Статьи
|
# Статьи
|
||||||
from .page import Page, TagPage
|
from .page import Page, TagPage # noqa F401
|
||||||
|
|
||||||
# Заметки
|
# Заметки
|
||||||
from .note import Note, TagNote
|
from .note import Note, TagNote # noqa F401
|
||||||
|
|
||||||
Base.metadata.create_all(engine)
|
Base.metadata.create_all(engine)
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,9 @@
|
|||||||
__author__ = 'RemiZOffAlex'
|
__author__ = 'RemiZOffAlex'
|
||||||
__copyright__ = '(c) RemiZOffAlex'
|
__copyright__ = '(c) RemiZOffAlex'
|
||||||
__license__ = 'MIT'
|
|
||||||
__email__ = 'remizoffalex@mail.ru'
|
__email__ = 'remizoffalex@mail.ru'
|
||||||
__url__ = 'http://remizoffalex.ru'
|
|
||||||
|
|
||||||
import datetime
|
import datetime
|
||||||
from sqlalchemy import Column, Boolean, Integer, ForeignKey, String, DateTime
|
from sqlalchemy import Column, Integer, ForeignKey, String, DateTime
|
||||||
from sqlalchemy.orm import relationship
|
from sqlalchemy.orm import relationship
|
||||||
|
|
||||||
from . import Base
|
from . import Base
|
||||||
@@ -31,9 +29,8 @@ class Note(Base):
|
|||||||
)
|
)
|
||||||
tags = relationship("TagNote", primaryjoin="Note.id==TagNote.note_id")
|
tags = relationship("TagNote", primaryjoin="Note.id==TagNote.note_id")
|
||||||
|
|
||||||
|
|
||||||
def __init__(self, user, title):
|
def __init__(self, user, title):
|
||||||
assert type(user).__name__=='User', app.logger.info('Не передан объект User')
|
assert type(user).__name__ == 'User', 'Не передан объект User'
|
||||||
self.user_id = user.id
|
self.user_id = user.id
|
||||||
self.title = title
|
self.title = title
|
||||||
self.created = datetime.datetime.now()
|
self.created = datetime.datetime.now()
|
||||||
@@ -56,12 +53,20 @@ class TagNote(Base):
|
|||||||
created = Column(DateTime) # Дата создания
|
created = Column(DateTime) # Дата создания
|
||||||
|
|
||||||
# Связи
|
# Связи
|
||||||
note = relationship("Note", primaryjoin="TagNote.note_id==Note.id", uselist=False)
|
note = relationship(
|
||||||
tag = relationship("Tag", primaryjoin="TagNote.tag_id==Tag.id", uselist=False)
|
"Note",
|
||||||
|
primaryjoin="TagNote.note_id==Note.id",
|
||||||
|
uselist=False
|
||||||
|
)
|
||||||
|
tag = relationship(
|
||||||
|
"Tag",
|
||||||
|
primaryjoin="TagNote.tag_id==Tag.id",
|
||||||
|
uselist=False
|
||||||
|
)
|
||||||
|
|
||||||
def __init__(self, note, tag):
|
def __init__(self, note, tag):
|
||||||
assert type(note).__name__=='Note', app.logger.info('Не передан объект Note')
|
assert type(note).__name__ == 'Note', 'Не передан объект Note'
|
||||||
assert type(tag).__name__=='Tag', app.logger.info('Не передан объект Tag')
|
assert type(tag).__name__ == 'Tag', 'Не передан объект Tag'
|
||||||
self.note_id = note.id
|
self.note_id = note.id
|
||||||
self.tag_id = tag.id
|
self.tag_id = tag.id
|
||||||
self.created = datetime.datetime.now()
|
self.created = datetime.datetime.now()
|
||||||
|
|||||||
@@ -1,19 +1,16 @@
|
|||||||
__author__ = 'RemiZOffAlex'
|
__author__ = 'RemiZOffAlex'
|
||||||
__copyright__ = '(c) RemiZOffAlex'
|
__copyright__ = '(c) RemiZOffAlex'
|
||||||
__license__ = 'MIT'
|
|
||||||
__email__ = 'remizoffalex@mail.ru'
|
__email__ = 'remizoffalex@mail.ru'
|
||||||
__url__ = 'http://remizoffalex.ru'
|
|
||||||
|
|
||||||
import datetime
|
import datetime
|
||||||
from sqlalchemy import Column, Boolean, Integer, ForeignKey, String, DateTime
|
from sqlalchemy import Column, Integer, ForeignKey, String, DateTime
|
||||||
from sqlalchemy.orm import relationship
|
from sqlalchemy.orm import relationship
|
||||||
|
|
||||||
from . import Base
|
from . import Base
|
||||||
|
|
||||||
|
|
||||||
class Page(Base):
|
class Page(Base):
|
||||||
"""
|
"""Страницы
|
||||||
Страницы
|
|
||||||
"""
|
"""
|
||||||
__tablename__ = "page"
|
__tablename__ = "page"
|
||||||
|
|
||||||
@@ -32,9 +29,8 @@ class Page(Base):
|
|||||||
)
|
)
|
||||||
tags = relationship("TagPage", primaryjoin="Page.id==TagPage.page_id")
|
tags = relationship("TagPage", primaryjoin="Page.id==TagPage.page_id")
|
||||||
|
|
||||||
|
|
||||||
def __init__(self, user, title):
|
def __init__(self, user, title):
|
||||||
assert type(user).__name__=='User', app.logger.info('Не передан объект User')
|
assert type(user).__name__ == 'User', 'Не передан объект User'
|
||||||
self.user_id = user.id
|
self.user_id = user.id
|
||||||
self.title = title
|
self.title = title
|
||||||
self.created = datetime.datetime.now()
|
self.created = datetime.datetime.now()
|
||||||
@@ -57,12 +53,20 @@ class TagPage(Base):
|
|||||||
created = Column(DateTime) # Дата создания
|
created = Column(DateTime) # Дата создания
|
||||||
|
|
||||||
# Связи
|
# Связи
|
||||||
page = relationship("Page", primaryjoin="TagPage.page_id==Page.id", uselist=False)
|
page = relationship(
|
||||||
tag = relationship("Tag", primaryjoin="TagPage.tag_id==Tag.id", uselist=False)
|
"Page",
|
||||||
|
primaryjoin="TagPage.page_id==Page.id",
|
||||||
|
uselist=False
|
||||||
|
)
|
||||||
|
tag = relationship(
|
||||||
|
"Tag",
|
||||||
|
primaryjoin="TagPage.tag_id==Tag.id",
|
||||||
|
uselist=False
|
||||||
|
)
|
||||||
|
|
||||||
def __init__(self, page, tag):
|
def __init__(self, page, tag):
|
||||||
assert type(page).__name__=='Page', app.logger.info('Не передан объект Page')
|
assert type(page).__name__ == 'Page', 'Не передан объект Page'
|
||||||
assert type(tag).__name__=='Tag', app.logger.info('Не передан объект Tag')
|
assert type(tag).__name__ == 'Tag', 'Не передан объект Tag'
|
||||||
self.page_id = page.id
|
self.page_id = page.id
|
||||||
self.tag_id = tag.id
|
self.tag_id = tag.id
|
||||||
self.created = datetime.datetime.now()
|
self.created = datetime.datetime.now()
|
||||||
|
|||||||
@@ -6,21 +6,16 @@
|
|||||||
|
|
||||||
__author__ = 'RemiZOffAlex'
|
__author__ = 'RemiZOffAlex'
|
||||||
__copyright__ = '(c) RemiZOffAlex'
|
__copyright__ = '(c) RemiZOffAlex'
|
||||||
__license__ = 'MIT'
|
|
||||||
__email__ = 'remizoffalex@mail.ru'
|
__email__ = 'remizoffalex@mail.ru'
|
||||||
__url__ = 'http://remizoffalex.ru'
|
|
||||||
|
|
||||||
import datetime
|
from sqlalchemy import Column, Integer, String
|
||||||
from sqlalchemy import Column, Integer, ForeignKey, String, DateTime
|
|
||||||
from sqlalchemy.orm import relationship
|
from sqlalchemy.orm import relationship
|
||||||
|
|
||||||
from . import Base
|
from . import Base
|
||||||
from .. import app
|
|
||||||
|
|
||||||
|
|
||||||
class Tag(Base):
|
class Tag(Base):
|
||||||
"""
|
"""Теги, метки
|
||||||
Теги, метки
|
|
||||||
"""
|
"""
|
||||||
__tablename__ = "tag"
|
__tablename__ = "tag"
|
||||||
|
|
||||||
@@ -37,7 +32,6 @@ class Tag(Base):
|
|||||||
return "<Tag('%s')>" % (self.name)
|
return "<Tag('%s')>" % (self.name)
|
||||||
|
|
||||||
def as_dict(self):
|
def as_dict(self):
|
||||||
"""
|
"""Возвращает словарь
|
||||||
Возвращает словарь
|
|
||||||
"""
|
"""
|
||||||
return {c.name: getattr(self, c.name) for c in self.__table__.columns}
|
return {c.name: getattr(self, c.name) for c in self.__table__.columns}
|
||||||
|
|||||||
@@ -1,12 +1,9 @@
|
|||||||
__author__ = 'RemiZOffAlex'
|
__author__ = 'RemiZOffAlex'
|
||||||
__copyright__ = '(c) RemiZOffAlex'
|
__copyright__ = '(c) RemiZOffAlex'
|
||||||
__license__ = 'MIT'
|
|
||||||
__email__ = 'remizoffalex@mail.ru'
|
__email__ = 'remizoffalex@mail.ru'
|
||||||
__url__ = 'https://remizoffalex.ru'
|
|
||||||
|
|
||||||
import datetime
|
import datetime
|
||||||
from sqlalchemy import (
|
from sqlalchemy import (
|
||||||
Table,
|
|
||||||
Column,
|
Column,
|
||||||
Boolean,
|
Boolean,
|
||||||
Integer,
|
Integer,
|
||||||
@@ -20,8 +17,7 @@ from . import Base
|
|||||||
|
|
||||||
|
|
||||||
class User(Base):
|
class User(Base):
|
||||||
"""
|
"""Пользователи
|
||||||
Пользователи
|
|
||||||
"""
|
"""
|
||||||
__tablename__ = "user"
|
__tablename__ = "user"
|
||||||
|
|
||||||
@@ -31,11 +27,16 @@ class User(Base):
|
|||||||
disabled = Column(Boolean, default=True)
|
disabled = Column(Boolean, default=True)
|
||||||
created = Column(DateTime)
|
created = Column(DateTime)
|
||||||
|
|
||||||
|
# Связи
|
||||||
|
pages = relationship("Page", primaryjoin="Page.user_id==User.id")
|
||||||
|
|
||||||
def __init__(self, name):
|
def __init__(self, name):
|
||||||
self.name = name
|
self.name = name
|
||||||
self.created = datetime.datetime.utcnow()
|
self.created = datetime.datetime.utcnow()
|
||||||
|
|
||||||
def as_dict(self):
|
def as_dict(self):
|
||||||
return {c.name: getattr(self, c.name)
|
return {
|
||||||
|
c.name: getattr(self, c.name)
|
||||||
for c in self.__table__.columns
|
for c in self.__table__.columns
|
||||||
if c.name!='password'}
|
if c.name != 'password'
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
__author__ = 'RemiZOffAlex'
|
__author__ = 'RemiZOffAlex'
|
||||||
__copyright__ = '(c) RemiZOffAlex'
|
__copyright__ = '(c) RemiZOffAlex'
|
||||||
__license__ = 'MIT'
|
|
||||||
__email__ = 'remizoffalex@mail.ru'
|
__email__ = 'remizoffalex@mail.ru'
|
||||||
__url__ = 'https://remizoffalex.ru'
|
|
||||||
|
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
from flask_jsonrpc import JSONRPC
|
from flask_jsonrpc import JSONRPC
|
||||||
@@ -10,6 +8,7 @@ from flask import session
|
|||||||
|
|
||||||
from .. import app, models
|
from .. import app, models
|
||||||
|
|
||||||
|
|
||||||
def login_required(func):
|
def login_required(func):
|
||||||
@wraps(func)
|
@wraps(func)
|
||||||
def decorated_function(*args, **kwargs):
|
def decorated_function(*args, **kwargs):
|
||||||
@@ -17,7 +16,7 @@ def login_required(func):
|
|||||||
user = models.db_session.query(
|
user = models.db_session.query(
|
||||||
models.User
|
models.User
|
||||||
).filter(
|
).filter(
|
||||||
models.User.id==session['user_id']
|
models.User.id == session['user_id']
|
||||||
).first()
|
).first()
|
||||||
if user:
|
if user:
|
||||||
return func(*args, **kwargs)
|
return func(*args, **kwargs)
|
||||||
@@ -29,9 +28,10 @@ def login_required(func):
|
|||||||
raise Exception('Необходима авторизация')
|
raise Exception('Необходима авторизация')
|
||||||
return decorated_function
|
return decorated_function
|
||||||
|
|
||||||
|
|
||||||
jsonrpc = JSONRPC(app, '/api')
|
jsonrpc = JSONRPC(app, '/api')
|
||||||
|
|
||||||
from . import (
|
from . import ( # noqa F401
|
||||||
login,
|
login,
|
||||||
note,
|
note,
|
||||||
page,
|
page,
|
||||||
|
|||||||
@@ -2,26 +2,23 @@ __author__ = 'RemiZOffAlex'
|
|||||||
__email__ = 'remizoffalex@mail.ru'
|
__email__ = 'remizoffalex@mail.ru'
|
||||||
__url__ = 'https://remizoffalex.ru/'
|
__url__ = 'https://remizoffalex.ru/'
|
||||||
|
|
||||||
import string
|
|
||||||
|
|
||||||
from flask import session
|
from flask import session
|
||||||
from flask_jsonrpc.exceptions import InvalidRequestError
|
|
||||||
|
|
||||||
from . import jsonrpc
|
from . import jsonrpc
|
||||||
from .. import app, lib, models
|
from .. import app, lib, models
|
||||||
|
|
||||||
|
|
||||||
@jsonrpc.method('login')
|
@jsonrpc.method('login')
|
||||||
def login(username: str, password: str)->bool:
|
def login(username: str, password: str) -> bool:
|
||||||
user = models.db_session.query(
|
user = models.db_session.query(
|
||||||
models.User
|
models.User
|
||||||
).filter(
|
).filter(
|
||||||
models.User.name==username,
|
models.User.name == username,
|
||||||
models.User.password==lib.get_hash_password(
|
models.User.password == lib.get_hash_password(
|
||||||
password,
|
password,
|
||||||
app.config['SECRET_KEY']
|
app.config['SECRET_KEY']
|
||||||
),
|
),
|
||||||
models.User.disabled==False
|
models.User.disabled == False
|
||||||
).first()
|
).first()
|
||||||
if user is None:
|
if user is None:
|
||||||
raise ValueError
|
raise ValueError
|
||||||
|
|||||||
@@ -1,19 +1,18 @@
|
|||||||
__author__ = 'RemiZOffAlex'
|
__author__ = 'RemiZOffAlex'
|
||||||
__email__ = 'remizoffalex@mail.ru'
|
__email__ = 'remizoffalex@mail.ru'
|
||||||
__url__ = 'https://remizoffalex.ru'
|
|
||||||
|
|
||||||
from . import jsonrpc, login_required
|
from . import jsonrpc, login_required
|
||||||
from .. import app, lib, models
|
from .. import app, lib, models
|
||||||
|
|
||||||
|
|
||||||
@jsonrpc.method('note')
|
@jsonrpc.method('note')
|
||||||
def note_id(id: int)->dict:
|
def note_id(id: int) -> dict:
|
||||||
"""Заметка
|
"""Заметка
|
||||||
"""
|
"""
|
||||||
note = models.db_session.query(
|
note = models.db_session.query(
|
||||||
models.Note
|
models.Note
|
||||||
).filter(
|
).filter(
|
||||||
models.Note.id==id
|
models.Note.id == id
|
||||||
).first()
|
).first()
|
||||||
if note is None:
|
if note is None:
|
||||||
raise ValueError
|
raise ValueError
|
||||||
@@ -28,7 +27,7 @@ def note_id(id: int)->dict:
|
|||||||
|
|
||||||
@jsonrpc.method('note.add')
|
@jsonrpc.method('note.add')
|
||||||
@login_required
|
@login_required
|
||||||
def note_add(title: str, body: str)->dict:
|
def note_add(title: str, body: str) -> dict:
|
||||||
"""Добавление новой заметки
|
"""Добавление новой заметки
|
||||||
"""
|
"""
|
||||||
newNote = models.Note(
|
newNote = models.Note(
|
||||||
@@ -47,7 +46,7 @@ def note_add(title: str, body: str)->dict:
|
|||||||
|
|
||||||
@jsonrpc.method('note.destroy')
|
@jsonrpc.method('note.destroy')
|
||||||
@login_required
|
@login_required
|
||||||
def note_destroy(id: int)->bool:
|
def note_destroy(id: int) -> bool:
|
||||||
"""Полное уничтожение заметки
|
"""Полное уничтожение заметки
|
||||||
|
|
||||||
Аргументы:
|
Аргументы:
|
||||||
@@ -56,7 +55,7 @@ def note_destroy(id: int)->bool:
|
|||||||
note = models.db_session.query(
|
note = models.db_session.query(
|
||||||
models.Note
|
models.Note
|
||||||
).filter(
|
).filter(
|
||||||
models.Note.id==id
|
models.Note.id == id
|
||||||
).first()
|
).first()
|
||||||
if note is None:
|
if note is None:
|
||||||
raise ValueError
|
raise ValueError
|
||||||
@@ -69,13 +68,13 @@ def note_destroy(id: int)->bool:
|
|||||||
|
|
||||||
@jsonrpc.method('note.update')
|
@jsonrpc.method('note.update')
|
||||||
@login_required
|
@login_required
|
||||||
def note_update(id: int, title: str, body: str)->dict:
|
def note_update(id: int, title: str, body: str) -> dict:
|
||||||
"""Обновить заметку
|
"""Обновить заметку
|
||||||
"""
|
"""
|
||||||
note = models.db_session.query(
|
note = models.db_session.query(
|
||||||
models.Note
|
models.Note
|
||||||
).filter(
|
).filter(
|
||||||
models.Note.id==id
|
models.Note.id == id
|
||||||
).first()
|
).first()
|
||||||
if note is None:
|
if note is None:
|
||||||
raise ValueError
|
raise ValueError
|
||||||
@@ -92,7 +91,7 @@ def note_update(id: int, title: str, body: str)->dict:
|
|||||||
|
|
||||||
|
|
||||||
@jsonrpc.method('notes')
|
@jsonrpc.method('notes')
|
||||||
def notes_list(page: int)->list:
|
def notes_list(page: int) -> list:
|
||||||
"""Список заметок
|
"""Список заметок
|
||||||
"""
|
"""
|
||||||
notes = models.db_session.query(
|
notes = models.db_session.query(
|
||||||
@@ -118,7 +117,7 @@ def notes_list(page: int)->list:
|
|||||||
|
|
||||||
|
|
||||||
@jsonrpc.method('notes.count')
|
@jsonrpc.method('notes.count')
|
||||||
def notes_count()->int:
|
def notes_count() -> int:
|
||||||
"""Количество заметок
|
"""Количество заметок
|
||||||
"""
|
"""
|
||||||
result = models.db_session.query(
|
result = models.db_session.query(
|
||||||
|
|||||||
@@ -1,19 +1,18 @@
|
|||||||
__author__ = 'RemiZOffAlex'
|
__author__ = 'RemiZOffAlex'
|
||||||
__email__ = 'remizoffalex@mail.ru'
|
__email__ = 'remizoffalex@mail.ru'
|
||||||
__url__ = 'https://remizoffalex.ru'
|
|
||||||
|
|
||||||
from . import jsonrpc, login_required
|
from . import jsonrpc, login_required
|
||||||
from .. import app, lib, models
|
from .. import app, lib, models
|
||||||
|
|
||||||
|
|
||||||
@jsonrpc.method('page')
|
@jsonrpc.method('page')
|
||||||
def page_id(id: int)->dict:
|
def page_id(id: int) -> dict:
|
||||||
"""Статья
|
"""Статья
|
||||||
"""
|
"""
|
||||||
page = models.db_session.query(
|
page = models.db_session.query(
|
||||||
models.Page
|
models.Page
|
||||||
).filter(
|
).filter(
|
||||||
models.Page.id==id
|
models.Page.id == id
|
||||||
).first()
|
).first()
|
||||||
if page is None:
|
if page is None:
|
||||||
raise ValueError
|
raise ValueError
|
||||||
@@ -28,7 +27,7 @@ def page_id(id: int)->dict:
|
|||||||
|
|
||||||
@jsonrpc.method('page.add')
|
@jsonrpc.method('page.add')
|
||||||
@login_required
|
@login_required
|
||||||
def page_add(title: str, body: str)->dict:
|
def page_add(title: str, body: str) -> dict:
|
||||||
"""Добавление новой статьи
|
"""Добавление новой статьи
|
||||||
"""
|
"""
|
||||||
newPage = models.Page(
|
newPage = models.Page(
|
||||||
@@ -47,7 +46,7 @@ def page_add(title: str, body: str)->dict:
|
|||||||
|
|
||||||
@jsonrpc.method('page.destroy')
|
@jsonrpc.method('page.destroy')
|
||||||
@login_required
|
@login_required
|
||||||
def page_destroy(id: int)->bool:
|
def page_destroy(id: int) -> bool:
|
||||||
"""Полное уничтожение статьи
|
"""Полное уничтожение статьи
|
||||||
|
|
||||||
Аргументы:
|
Аргументы:
|
||||||
@@ -56,7 +55,7 @@ def page_destroy(id: int)->bool:
|
|||||||
page = models.db_session.query(
|
page = models.db_session.query(
|
||||||
models.Page
|
models.Page
|
||||||
).filter(
|
).filter(
|
||||||
models.Page.id==id
|
models.Page.id == id
|
||||||
).first()
|
).first()
|
||||||
if page is None:
|
if page is None:
|
||||||
raise ValueError
|
raise ValueError
|
||||||
@@ -69,13 +68,13 @@ def page_destroy(id: int)->bool:
|
|||||||
|
|
||||||
@jsonrpc.method('page.update')
|
@jsonrpc.method('page.update')
|
||||||
@login_required
|
@login_required
|
||||||
def page_update(id: int, title: str, text: str)->dict:
|
def page_update(id: int, title: str, text: str) -> dict:
|
||||||
"""Обновить статью
|
"""Обновить статью
|
||||||
"""
|
"""
|
||||||
page = models.db_session.query(
|
page = models.db_session.query(
|
||||||
models.Page
|
models.Page
|
||||||
).filter(
|
).filter(
|
||||||
models.Page.id==id
|
models.Page.id == id
|
||||||
).first()
|
).first()
|
||||||
if page is None:
|
if page is None:
|
||||||
raise ValueError
|
raise ValueError
|
||||||
@@ -92,7 +91,7 @@ def page_update(id: int, title: str, text: str)->dict:
|
|||||||
|
|
||||||
|
|
||||||
@jsonrpc.method('pages')
|
@jsonrpc.method('pages')
|
||||||
def pages_list(page: int)->list:
|
def pages_list(page: int) -> list:
|
||||||
"""Список статей
|
"""Список статей
|
||||||
"""
|
"""
|
||||||
pages = models.db_session.query(
|
pages = models.db_session.query(
|
||||||
@@ -118,7 +117,7 @@ def pages_list(page: int)->list:
|
|||||||
|
|
||||||
|
|
||||||
@jsonrpc.method('pages.count')
|
@jsonrpc.method('pages.count')
|
||||||
def pages_count()->int:
|
def pages_count() -> int:
|
||||||
"""Общее количество статей
|
"""Общее количество статей
|
||||||
"""
|
"""
|
||||||
result = models.db_session.query(
|
result = models.db_session.query(
|
||||||
|
|||||||
@@ -1,11 +1,9 @@
|
|||||||
__author__ = 'RemiZOffAlex'
|
__author__ = 'RemiZOffAlex'
|
||||||
__copyright__ = '(c) RemiZOffAlex'
|
__copyright__ = '(c) RemiZOffAlex'
|
||||||
__license__ = 'MIT'
|
|
||||||
__email__ = 'remizoffalex@mail.ru'
|
__email__ = 'remizoffalex@mail.ru'
|
||||||
__url__ = 'https://remizoffalex.ru'
|
|
||||||
|
|
||||||
|
|
||||||
from . import (
|
from . import ( # noqa F401
|
||||||
note,
|
note,
|
||||||
page,
|
page,
|
||||||
tag
|
tag
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
__author__ = 'RemiZOffAlex'
|
__author__ = 'RemiZOffAlex'
|
||||||
__copyright__ = '(c) RemiZOffAlex'
|
__copyright__ = '(c) RemiZOffAlex'
|
||||||
__license__ = 'MIT'
|
|
||||||
__email__ = 'remizoffalex@mail.ru'
|
__email__ = 'remizoffalex@mail.ru'
|
||||||
__url__ = 'https://remizoffalex.ru'
|
|
||||||
|
|
||||||
from .. import jsonrpc, login_required
|
from .. import jsonrpc, login_required
|
||||||
from ... import app, lib, models
|
from ... import app, lib, models
|
||||||
@@ -10,29 +8,29 @@ from ... import app, lib, models
|
|||||||
|
|
||||||
@jsonrpc.method('tag.note.add')
|
@jsonrpc.method('tag.note.add')
|
||||||
@login_required
|
@login_required
|
||||||
def tag_note_add(tag: int, id: int)->dict:
|
def tag_note_add(tag: int, id: int) -> dict:
|
||||||
"""Добавление тега в заметку
|
"""Добавление тега в заметку
|
||||||
"""
|
"""
|
||||||
noteRow = models.db_session.query(
|
noteRow = models.db_session.query(
|
||||||
models.Note
|
models.Note
|
||||||
).filter(
|
).filter(
|
||||||
models.Note.id==id,
|
models.Note.id == id,
|
||||||
models.Note.user_id==lib.get_user().id
|
models.Note.user_id == lib.get_user().id
|
||||||
).first()
|
).first()
|
||||||
if noteRow is None:
|
if noteRow is None:
|
||||||
raise ValueError
|
raise ValueError
|
||||||
tagRow = models.db_session.query(
|
tagRow = models.db_session.query(
|
||||||
models.Tag
|
models.Tag
|
||||||
).filter(
|
).filter(
|
||||||
models.Tag.id==tag
|
models.Tag.id == tag
|
||||||
).first()
|
).first()
|
||||||
if tagRow is None:
|
if tagRow is None:
|
||||||
raise ValueError
|
raise ValueError
|
||||||
exist = models.db_session.query(
|
exist = models.db_session.query(
|
||||||
models.TagNote
|
models.TagNote
|
||||||
).filter(
|
).filter(
|
||||||
models.TagNote.tag_id==tagRow.id,
|
models.TagNote.tag_id == tagRow.id,
|
||||||
models.TagNote.note_id==noteRow.id
|
models.TagNote.note_id == noteRow.id
|
||||||
).first()
|
).first()
|
||||||
if exist:
|
if exist:
|
||||||
raise ValueError
|
raise ValueError
|
||||||
@@ -48,29 +46,29 @@ def tag_note_add(tag: int, id: int)->dict:
|
|||||||
|
|
||||||
@jsonrpc.method('tag.note.delete')
|
@jsonrpc.method('tag.note.delete')
|
||||||
@login_required
|
@login_required
|
||||||
def tag_note_delete(tag: int, id: int)->bool:
|
def tag_note_delete(tag: int, id: int) -> bool:
|
||||||
"""Удаление тега из заметки
|
"""Удаление тега из заметки
|
||||||
"""
|
"""
|
||||||
noteRow = models.db_session.query(
|
noteRow = models.db_session.query(
|
||||||
models.Note
|
models.Note
|
||||||
).filter(
|
).filter(
|
||||||
models.Note.id==id,
|
models.Note.id == id,
|
||||||
models.Note.user_id==lib.get_user().id
|
models.Note.user_id == lib.get_user().id
|
||||||
).first()
|
).first()
|
||||||
if noteRow is None:
|
if noteRow is None:
|
||||||
raise ValueError
|
raise ValueError
|
||||||
tagRow = models.db_session.query(
|
tagRow = models.db_session.query(
|
||||||
models.Tag
|
models.Tag
|
||||||
).filter(
|
).filter(
|
||||||
models.Tag.id==tag
|
models.Tag.id == tag
|
||||||
).first()
|
).first()
|
||||||
if tagRow is None:
|
if tagRow is None:
|
||||||
raise ValueError
|
raise ValueError
|
||||||
exist = models.db_session.query(
|
exist = models.db_session.query(
|
||||||
models.TagNote
|
models.TagNote
|
||||||
).filter(
|
).filter(
|
||||||
models.TagNote.tag_id==tag,
|
models.TagNote.tag_id == tag,
|
||||||
models.TagNote.note_id==id
|
models.TagNote.note_id == id
|
||||||
).first()
|
).first()
|
||||||
if exist is None:
|
if exist is None:
|
||||||
raise ValueError
|
raise ValueError
|
||||||
@@ -81,25 +79,25 @@ def tag_note_delete(tag: int, id: int)->bool:
|
|||||||
|
|
||||||
@jsonrpc.method('tag.notes')
|
@jsonrpc.method('tag.notes')
|
||||||
@login_required
|
@login_required
|
||||||
def tag_notes_list(id: int, page: int)->list:
|
def tag_notes_list(id: int, page: int) -> list:
|
||||||
"""Список заметок
|
"""Список заметок
|
||||||
"""
|
"""
|
||||||
tag = models.db_session.query(
|
tag = models.db_session.query(
|
||||||
models.Tag
|
models.Tag
|
||||||
).filter(
|
).filter(
|
||||||
models.Tag.id==id
|
models.Tag.id == id
|
||||||
).first()
|
).first()
|
||||||
if tag is None:
|
if tag is None:
|
||||||
raise ValueError
|
raise ValueError
|
||||||
indexes = models.db_session.query(
|
indexes = models.db_session.query(
|
||||||
models.TagNote.note_id
|
models.TagNote.note_id
|
||||||
).filter(
|
).filter(
|
||||||
models.TagNote.tag_id==id
|
models.TagNote.tag_id == id
|
||||||
)
|
)
|
||||||
notes = models.db_session.query(
|
notes = models.db_session.query(
|
||||||
models.Note
|
models.Note
|
||||||
).filter(
|
).filter(
|
||||||
models.Note.user_id==lib.get_user().id,
|
models.Note.user_id == lib.get_user().id,
|
||||||
models.Note.id.in_(indexes)
|
models.Note.id.in_(indexes)
|
||||||
).order_by(
|
).order_by(
|
||||||
models.Note.title.asc()
|
models.Note.title.asc()
|
||||||
@@ -122,25 +120,25 @@ def tag_notes_list(id: int, page: int)->list:
|
|||||||
|
|
||||||
@jsonrpc.method('tag.notes.count')
|
@jsonrpc.method('tag.notes.count')
|
||||||
@login_required
|
@login_required
|
||||||
def tag_notes_count(id: int)->int:
|
def tag_notes_count(id: int) -> int:
|
||||||
"""Общее количество заметок
|
"""Общее количество заметок
|
||||||
"""
|
"""
|
||||||
tag = models.db_session.query(
|
tag = models.db_session.query(
|
||||||
models.Tag
|
models.Tag
|
||||||
).filter(
|
).filter(
|
||||||
models.Tag.id==id
|
models.Tag.id == id
|
||||||
).first()
|
).first()
|
||||||
if tag is None:
|
if tag is None:
|
||||||
raise ValueError
|
raise ValueError
|
||||||
indexes = models.db_session.query(
|
indexes = models.db_session.query(
|
||||||
models.TagNote.note_id
|
models.TagNote.note_id
|
||||||
).filter(
|
).filter(
|
||||||
models.TagNote.tag_id==id
|
models.TagNote.tag_id == id
|
||||||
)
|
)
|
||||||
result = models.db_session.query(
|
result = models.db_session.query(
|
||||||
models.Note
|
models.Note
|
||||||
).filter(
|
).filter(
|
||||||
models.Note.user_id==lib.get_user().id,
|
models.Note.user_id == lib.get_user().id,
|
||||||
models.Note.id.in_(indexes)
|
models.Note.id.in_(indexes)
|
||||||
).count()
|
).count()
|
||||||
return result
|
return result
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
__author__ = 'RemiZOffAlex'
|
__author__ = 'RemiZOffAlex'
|
||||||
__copyright__ = '(c) RemiZOffAlex'
|
__copyright__ = '(c) RemiZOffAlex'
|
||||||
__license__ = 'MIT'
|
|
||||||
__email__ = 'remizoffalex@mail.ru'
|
__email__ = 'remizoffalex@mail.ru'
|
||||||
__url__ = 'https://remizoffalex.ru'
|
|
||||||
|
|
||||||
from .. import jsonrpc, login_required
|
from .. import jsonrpc, login_required
|
||||||
from ... import app, lib, models
|
from ... import app, lib, models
|
||||||
@@ -10,28 +8,28 @@ from ... import app, lib, models
|
|||||||
|
|
||||||
@jsonrpc.method('tag.page.add')
|
@jsonrpc.method('tag.page.add')
|
||||||
@login_required
|
@login_required
|
||||||
def tag_page_add(tag: int, id: int)->dict:
|
def tag_page_add(tag: int, id: int) -> dict:
|
||||||
"""Добавление тега на страницы
|
"""Добавление тега на страницы
|
||||||
"""
|
"""
|
||||||
tagRow = models.db_session.query(
|
tagRow = models.db_session.query(
|
||||||
models.Tag
|
models.Tag
|
||||||
).filter(
|
).filter(
|
||||||
models.Tag.id==tag
|
models.Tag.id == tag
|
||||||
).first()
|
).first()
|
||||||
if tagRow is None:
|
if tagRow is None:
|
||||||
raise ValueError
|
raise ValueError
|
||||||
page = models.db_session.query(
|
page = models.db_session.query(
|
||||||
models.Page
|
models.Page
|
||||||
).filter(
|
).filter(
|
||||||
models.Page.id==id
|
models.Page.id == id
|
||||||
).first()
|
).first()
|
||||||
if page is None:
|
if page is None:
|
||||||
raise ValueError
|
raise ValueError
|
||||||
exist = models.db_session.query(
|
exist = models.db_session.query(
|
||||||
models.TagPage
|
models.TagPage
|
||||||
).filter(
|
).filter(
|
||||||
models.TagPage.tag_id==tagRow.id,
|
models.TagPage.tag_id == tagRow.id,
|
||||||
models.TagPage.page_id==page.id
|
models.TagPage.page_id == page.id
|
||||||
).first()
|
).first()
|
||||||
if exist:
|
if exist:
|
||||||
raise ValueError
|
raise ValueError
|
||||||
@@ -47,14 +45,14 @@ def tag_page_add(tag: int, id: int)->dict:
|
|||||||
|
|
||||||
@jsonrpc.method('tag.page.delete)')
|
@jsonrpc.method('tag.page.delete)')
|
||||||
@login_required
|
@login_required
|
||||||
def tag_page_delete(tag: int, id: int)->bool:
|
def tag_page_delete(tag: int, id: int) -> bool:
|
||||||
"""Удаление тега со страницы
|
"""Удаление тега со страницы
|
||||||
"""
|
"""
|
||||||
exist = models.db_session.query(
|
exist = models.db_session.query(
|
||||||
models.TagPage
|
models.TagPage
|
||||||
).filter(
|
).filter(
|
||||||
models.TagPage.tag_id==tag,
|
models.TagPage.tag_id == tag,
|
||||||
models.TagPage.page_id==id
|
models.TagPage.page_id == id
|
||||||
).first()
|
).first()
|
||||||
if exist is None:
|
if exist is None:
|
||||||
raise ValueError
|
raise ValueError
|
||||||
@@ -64,20 +62,20 @@ def tag_page_delete(tag: int, id: int)->bool:
|
|||||||
|
|
||||||
|
|
||||||
@jsonrpc.method('tag.pages')
|
@jsonrpc.method('tag.pages')
|
||||||
def tag_pages_list(id: int, page: int)->list:
|
def tag_pages_list(id: int, page: int) -> list:
|
||||||
"""Список статей
|
"""Список статей
|
||||||
"""
|
"""
|
||||||
tag = models.db_session.query(
|
tag = models.db_session.query(
|
||||||
models.Tag
|
models.Tag
|
||||||
).filter(
|
).filter(
|
||||||
models.Tag.id==id
|
models.Tag.id == id
|
||||||
).first()
|
).first()
|
||||||
if tag is None:
|
if tag is None:
|
||||||
raise ValueError
|
raise ValueError
|
||||||
indexes = models.db_session.query(
|
indexes = models.db_session.query(
|
||||||
models.TagPage.page_id
|
models.TagPage.page_id
|
||||||
).filter(
|
).filter(
|
||||||
models.TagPage.tag_id==id
|
models.TagPage.tag_id == id
|
||||||
)
|
)
|
||||||
pages = models.db_session.query(
|
pages = models.db_session.query(
|
||||||
models.Page
|
models.Page
|
||||||
@@ -104,20 +102,20 @@ def tag_pages_list(id: int, page: int)->list:
|
|||||||
|
|
||||||
|
|
||||||
@jsonrpc.method('tag.pages.count')
|
@jsonrpc.method('tag.pages.count')
|
||||||
def tag_pages_count(id: int)->int:
|
def tag_pages_count(id: int) -> int:
|
||||||
"""Общее количество статей
|
"""Общее количество статей
|
||||||
"""
|
"""
|
||||||
tag = models.db_session.query(
|
tag = models.db_session.query(
|
||||||
models.Tag
|
models.Tag
|
||||||
).filter(
|
).filter(
|
||||||
models.Tag.id==id
|
models.Tag.id == id
|
||||||
).first()
|
).first()
|
||||||
if tag is None:
|
if tag is None:
|
||||||
raise ValueError
|
raise ValueError
|
||||||
indexes = models.db_session.query(
|
indexes = models.db_session.query(
|
||||||
models.TagPage.page_id
|
models.TagPage.page_id
|
||||||
).filter(
|
).filter(
|
||||||
models.TagPage.tag_id==id
|
models.TagPage.tag_id == id
|
||||||
)
|
)
|
||||||
result = models.db_session.query(
|
result = models.db_session.query(
|
||||||
models.Page
|
models.Page
|
||||||
|
|||||||
@@ -1,16 +1,14 @@
|
|||||||
__author__ = 'RemiZOffAlex'
|
__author__ = 'RemiZOffAlex'
|
||||||
__copyright__ = '(c) RemiZOffAlex'
|
__copyright__ = '(c) RemiZOffAlex'
|
||||||
__license__ = 'MIT'
|
|
||||||
__email__ = 'remizoffalex@mail.ru'
|
__email__ = 'remizoffalex@mail.ru'
|
||||||
__url__ = 'https://remizoffalex.ru'
|
|
||||||
|
|
||||||
from .. import jsonrpc, login_required
|
from .. import jsonrpc, login_required
|
||||||
from ... import app, lib, models
|
from ... import models
|
||||||
|
|
||||||
|
|
||||||
@jsonrpc.method('tag.add')
|
@jsonrpc.method('tag.add')
|
||||||
@login_required
|
@login_required
|
||||||
def tag_add(name: str)->dict:
|
def tag_add(name: str) -> dict:
|
||||||
"""Добавить новый тег
|
"""Добавить новый тег
|
||||||
"""
|
"""
|
||||||
exist = models.db_session.query(
|
exist = models.db_session.query(
|
||||||
@@ -29,13 +27,13 @@ def tag_add(name: str)->dict:
|
|||||||
|
|
||||||
@jsonrpc.method('tag.delete')
|
@jsonrpc.method('tag.delete')
|
||||||
@login_required
|
@login_required
|
||||||
def tag_delete(id: int)->bool:
|
def tag_delete(id: int) -> bool:
|
||||||
"""Удалить тег
|
"""Удалить тег
|
||||||
"""
|
"""
|
||||||
exist = models.db_session.query(
|
exist = models.db_session.query(
|
||||||
models.Tag
|
models.Tag
|
||||||
).filter(
|
).filter(
|
||||||
models.Tag.id==id
|
models.Tag.id == id
|
||||||
).first()
|
).first()
|
||||||
if exist is None:
|
if exist is None:
|
||||||
raise ValueError
|
raise ValueError
|
||||||
@@ -46,14 +44,14 @@ def tag_delete(id: int)->bool:
|
|||||||
|
|
||||||
|
|
||||||
@jsonrpc.method('tag.exist')
|
@jsonrpc.method('tag.exist')
|
||||||
def tag_exist(name: str)->dict:
|
def tag_exist(name: str) -> dict:
|
||||||
"""Проверить существует ли тег и вернуть информацию о нём
|
"""Проверить существует ли тег и вернуть информацию о нём
|
||||||
"""
|
"""
|
||||||
text = name.lower().strip()
|
text = name.lower().strip()
|
||||||
tagRow = models.db_session.query(
|
tagRow = models.db_session.query(
|
||||||
models.Tag
|
models.Tag
|
||||||
).filter(
|
).filter(
|
||||||
models.Tag.name==text
|
models.Tag.name == text
|
||||||
).first()
|
).first()
|
||||||
if tagRow is None:
|
if tagRow is None:
|
||||||
raise ValueError
|
raise ValueError
|
||||||
@@ -65,7 +63,7 @@ def tag_exist(name: str)->dict:
|
|||||||
|
|
||||||
|
|
||||||
@jsonrpc.method('tags')
|
@jsonrpc.method('tags')
|
||||||
def tags_list()->list:
|
def tags_list() -> list:
|
||||||
"""Список тегов
|
"""Список тегов
|
||||||
"""
|
"""
|
||||||
tags = models.db_session.query(
|
tags = models.db_session.query(
|
||||||
@@ -80,7 +78,7 @@ def tags_list()->list:
|
|||||||
|
|
||||||
|
|
||||||
@jsonrpc.method('tags.groups')
|
@jsonrpc.method('tags.groups')
|
||||||
def tags_groups()->dict:
|
def tags_groups() -> dict:
|
||||||
"""Облако тегов
|
"""Облако тегов
|
||||||
"""
|
"""
|
||||||
tags = models.db_session.query(
|
tags = models.db_session.query(
|
||||||
|
|||||||
@@ -1,28 +1,26 @@
|
|||||||
__author__ = 'RemiZOffAlex'
|
__author__ = 'RemiZOffAlex'
|
||||||
__copyright__ = '(c) RemiZOffAlex'
|
__copyright__ = '(c) RemiZOffAlex'
|
||||||
__license__ = 'MIT'
|
|
||||||
__email__ = 'remizoffalex@mail.ru'
|
__email__ = 'remizoffalex@mail.ru'
|
||||||
__url__ = 'https://remizoffalex.ru'
|
|
||||||
|
|
||||||
from . import jsonrpc, login_required
|
from . import jsonrpc
|
||||||
from .. import app, lib, models
|
from .. import app, lib, models
|
||||||
|
|
||||||
|
|
||||||
@jsonrpc.method('user.pages')
|
@jsonrpc.method('user.pages')
|
||||||
def user_pages_list(id: int, page: int)->list:
|
def user_pages_list(id: int, page: int) -> list:
|
||||||
"""Список статей пользователя
|
"""Список статей пользователя
|
||||||
"""
|
"""
|
||||||
user = models.db_session.query(
|
user = models.db_session.query(
|
||||||
models.User
|
models.User
|
||||||
).filter(
|
).filter(
|
||||||
models.User.id==id
|
models.User.id == id
|
||||||
).first()
|
).first()
|
||||||
if user is None:
|
if user is None:
|
||||||
raise ValueError
|
raise ValueError
|
||||||
pages = models.db_session.query(
|
pages = models.db_session.query(
|
||||||
models.Page
|
models.Page
|
||||||
).filter(
|
).filter(
|
||||||
models.Page.user_id==id
|
models.Page.user_id == id
|
||||||
).order_by(
|
).order_by(
|
||||||
models.Page.title.asc()
|
models.Page.title.asc()
|
||||||
)
|
)
|
||||||
@@ -44,26 +42,26 @@ def user_pages_list(id: int, page: int)->list:
|
|||||||
|
|
||||||
|
|
||||||
@jsonrpc.method('user.pages.count')
|
@jsonrpc.method('user.pages.count')
|
||||||
def user_pages_count(id: int)->int:
|
def user_pages_count(id: int) -> int:
|
||||||
"""Общее количество статей
|
"""Общее количество статей
|
||||||
"""
|
"""
|
||||||
user = models.db_session.query(
|
user = models.db_session.query(
|
||||||
models.User
|
models.User
|
||||||
).filter(
|
).filter(
|
||||||
models.User.id==id
|
models.User.id == id
|
||||||
).first()
|
).first()
|
||||||
if user is None:
|
if user is None:
|
||||||
raise ValueError
|
raise ValueError
|
||||||
result = models.db_session.query(
|
result = models.db_session.query(
|
||||||
models.Page
|
models.Page
|
||||||
).filter(
|
).filter(
|
||||||
models.Page.user_id==id
|
models.Page.user_id == id
|
||||||
).count()
|
).count()
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
@jsonrpc.method('users')
|
@jsonrpc.method('users')
|
||||||
def users_list(page: int)->list:
|
def users_list(page: int) -> list:
|
||||||
"""Показать список пользователей
|
"""Показать список пользователей
|
||||||
"""
|
"""
|
||||||
users = models.db_session.query(
|
users = models.db_session.query(
|
||||||
@@ -82,7 +80,7 @@ def users_list(page: int)->list:
|
|||||||
|
|
||||||
|
|
||||||
@jsonrpc.method('users.count')
|
@jsonrpc.method('users.count')
|
||||||
def users_count()->int:
|
def users_count() -> int:
|
||||||
"""Количество список пользователей
|
"""Количество список пользователей
|
||||||
"""
|
"""
|
||||||
result = models.db_session.query(
|
result = models.db_session.query(
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
__author__ = 'RemiZOffAlex'
|
__author__ = 'RemiZOffAlex'
|
||||||
__copyright__ = '(c) RemiZOffAlex'
|
__copyright__ = '(c) RemiZOffAlex'
|
||||||
__license__ = 'MIT'
|
|
||||||
__email__ = 'remizoffalex@mail.ru'
|
__email__ = 'remizoffalex@mail.ru'
|
||||||
__url__ = 'https://remizoffalex.ru'
|
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import jinja2
|
import jinja2
|
||||||
|
|
||||||
from . import views
|
from . import views # noqa F401
|
||||||
from .. import app
|
from .. import app
|
||||||
|
|
||||||
|
|
||||||
my_loader = jinja2.ChoiceLoader([
|
my_loader = jinja2.ChoiceLoader([
|
||||||
app.jinja_loader,
|
app.jinja_loader,
|
||||||
jinja2.FileSystemLoader(os.path.dirname(os.path.abspath(__file__)) + "/templates"),
|
jinja2.FileSystemLoader(
|
||||||
|
os.path.dirname(os.path.abspath(__file__)) + "/templates"
|
||||||
|
),
|
||||||
])
|
])
|
||||||
app.jinja_loader = my_loader
|
app.jinja_loader = my_loader
|
||||||
|
|||||||
@@ -1,18 +1,15 @@
|
|||||||
__author__ = 'RemiZOffAlex'
|
__author__ = 'RemiZOffAlex'
|
||||||
__copyright__ = '(c) RemiZOffAlex'
|
__copyright__ = '(c) RemiZOffAlex'
|
||||||
__license__ = 'MIT'
|
|
||||||
__email__ = 'remizoffalex@mail.ru'
|
__email__ = 'remizoffalex@mail.ru'
|
||||||
__url__ = 'https://remizoffalex.ru'
|
|
||||||
|
|
||||||
from flask import render_template, escape, request, session, redirect
|
from flask import render_template, session, redirect
|
||||||
|
|
||||||
from .. import app, lib, models
|
from .. import app
|
||||||
|
|
||||||
|
|
||||||
@app.route('/login')
|
@app.route('/login')
|
||||||
def login():
|
def login():
|
||||||
"""
|
"""Вход
|
||||||
Логин
|
|
||||||
"""
|
"""
|
||||||
pagedata = {}
|
pagedata = {}
|
||||||
body = render_template('login.html', pagedata=pagedata)
|
body = render_template('login.html', pagedata=pagedata)
|
||||||
@@ -21,6 +18,8 @@ def login():
|
|||||||
|
|
||||||
@app.route('/logout')
|
@app.route('/logout')
|
||||||
def logout():
|
def logout():
|
||||||
|
"""Выход
|
||||||
|
"""
|
||||||
session.pop('logged_in', None)
|
session.pop('logged_in', None)
|
||||||
session.pop('user_id', None)
|
session.pop('user_id', None)
|
||||||
return redirect("/", code=302)
|
return redirect("/", code=302)
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
__author__ = 'RemiZOffAlex'
|
__author__ = 'RemiZOffAlex'
|
||||||
__copyright__ = '(c) RemiZOffAlex'
|
__copyright__ = '(c) RemiZOffAlex'
|
||||||
__license__ = 'MIT'
|
|
||||||
__email__ = 'remizoffalex@mail.ru'
|
__email__ = 'remizoffalex@mail.ru'
|
||||||
__url__ = 'https://remizoffalex.ru'
|
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import jinja2
|
import jinja2
|
||||||
|
|
||||||
from . import views
|
from . import views # noqa F401
|
||||||
from .. import app
|
from .. import app
|
||||||
|
|
||||||
|
|
||||||
my_loader = jinja2.ChoiceLoader([
|
my_loader = jinja2.ChoiceLoader([
|
||||||
app.jinja_loader,
|
app.jinja_loader,
|
||||||
jinja2.FileSystemLoader(os.path.dirname(os.path.abspath(__file__)) + "/templates"),
|
jinja2.FileSystemLoader(
|
||||||
|
os.path.dirname(os.path.abspath(__file__)) + "/templates"
|
||||||
|
),
|
||||||
])
|
])
|
||||||
app.jinja_loader = my_loader
|
app.jinja_loader = my_loader
|
||||||
|
|||||||
@@ -1,12 +1,10 @@
|
|||||||
__author__ = 'RemiZOffAlex'
|
__author__ = 'RemiZOffAlex'
|
||||||
__copyright__ = '(c) RemiZOffAlex'
|
__copyright__ = '(c) RemiZOffAlex'
|
||||||
__license__ = 'MIT'
|
|
||||||
__email__ = 'remizoffalex@mail.ru'
|
__email__ = 'remizoffalex@mail.ru'
|
||||||
__url__ = 'https://remizoffalex.ru'
|
|
||||||
|
|
||||||
from flask import render_template, escape, request, session, redirect
|
from flask import abort, render_template
|
||||||
|
|
||||||
from .. import app, lib, models
|
from .. import app, models
|
||||||
|
|
||||||
|
|
||||||
@app.route('/note/<int:id>')
|
@app.route('/note/<int:id>')
|
||||||
@@ -15,7 +13,7 @@ def note_id(id):
|
|||||||
note = models.db_session.query(
|
note = models.db_session.query(
|
||||||
models.Note
|
models.Note
|
||||||
).filter(
|
).filter(
|
||||||
models.Note.id==id
|
models.Note.id == id
|
||||||
).first()
|
).first()
|
||||||
if note is None:
|
if note is None:
|
||||||
abort(404)
|
abort(404)
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
__author__ = 'RemiZOffAlex'
|
__author__ = 'RemiZOffAlex'
|
||||||
__copyright__ = '(c) RemiZOffAlex'
|
__copyright__ = '(c) RemiZOffAlex'
|
||||||
__license__ = 'MIT'
|
|
||||||
__email__ = 'remizoffalex@mail.ru'
|
__email__ = 'remizoffalex@mail.ru'
|
||||||
__url__ = 'https://remizoffalex.ru'
|
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import jinja2
|
import jinja2
|
||||||
|
|
||||||
from . import routes
|
from . import routes # noqa F401
|
||||||
from .. import app
|
from .. import app
|
||||||
|
|
||||||
|
|
||||||
my_loader = jinja2.ChoiceLoader([
|
my_loader = jinja2.ChoiceLoader([
|
||||||
app.jinja_loader,
|
app.jinja_loader,
|
||||||
jinja2.FileSystemLoader(os.path.dirname(os.path.abspath(__file__)) + "/templates"),
|
jinja2.FileSystemLoader(
|
||||||
|
os.path.dirname(os.path.abspath(__file__)) + "/templates"
|
||||||
|
),
|
||||||
])
|
])
|
||||||
app.jinja_loader = my_loader
|
app.jinja_loader = my_loader
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ from flask import abort
|
|||||||
|
|
||||||
from . import views_user, views_guest
|
from . import views_user, views_guest
|
||||||
from .. import app, lib
|
from .. import app, lib
|
||||||
from ..decorators import login_required
|
|
||||||
|
|
||||||
|
|
||||||
@app.route('/page/<int:id>')
|
@app.route('/page/<int:id>')
|
||||||
|
|||||||
@@ -2,12 +2,9 @@ __author__ = 'RemiZOffAlex'
|
|||||||
__email__ = 'remizoffalex@mail.ru'
|
__email__ = 'remizoffalex@mail.ru'
|
||||||
__url__ = 'https://remizoffalex.ru/'
|
__url__ = 'https://remizoffalex.ru/'
|
||||||
|
|
||||||
from flask import (
|
from flask import abort, render_template
|
||||||
abort,
|
|
||||||
render_template
|
|
||||||
)
|
|
||||||
|
|
||||||
from .. import app, lib, models
|
from .. import app, models
|
||||||
|
|
||||||
|
|
||||||
def pages(page):
|
def pages(page):
|
||||||
@@ -25,13 +22,12 @@ def pages(page):
|
|||||||
|
|
||||||
|
|
||||||
def page_id(id):
|
def page_id(id):
|
||||||
"""
|
"""Документ
|
||||||
Документ
|
|
||||||
"""
|
"""
|
||||||
page = models.db_session.query(
|
page = models.db_session.query(
|
||||||
models.Page
|
models.Page
|
||||||
).filter(
|
).filter(
|
||||||
models.Page.id==id
|
models.Page.id == id
|
||||||
).first()
|
).first()
|
||||||
if page is None:
|
if page is None:
|
||||||
abort(404)
|
abort(404)
|
||||||
|
|||||||
@@ -2,18 +2,9 @@ __author__ = 'RemiZOffAlex'
|
|||||||
__email__ = 'remizoffalex@mail.ru'
|
__email__ = 'remizoffalex@mail.ru'
|
||||||
__url__ = 'https://remizoffalex.ru/'
|
__url__ = 'https://remizoffalex.ru/'
|
||||||
|
|
||||||
import datetime
|
from flask import abort, render_template
|
||||||
|
|
||||||
from flask import (
|
from .. import app, models
|
||||||
abort,
|
|
||||||
render_template,
|
|
||||||
request,
|
|
||||||
redirect,
|
|
||||||
escape,
|
|
||||||
session
|
|
||||||
)
|
|
||||||
|
|
||||||
from .. import app, lib, models
|
|
||||||
|
|
||||||
|
|
||||||
def pages(page):
|
def pages(page):
|
||||||
@@ -33,17 +24,19 @@ def pages(page):
|
|||||||
|
|
||||||
|
|
||||||
def page_id(id):
|
def page_id(id):
|
||||||
|
"""Статья
|
||||||
"""
|
"""
|
||||||
Статья
|
|
||||||
"""
|
|
||||||
pagedata = {}
|
|
||||||
page = models.db_session.query(
|
page = models.db_session.query(
|
||||||
models.Page
|
models.Page
|
||||||
).filter(
|
).filter(
|
||||||
models.Page.id==id
|
models.Page.id == id
|
||||||
).first()
|
).first()
|
||||||
if page is None:
|
if page is None:
|
||||||
abort(404)
|
abort(404)
|
||||||
|
|
||||||
|
pagedata = {}
|
||||||
|
pagedata['title'] = '{} - {}'.format(page.title, app.config['TITLE'])
|
||||||
|
|
||||||
pagedata['page'] = page.as_dict()
|
pagedata['page'] = page.as_dict()
|
||||||
pagedata['page']['user'] = page.user.as_dict()
|
pagedata['page']['user'] = page.user.as_dict()
|
||||||
|
|
||||||
@@ -60,38 +53,14 @@ def page_id(id):
|
|||||||
return body
|
return body
|
||||||
|
|
||||||
|
|
||||||
def page_id(id):
|
|
||||||
"""Документ"""
|
|
||||||
page = models.db_session.query(
|
|
||||||
models.Page
|
|
||||||
).filter(
|
|
||||||
models.Page.id==id
|
|
||||||
).first()
|
|
||||||
if page is None:
|
|
||||||
abort(404)
|
|
||||||
|
|
||||||
pagedata = {}
|
|
||||||
pagedata['title'] = '{} - {}'.format(page.title, app.config['TITLE'])
|
|
||||||
|
|
||||||
pagedata['page'] = page.as_dict()
|
|
||||||
pagedata['page']['user'] = page.user.as_dict()
|
|
||||||
pagedata['page']['tags'] = []
|
|
||||||
for tagLink in page.tags:
|
|
||||||
pagedata['page']['tags'].append(tagLink.tag.as_dict())
|
|
||||||
|
|
||||||
body = render_template('user/page.html', pagedata=pagedata)
|
|
||||||
return body
|
|
||||||
|
|
||||||
|
|
||||||
def page_edit(id):
|
def page_edit(id):
|
||||||
"""
|
"""Редактирование статьи
|
||||||
Редактирование статьи
|
|
||||||
"""
|
"""
|
||||||
pagedata = {'title': app.config['TITLE']}
|
pagedata = {'title': app.config['TITLE']}
|
||||||
page = models.db_session.query(
|
page = models.db_session.query(
|
||||||
models.Page
|
models.Page
|
||||||
).filter(
|
).filter(
|
||||||
models.Page.id==id
|
models.Page.id == id
|
||||||
).first()
|
).first()
|
||||||
if page is None:
|
if page is None:
|
||||||
abort(404)
|
abort(404)
|
||||||
@@ -102,7 +71,8 @@ def page_edit(id):
|
|||||||
|
|
||||||
|
|
||||||
def page_add():
|
def page_add():
|
||||||
"""Добавление нового документа"""
|
"""Добавление нового документа
|
||||||
|
"""
|
||||||
pagedata = {}
|
pagedata = {}
|
||||||
pagedata['title'] = 'Новый документ - ' + app.config['TITLE']
|
pagedata['title'] = 'Новый документ - ' + app.config['TITLE']
|
||||||
body = render_template('user/page_add.html', pagedata=pagedata)
|
body = render_template('user/page_add.html', pagedata=pagedata)
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
__author__ = 'RemiZOffAlex'
|
__author__ = 'RemiZOffAlex'
|
||||||
__copyright__ = '(c) RemiZOffAlex'
|
__copyright__ = '(c) RemiZOffAlex'
|
||||||
__license__ = 'MIT'
|
|
||||||
__email__ = 'remizoffalex@mail.ru'
|
__email__ = 'remizoffalex@mail.ru'
|
||||||
__url__ = 'http://remizoffalex.ru'
|
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import jinja2
|
import jinja2
|
||||||
|
|
||||||
from . import views
|
from . import views # noqa F401
|
||||||
from .. import app
|
from .. import app
|
||||||
|
|
||||||
|
|
||||||
my_loader = jinja2.ChoiceLoader([
|
my_loader = jinja2.ChoiceLoader([
|
||||||
app.jinja_loader,
|
app.jinja_loader,
|
||||||
jinja2.FileSystemLoader(os.path.dirname(os.path.abspath(__file__)) + "/templates"),
|
jinja2.FileSystemLoader(
|
||||||
|
os.path.dirname(os.path.abspath(__file__)) + "/templates"
|
||||||
|
),
|
||||||
])
|
])
|
||||||
app.jinja_loader = my_loader
|
app.jinja_loader = my_loader
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
__author__ = 'RemiZOffAlex'
|
__author__ = 'RemiZOffAlex'
|
||||||
__copyright__ = '(c) RemiZOffAlex'
|
__copyright__ = '(c) RemiZOffAlex'
|
||||||
__license__ = 'MIT'
|
|
||||||
__email__ = 'remizoffalex@mail.ru'
|
__email__ = 'remizoffalex@mail.ru'
|
||||||
__url__ = 'http://remizoffalex.ru'
|
|
||||||
|
|
||||||
from flask import render_template
|
from flask import render_template
|
||||||
|
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
__author__ = 'RemiZOffAlex'
|
__author__ = 'RemiZOffAlex'
|
||||||
__copyright__ = '(c) RemiZOffAlex'
|
__copyright__ = '(c) RemiZOffAlex'
|
||||||
__license__ = 'MIT'
|
|
||||||
__email__ = 'remizoffalex@mail.ru'
|
__email__ = 'remizoffalex@mail.ru'
|
||||||
__url__ = 'https://remizoffalex.ru'
|
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import jinja2
|
import jinja2
|
||||||
|
|
||||||
from . import routes
|
from . import routes # noqa F401
|
||||||
from .. import app
|
from .. import app
|
||||||
|
|
||||||
|
|
||||||
my_loader = jinja2.ChoiceLoader([
|
my_loader = jinja2.ChoiceLoader([
|
||||||
app.jinja_loader,
|
app.jinja_loader,
|
||||||
jinja2.FileSystemLoader(os.path.dirname(os.path.abspath(__file__)) + "/templates"),
|
jinja2.FileSystemLoader(
|
||||||
|
os.path.dirname(os.path.abspath(__file__)) + "/templates"
|
||||||
|
),
|
||||||
])
|
])
|
||||||
app.jinja_loader = my_loader
|
app.jinja_loader = my_loader
|
||||||
|
|||||||
@@ -1,10 +1,8 @@
|
|||||||
__author__ = 'RemiZOffAlex'
|
__author__ = 'RemiZOffAlex'
|
||||||
__copyright__ = '(c) RemiZOffAlex'
|
__copyright__ = '(c) RemiZOffAlex'
|
||||||
__license__ = 'MIT'
|
|
||||||
__email__ = 'remizoffalex@mail.ru'
|
__email__ = 'remizoffalex@mail.ru'
|
||||||
__url__ = 'https://remizoffalex.ru'
|
|
||||||
|
|
||||||
from flask import render_template
|
from flask import abort, render_template
|
||||||
|
|
||||||
from .. import app, models
|
from .. import app, models
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,8 @@
|
|||||||
__author__ = 'RemiZOffAlex'
|
__author__ = 'RemiZOffAlex'
|
||||||
__copyright__ = '(c) RemiZOffAlex'
|
__copyright__ = '(c) RemiZOffAlex'
|
||||||
__license__ = 'MIT'
|
|
||||||
__email__ = 'remizoffalex@mail.ru'
|
__email__ = 'remizoffalex@mail.ru'
|
||||||
__url__ = 'https://remizoffalex.ru'
|
|
||||||
|
|
||||||
from flask import render_template
|
from flask import abort, render_template
|
||||||
|
|
||||||
from .. import app, models
|
from .. import app, models
|
||||||
|
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
__author__ = 'RemiZOffAlex'
|
__author__ = 'RemiZOffAlex'
|
||||||
__copyright__ = '(c) RemiZOffAlex'
|
__copyright__ = '(c) RemiZOffAlex'
|
||||||
__license__ = 'MIT'
|
|
||||||
__email__ = 'remizoffalex@mail.ru'
|
__email__ = 'remizoffalex@mail.ru'
|
||||||
__url__ = 'https://remizoffalex.ru'
|
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import jinja2
|
import jinja2
|
||||||
|
|
||||||
from . import views
|
from . import views # noqa F401
|
||||||
from .. import app
|
from .. import app
|
||||||
|
|
||||||
|
|
||||||
my_loader = jinja2.ChoiceLoader([
|
my_loader = jinja2.ChoiceLoader([
|
||||||
app.jinja_loader,
|
app.jinja_loader,
|
||||||
jinja2.FileSystemLoader(os.path.dirname(os.path.abspath(__file__)) + "/templates"),
|
jinja2.FileSystemLoader(
|
||||||
|
os.path.dirname(os.path.abspath(__file__)) + "/templates"
|
||||||
|
),
|
||||||
])
|
])
|
||||||
app.jinja_loader = my_loader
|
app.jinja_loader = my_loader
|
||||||
|
|||||||
@@ -1,10 +1,8 @@
|
|||||||
__author__ = 'RemiZOffAlex'
|
__author__ = 'RemiZOffAlex'
|
||||||
__copyright__ = '(c) RemiZOffAlex'
|
__copyright__ = '(c) RemiZOffAlex'
|
||||||
__license__ = 'MIT'
|
|
||||||
__email__ = 'remizoffalex@mail.ru'
|
__email__ = 'remizoffalex@mail.ru'
|
||||||
__url__ = 'https://remizoffalex.ru'
|
|
||||||
|
|
||||||
from flask import render_template
|
from flask import abort, render_template
|
||||||
|
|
||||||
from .. import app, models
|
from .. import app, models
|
||||||
|
|
||||||
@@ -17,7 +15,7 @@ def user_id(id):
|
|||||||
user = models.db_session.query(
|
user = models.db_session.query(
|
||||||
models.User
|
models.User
|
||||||
).filter(
|
).filter(
|
||||||
models.User.id==id
|
models.User.id == id
|
||||||
).first()
|
).first()
|
||||||
if user is None:
|
if user is None:
|
||||||
abort(404)
|
abort(404)
|
||||||
@@ -35,7 +33,7 @@ def user_pages(id):
|
|||||||
user = models.db_session.query(
|
user = models.db_session.query(
|
||||||
models.User
|
models.User
|
||||||
).filter(
|
).filter(
|
||||||
models.User.id==id
|
models.User.id == id
|
||||||
).first()
|
).first()
|
||||||
if user is None:
|
if user is None:
|
||||||
abort(404)
|
abort(404)
|
||||||
|
|||||||
@@ -1,13 +1,9 @@
|
|||||||
__author__ = 'RemiZOffAlex'
|
__author__ = 'RemiZOffAlex'
|
||||||
__copyright__ = '(c) RemiZOffAlex'
|
__copyright__ = '(c) RemiZOffAlex'
|
||||||
__license__ = 'MIT'
|
|
||||||
__email__ = 'remizoffalex@mail.ru'
|
__email__ = 'remizoffalex@mail.ru'
|
||||||
__url__ = 'https://remizoffalex.ru'
|
|
||||||
|
|
||||||
from myapp import app
|
from myapp import app
|
||||||
from flask import Flask, render_template, request, Response
|
from flask import render_template, Response
|
||||||
|
|
||||||
from . import forms, models
|
|
||||||
|
|
||||||
|
|
||||||
@app.route('/')
|
@app.route('/')
|
||||||
@@ -30,7 +26,12 @@ def robots_txt():
|
|||||||
def error_missing(exception):
|
def error_missing(exception):
|
||||||
pagedata = {}
|
pagedata = {}
|
||||||
error_message = "Не судьба..."
|
error_message = "Не судьба..."
|
||||||
return render_template("error.html", error_code=404, error_message=error_message, pagedata=pagedata), 404
|
return render_template(
|
||||||
|
"error.html",
|
||||||
|
error_code=404,
|
||||||
|
error_message=error_message,
|
||||||
|
pagedata=pagedata
|
||||||
|
), 404
|
||||||
|
|
||||||
|
|
||||||
# noinspection PyUnusedLocal
|
# noinspection PyUnusedLocal
|
||||||
@@ -38,7 +39,12 @@ def error_missing(exception):
|
|||||||
def error_unauthorized(exception):
|
def error_unauthorized(exception):
|
||||||
pagedata = {}
|
pagedata = {}
|
||||||
error_message = "У вас нет прав"
|
error_message = "У вас нет прав"
|
||||||
return render_template("error.html", error_code=403, error_message=error_message, pagedata=pagedata), 403
|
return render_template(
|
||||||
|
"error.html",
|
||||||
|
error_code=403,
|
||||||
|
error_message=error_message,
|
||||||
|
pagedata=pagedata
|
||||||
|
), 403
|
||||||
|
|
||||||
|
|
||||||
# noinspection PyUnusedLocal
|
# noinspection PyUnusedLocal
|
||||||
@@ -46,4 +52,9 @@ def error_unauthorized(exception):
|
|||||||
def error_crash(exception):
|
def error_crash(exception):
|
||||||
pagedata = {}
|
pagedata = {}
|
||||||
error_message = "Вот незадача..."
|
error_message = "Вот незадача..."
|
||||||
return render_template("error.html", error_code=500, error_message=error_message, pagedata=pagedata), 500
|
return render_template(
|
||||||
|
"error.html",
|
||||||
|
error_code=500,
|
||||||
|
error_message=error_message,
|
||||||
|
pagedata=pagedata
|
||||||
|
), 500
|
||||||
|
|||||||
2
run.py
2
run.py
@@ -2,9 +2,7 @@
|
|||||||
|
|
||||||
__author__ = 'RemiZOffAlex'
|
__author__ = 'RemiZOffAlex'
|
||||||
__copyright__ = '(c) RemiZOffAlex'
|
__copyright__ = '(c) RemiZOffAlex'
|
||||||
__license__ = 'MIT'
|
|
||||||
__email__ = 'remizoffalex@mail.ru'
|
__email__ = 'remizoffalex@mail.ru'
|
||||||
__url__ = 'https://remizoffalex.ru'
|
|
||||||
|
|
||||||
from myapp import app as application
|
from myapp import app as application
|
||||||
|
|
||||||
|
|||||||
@@ -2,9 +2,7 @@
|
|||||||
|
|
||||||
__author__ = 'RemiZOffAlex'
|
__author__ = 'RemiZOffAlex'
|
||||||
__copyright__ = '(c) RemiZOffAlex'
|
__copyright__ = '(c) RemiZOffAlex'
|
||||||
__license__ = 'MIT'
|
|
||||||
__email__ = 'remizoffalex@mail.ru'
|
__email__ = 'remizoffalex@mail.ru'
|
||||||
__url__ = 'https://remizoffalex.ru'
|
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
|||||||
4
wsgi.py
4
wsgi.py
@@ -2,8 +2,6 @@
|
|||||||
|
|
||||||
__author__ = 'RemiZOffAlex'
|
__author__ = 'RemiZOffAlex'
|
||||||
__copyright__ = '(c) RemiZOffAlex'
|
__copyright__ = '(c) RemiZOffAlex'
|
||||||
__license__ = 'MIT'
|
|
||||||
__email__ = 'remizoffalex@mail.ru'
|
__email__ = 'remizoffalex@mail.ru'
|
||||||
__url__ = 'https://remizoffalex.ru'
|
|
||||||
|
|
||||||
from myapp import app as application
|
from myapp import app as application # noqa F401
|
||||||
|
|||||||
Reference in New Issue
Block a user