Update tag
This commit is contained in:
@@ -1,365 +0,0 @@
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__copyright__ = '(c) RemiZOffAlex'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'https://remizoffalex.ru'
|
||||
|
||||
from . import jsonrpc, login_required
|
||||
from .. import app, lib, models
|
||||
|
||||
|
||||
@jsonrpc.method('tag.add(name=str)')
|
||||
@login_required
|
||||
def tag_add(name):
|
||||
"""
|
||||
Добавить новый тег
|
||||
"""
|
||||
exist = models.db_session.query(
|
||||
models.Tag
|
||||
).filter(
|
||||
models.Tag.name == name
|
||||
).first()
|
||||
if exist:
|
||||
raise ValueError
|
||||
|
||||
newTag = models.Tag(name)
|
||||
models.db_session.add(newTag)
|
||||
models.db_session.commit()
|
||||
return newTag.as_dict()
|
||||
|
||||
|
||||
@jsonrpc.method('tag.delete(id=int)')
|
||||
@login_required
|
||||
def tag_delete(id):
|
||||
"""
|
||||
Удалить тег
|
||||
"""
|
||||
exist = models.db_session.query(
|
||||
models.Tag
|
||||
).filter(
|
||||
models.Tag.id==id
|
||||
).first()
|
||||
if exist is None:
|
||||
raise ValueError
|
||||
|
||||
models.db_session.delete(exist)
|
||||
models.db_session.commit()
|
||||
return 'OK'
|
||||
|
||||
|
||||
@jsonrpc.method('tag.exist(name=str)')
|
||||
def tag_exist(name):
|
||||
"""
|
||||
Проверить существует ли тег и вернуть информацию о нём
|
||||
"""
|
||||
text = name.lower().strip()
|
||||
tagRow = models.db_session.query(
|
||||
models.Tag
|
||||
).filter(
|
||||
models.Tag.name==text
|
||||
).first()
|
||||
if tagRow is None:
|
||||
raise ValueError
|
||||
result = {
|
||||
'id': tagRow.id,
|
||||
'name': tagRow.name
|
||||
}
|
||||
return result
|
||||
|
||||
|
||||
@jsonrpc.method('tag.pages(id=int, page=int)')
|
||||
def tag_pages_list(id, page):
|
||||
"""
|
||||
Список статей
|
||||
"""
|
||||
tag = models.db_session.query(
|
||||
models.Tag
|
||||
).filter(
|
||||
models.Tag.id==id
|
||||
).first()
|
||||
if tag is None:
|
||||
raise ValueError
|
||||
indexes = models.db_session.query(
|
||||
models.TagPage.page_id
|
||||
).filter(
|
||||
models.TagPage.tag_id==id
|
||||
)
|
||||
pages = models.db_session.query(
|
||||
models.Page
|
||||
).filter(
|
||||
models.Page.id.in_(indexes)
|
||||
).order_by(
|
||||
models.Page.title.asc()
|
||||
)
|
||||
pages = lib.getpage(
|
||||
pages,
|
||||
page,
|
||||
app.config['ITEMS_ON_PAGE']
|
||||
).all()
|
||||
|
||||
result = []
|
||||
for page in pages:
|
||||
newRow = page.as_dict()
|
||||
newRow['user'] = page.user.as_dict()
|
||||
newRow['tags'] = []
|
||||
for tagLink in page.tags:
|
||||
newRow['tags'].append(tagLink.tag.as_dict())
|
||||
result.append(newRow)
|
||||
return result
|
||||
|
||||
|
||||
@jsonrpc.method('tag.pages.count(id=int)')
|
||||
def tag_pages_count(id):
|
||||
"""Общее количество статей
|
||||
"""
|
||||
tag = models.db_session.query(
|
||||
models.Tag
|
||||
).filter(
|
||||
models.Tag.id==id
|
||||
).first()
|
||||
if tag is None:
|
||||
raise ValueError
|
||||
indexes = models.db_session.query(
|
||||
models.TagPage.page_id
|
||||
).filter(
|
||||
models.TagPage.tag_id==id
|
||||
)
|
||||
result = models.db_session.query(
|
||||
models.Page
|
||||
).filter(
|
||||
models.Page.id.in_(indexes)
|
||||
).count()
|
||||
return result
|
||||
|
||||
|
||||
@jsonrpc.method('tag.notes(id=int, page=int)')
|
||||
@login_required
|
||||
def tag_notes_list(id, page):
|
||||
"""Список заметок
|
||||
"""
|
||||
tag = models.db_session.query(
|
||||
models.Tag
|
||||
).filter(
|
||||
models.Tag.id==id
|
||||
).first()
|
||||
if tag is None:
|
||||
raise ValueError
|
||||
indexes = models.db_session.query(
|
||||
models.TagNote.note_id
|
||||
).filter(
|
||||
models.TagNote.tag_id==id
|
||||
)
|
||||
notes = models.db_session.query(
|
||||
models.Note
|
||||
).filter(
|
||||
models.Note.user_id==lib.get_user().id,
|
||||
models.Note.id.in_(indexes)
|
||||
).order_by(
|
||||
models.Note.title.asc()
|
||||
)
|
||||
notes = lib.getpage(
|
||||
notes,
|
||||
page,
|
||||
app.config['ITEMS_ON_PAGE']
|
||||
).all()
|
||||
|
||||
result = []
|
||||
for note in notes:
|
||||
newRow = note.as_dict()
|
||||
newRow['tags'] = []
|
||||
for tagLink in note.tags:
|
||||
newRow['tags'].append(tagLink.tag.as_dict())
|
||||
result.append(newRow)
|
||||
return result
|
||||
|
||||
|
||||
@jsonrpc.method('tag.notes.count(id=int)')
|
||||
@login_required
|
||||
def tag_notes_count(id):
|
||||
"""Общее количество заметок
|
||||
"""
|
||||
tag = models.db_session.query(
|
||||
models.Tag
|
||||
).filter(
|
||||
models.Tag.id==id
|
||||
).first()
|
||||
if tag is None:
|
||||
raise ValueError
|
||||
indexes = models.db_session.query(
|
||||
models.TagNote.note_id
|
||||
).filter(
|
||||
models.TagNote.tag_id==id
|
||||
)
|
||||
result = models.db_session.query(
|
||||
models.Note
|
||||
).filter(
|
||||
models.Note.user_id==lib.get_user().id,
|
||||
models.Note.id.in_(indexes)
|
||||
).count()
|
||||
return result
|
||||
|
||||
|
||||
@jsonrpc.method('tags()')
|
||||
def tags_list():
|
||||
"""
|
||||
Список тегов
|
||||
"""
|
||||
tags = models.db_session.query(
|
||||
models.Tag
|
||||
).all()
|
||||
|
||||
result = []
|
||||
for tag in tags:
|
||||
newRow = tag.as_dict()
|
||||
result.append(newRow)
|
||||
return result
|
||||
|
||||
|
||||
@jsonrpc.method('tag.addToPage')
|
||||
@login_required
|
||||
def tag_addToPage(tag, id):
|
||||
"""
|
||||
Добавление тега на страницы
|
||||
"""
|
||||
tagRow = models.db_session.query(
|
||||
models.Tag
|
||||
).filter(
|
||||
models.Tag.id==tag
|
||||
).first()
|
||||
if tagRow is None:
|
||||
raise ValueError
|
||||
page = models.db_session.query(
|
||||
models.Page
|
||||
).filter(
|
||||
models.Page.id==id
|
||||
).first()
|
||||
if page is None:
|
||||
raise ValueError
|
||||
exist = models.db_session.query(
|
||||
models.TagPage
|
||||
).filter(
|
||||
models.TagPage.tag_id==tagRow.id,
|
||||
models.TagPage.page_id==page.id
|
||||
).first()
|
||||
if exist:
|
||||
raise ValueError
|
||||
newtagpage = models.TagPage(
|
||||
page,
|
||||
tagRow
|
||||
)
|
||||
models.db_session.add(newtagpage)
|
||||
models.db_session.commit()
|
||||
result = tagRow.as_dict()
|
||||
return result
|
||||
|
||||
|
||||
@jsonrpc.method('tag.deleteFromPage')
|
||||
@login_required
|
||||
def tag_deleteFromPage(tag, id):
|
||||
"""
|
||||
Удаление тега со страницы
|
||||
"""
|
||||
exist = models.db_session.query(
|
||||
models.TagPage
|
||||
).filter(
|
||||
models.TagPage.tag_id==tag,
|
||||
models.TagPage.page_id==id
|
||||
).first()
|
||||
if exist is None:
|
||||
raise ValueError
|
||||
models.db_session.delete(exist)
|
||||
models.db_session.commit()
|
||||
return 'Тег {} удален'.format(id)
|
||||
|
||||
|
||||
@jsonrpc.method('tag.addToNote(tag=int, id=int)')
|
||||
@login_required
|
||||
def tag_addToNote(tag, id):
|
||||
"""
|
||||
Добавление тега в заметку
|
||||
"""
|
||||
noteRow = models.db_session.query(
|
||||
models.Note
|
||||
).filter(
|
||||
models.Note.id==id,
|
||||
models.Note.user_id==lib.get_user().id
|
||||
).first()
|
||||
if noteRow is None:
|
||||
raise ValueError
|
||||
tagRow = models.db_session.query(
|
||||
models.Tag
|
||||
).filter(
|
||||
models.Tag.id==tag
|
||||
).first()
|
||||
if tagRow is None:
|
||||
raise ValueError
|
||||
exist = models.db_session.query(
|
||||
models.TagNote
|
||||
).filter(
|
||||
models.TagNote.tag_id==tagRow.id,
|
||||
models.TagNote.note_id==noteRow.id
|
||||
).first()
|
||||
if exist:
|
||||
raise ValueError
|
||||
newtagNote = models.TagNote(
|
||||
noteRow,
|
||||
tagRow
|
||||
)
|
||||
models.db_session.add(newtagNote)
|
||||
models.db_session.commit()
|
||||
result = tagRow.as_dict()
|
||||
return result
|
||||
|
||||
|
||||
@jsonrpc.method('tag.deleteFromNote(tag=int, id=int)')
|
||||
@login_required
|
||||
def tag_deleteFromNote(tag, id):
|
||||
"""
|
||||
Удаление тега из заметки
|
||||
"""
|
||||
noteRow = models.db_session.query(
|
||||
models.Note
|
||||
).filter(
|
||||
models.Note.id==id,
|
||||
models.Note.user_id==lib.get_user().id
|
||||
).first()
|
||||
if noteRow is None:
|
||||
raise ValueError
|
||||
tagRow = models.db_session.query(
|
||||
models.Tag
|
||||
).filter(
|
||||
models.Tag.id==tag
|
||||
).first()
|
||||
if tagRow is None:
|
||||
raise ValueError
|
||||
exist = models.db_session.query(
|
||||
models.TagNote
|
||||
).filter(
|
||||
models.TagNote.tag_id==tag,
|
||||
models.TagNote.note_id==id
|
||||
).first()
|
||||
if exist is None:
|
||||
raise ValueError
|
||||
models.db_session.delete(exist)
|
||||
models.db_session.commit()
|
||||
return 'ok'
|
||||
|
||||
|
||||
@jsonrpc.method('tags.groups')
|
||||
def tags_groups():
|
||||
"""
|
||||
Облако тегов
|
||||
"""
|
||||
tags = models.db_session.query(
|
||||
models.Tag
|
||||
).order_by(
|
||||
models.Tag.name
|
||||
).all()
|
||||
result = {}
|
||||
for tag in tags:
|
||||
tag_json = tag.as_dict()
|
||||
if tag.name[0] in result:
|
||||
result[tag.name[0]].append(tag_json)
|
||||
else:
|
||||
result[tag.name[0]] = [tag_json]
|
||||
return result
|
||||
12
myapp/ns_api/tag/__init__.py
Normal file
12
myapp/ns_api/tag/__init__.py
Normal file
@@ -0,0 +1,12 @@
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__copyright__ = '(c) RemiZOffAlex'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'https://remizoffalex.ru'
|
||||
|
||||
|
||||
from . import (
|
||||
note,
|
||||
page,
|
||||
tag
|
||||
)
|
||||
148
myapp/ns_api/tag/note.py
Normal file
148
myapp/ns_api/tag/note.py
Normal file
@@ -0,0 +1,148 @@
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__copyright__ = '(c) RemiZOffAlex'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'https://remizoffalex.ru'
|
||||
|
||||
from .. import jsonrpc, login_required
|
||||
from ... import app, lib, models
|
||||
|
||||
|
||||
@jsonrpc.method('tag.note.add(tag=int, id=int)')
|
||||
@login_required
|
||||
def tag_note_add(tag, id):
|
||||
"""
|
||||
Добавление тега в заметку
|
||||
"""
|
||||
noteRow = models.db_session.query(
|
||||
models.Note
|
||||
).filter(
|
||||
models.Note.id==id,
|
||||
models.Note.user_id==lib.get_user().id
|
||||
).first()
|
||||
if noteRow is None:
|
||||
raise ValueError
|
||||
tagRow = models.db_session.query(
|
||||
models.Tag
|
||||
).filter(
|
||||
models.Tag.id==tag
|
||||
).first()
|
||||
if tagRow is None:
|
||||
raise ValueError
|
||||
exist = models.db_session.query(
|
||||
models.TagNote
|
||||
).filter(
|
||||
models.TagNote.tag_id==tagRow.id,
|
||||
models.TagNote.note_id==noteRow.id
|
||||
).first()
|
||||
if exist:
|
||||
raise ValueError
|
||||
newtagNote = models.TagNote(
|
||||
noteRow,
|
||||
tagRow
|
||||
)
|
||||
models.db_session.add(newtagNote)
|
||||
models.db_session.commit()
|
||||
result = tagRow.as_dict()
|
||||
return result
|
||||
|
||||
|
||||
@jsonrpc.method('tag.note.delete(tag=int, id=int)')
|
||||
@login_required
|
||||
def tag_note_delete(tag, id):
|
||||
"""
|
||||
Удаление тега из заметки
|
||||
"""
|
||||
noteRow = models.db_session.query(
|
||||
models.Note
|
||||
).filter(
|
||||
models.Note.id==id,
|
||||
models.Note.user_id==lib.get_user().id
|
||||
).first()
|
||||
if noteRow is None:
|
||||
raise ValueError
|
||||
tagRow = models.db_session.query(
|
||||
models.Tag
|
||||
).filter(
|
||||
models.Tag.id==tag
|
||||
).first()
|
||||
if tagRow is None:
|
||||
raise ValueError
|
||||
exist = models.db_session.query(
|
||||
models.TagNote
|
||||
).filter(
|
||||
models.TagNote.tag_id==tag,
|
||||
models.TagNote.note_id==id
|
||||
).first()
|
||||
if exist is None:
|
||||
raise ValueError
|
||||
models.db_session.delete(exist)
|
||||
models.db_session.commit()
|
||||
return 'ok'
|
||||
|
||||
|
||||
@jsonrpc.method('tag.notes(id=int, page=int)')
|
||||
@login_required
|
||||
def tag_notes_list(id, page):
|
||||
"""Список заметок
|
||||
"""
|
||||
tag = models.db_session.query(
|
||||
models.Tag
|
||||
).filter(
|
||||
models.Tag.id==id
|
||||
).first()
|
||||
if tag is None:
|
||||
raise ValueError
|
||||
indexes = models.db_session.query(
|
||||
models.TagNote.note_id
|
||||
).filter(
|
||||
models.TagNote.tag_id==id
|
||||
)
|
||||
notes = models.db_session.query(
|
||||
models.Note
|
||||
).filter(
|
||||
models.Note.user_id==lib.get_user().id,
|
||||
models.Note.id.in_(indexes)
|
||||
).order_by(
|
||||
models.Note.title.asc()
|
||||
)
|
||||
notes = lib.getpage(
|
||||
notes,
|
||||
page,
|
||||
app.config['ITEMS_ON_PAGE']
|
||||
).all()
|
||||
|
||||
result = []
|
||||
for note in notes:
|
||||
newRow = note.as_dict()
|
||||
newRow['tags'] = []
|
||||
for tagLink in note.tags:
|
||||
newRow['tags'].append(tagLink.tag.as_dict())
|
||||
result.append(newRow)
|
||||
return result
|
||||
|
||||
|
||||
@jsonrpc.method('tag.notes.count(id=int)')
|
||||
@login_required
|
||||
def tag_notes_count(id):
|
||||
"""Общее количество заметок
|
||||
"""
|
||||
tag = models.db_session.query(
|
||||
models.Tag
|
||||
).filter(
|
||||
models.Tag.id==id
|
||||
).first()
|
||||
if tag is None:
|
||||
raise ValueError
|
||||
indexes = models.db_session.query(
|
||||
models.TagNote.note_id
|
||||
).filter(
|
||||
models.TagNote.tag_id==id
|
||||
)
|
||||
result = models.db_session.query(
|
||||
models.Note
|
||||
).filter(
|
||||
models.Note.user_id==lib.get_user().id,
|
||||
models.Note.id.in_(indexes)
|
||||
).count()
|
||||
return result
|
||||
130
myapp/ns_api/tag/page.py
Normal file
130
myapp/ns_api/tag/page.py
Normal file
@@ -0,0 +1,130 @@
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__copyright__ = '(c) RemiZOffAlex'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'https://remizoffalex.ru'
|
||||
|
||||
from .. import jsonrpc, login_required
|
||||
from ... import app, lib, models
|
||||
|
||||
|
||||
@jsonrpc.method('tag.page.add(id=int, tag=int)')
|
||||
@login_required
|
||||
def tag_page_add(tag, id):
|
||||
"""
|
||||
Добавление тега на страницы
|
||||
"""
|
||||
tagRow = models.db_session.query(
|
||||
models.Tag
|
||||
).filter(
|
||||
models.Tag.id==tag
|
||||
).first()
|
||||
if tagRow is None:
|
||||
raise ValueError
|
||||
page = models.db_session.query(
|
||||
models.Page
|
||||
).filter(
|
||||
models.Page.id==id
|
||||
).first()
|
||||
if page is None:
|
||||
raise ValueError
|
||||
exist = models.db_session.query(
|
||||
models.TagPage
|
||||
).filter(
|
||||
models.TagPage.tag_id==tagRow.id,
|
||||
models.TagPage.page_id==page.id
|
||||
).first()
|
||||
if exist:
|
||||
raise ValueError
|
||||
newtagpage = models.TagPage(
|
||||
page,
|
||||
tagRow
|
||||
)
|
||||
models.db_session.add(newtagpage)
|
||||
models.db_session.commit()
|
||||
result = tagRow.as_dict()
|
||||
return result
|
||||
|
||||
|
||||
@jsonrpc.method('tag.page.delete(id=int, tag=int)')
|
||||
@login_required
|
||||
def tag_page_delete(tag, id):
|
||||
"""
|
||||
Удаление тега со страницы
|
||||
"""
|
||||
exist = models.db_session.query(
|
||||
models.TagPage
|
||||
).filter(
|
||||
models.TagPage.tag_id==tag,
|
||||
models.TagPage.page_id==id
|
||||
).first()
|
||||
if exist is None:
|
||||
raise ValueError
|
||||
models.db_session.delete(exist)
|
||||
models.db_session.commit()
|
||||
return 'Тег {} удален'.format(id)
|
||||
|
||||
|
||||
@jsonrpc.method('tag.pages(id=int, page=int)')
|
||||
def tag_pages_list(id, page):
|
||||
"""
|
||||
Список статей
|
||||
"""
|
||||
tag = models.db_session.query(
|
||||
models.Tag
|
||||
).filter(
|
||||
models.Tag.id==id
|
||||
).first()
|
||||
if tag is None:
|
||||
raise ValueError
|
||||
indexes = models.db_session.query(
|
||||
models.TagPage.page_id
|
||||
).filter(
|
||||
models.TagPage.tag_id==id
|
||||
)
|
||||
pages = models.db_session.query(
|
||||
models.Page
|
||||
).filter(
|
||||
models.Page.id.in_(indexes)
|
||||
).order_by(
|
||||
models.Page.title.asc()
|
||||
)
|
||||
pages = lib.getpage(
|
||||
pages,
|
||||
page,
|
||||
app.config['ITEMS_ON_PAGE']
|
||||
).all()
|
||||
|
||||
result = []
|
||||
for page in pages:
|
||||
newRow = page.as_dict()
|
||||
newRow['user'] = page.user.as_dict()
|
||||
newRow['tags'] = []
|
||||
for tagLink in page.tags:
|
||||
newRow['tags'].append(tagLink.tag.as_dict())
|
||||
result.append(newRow)
|
||||
return result
|
||||
|
||||
|
||||
@jsonrpc.method('tag.pages.count(id=int)')
|
||||
def tag_pages_count(id):
|
||||
"""Общее количество статей
|
||||
"""
|
||||
tag = models.db_session.query(
|
||||
models.Tag
|
||||
).filter(
|
||||
models.Tag.id==id
|
||||
).first()
|
||||
if tag is None:
|
||||
raise ValueError
|
||||
indexes = models.db_session.query(
|
||||
models.TagPage.page_id
|
||||
).filter(
|
||||
models.TagPage.tag_id==id
|
||||
)
|
||||
result = models.db_session.query(
|
||||
models.Page
|
||||
).filter(
|
||||
models.Page.id.in_(indexes)
|
||||
).count()
|
||||
return result
|
||||
103
myapp/ns_api/tag/tag.py
Normal file
103
myapp/ns_api/tag/tag.py
Normal file
@@ -0,0 +1,103 @@
|
||||
__author__ = 'RemiZOffAlex'
|
||||
__copyright__ = '(c) RemiZOffAlex'
|
||||
__license__ = 'MIT'
|
||||
__email__ = 'remizoffalex@mail.ru'
|
||||
__url__ = 'https://remizoffalex.ru'
|
||||
|
||||
from .. import jsonrpc, login_required
|
||||
from ... import app, lib, models
|
||||
|
||||
|
||||
@jsonrpc.method('tag.add(name=str)')
|
||||
@login_required
|
||||
def tag_add(name):
|
||||
"""
|
||||
Добавить новый тег
|
||||
"""
|
||||
exist = models.db_session.query(
|
||||
models.Tag
|
||||
).filter(
|
||||
models.Tag.name == name
|
||||
).first()
|
||||
if exist:
|
||||
raise ValueError
|
||||
|
||||
newTag = models.Tag(name)
|
||||
models.db_session.add(newTag)
|
||||
models.db_session.commit()
|
||||
return newTag.as_dict()
|
||||
|
||||
|
||||
@jsonrpc.method('tag.delete(id=int)')
|
||||
@login_required
|
||||
def tag_delete(id):
|
||||
"""
|
||||
Удалить тег
|
||||
"""
|
||||
exist = models.db_session.query(
|
||||
models.Tag
|
||||
).filter(
|
||||
models.Tag.id==id
|
||||
).first()
|
||||
if exist is None:
|
||||
raise ValueError
|
||||
|
||||
models.db_session.delete(exist)
|
||||
models.db_session.commit()
|
||||
return 'OK'
|
||||
|
||||
|
||||
@jsonrpc.method('tag.exist(name=str)')
|
||||
def tag_exist(name):
|
||||
"""
|
||||
Проверить существует ли тег и вернуть информацию о нём
|
||||
"""
|
||||
text = name.lower().strip()
|
||||
tagRow = models.db_session.query(
|
||||
models.Tag
|
||||
).filter(
|
||||
models.Tag.name==text
|
||||
).first()
|
||||
if tagRow is None:
|
||||
raise ValueError
|
||||
result = {
|
||||
'id': tagRow.id,
|
||||
'name': tagRow.name
|
||||
}
|
||||
return result
|
||||
|
||||
|
||||
@jsonrpc.method('tags()')
|
||||
def tags_list():
|
||||
"""
|
||||
Список тегов
|
||||
"""
|
||||
tags = models.db_session.query(
|
||||
models.Tag
|
||||
).all()
|
||||
|
||||
result = []
|
||||
for tag in tags:
|
||||
newRow = tag.as_dict()
|
||||
result.append(newRow)
|
||||
return result
|
||||
|
||||
|
||||
@jsonrpc.method('tags.groups')
|
||||
def tags_groups():
|
||||
"""
|
||||
Облако тегов
|
||||
"""
|
||||
tags = models.db_session.query(
|
||||
models.Tag
|
||||
).order_by(
|
||||
models.Tag.name
|
||||
).all()
|
||||
result = {}
|
||||
for tag in tags:
|
||||
tag_json = tag.as_dict()
|
||||
if tag.name[0] in result:
|
||||
result[tag.name[0]].append(tag_json)
|
||||
else:
|
||||
result[tag.name[0]] = [tag_json]
|
||||
return result
|
||||
Reference in New Issue
Block a user