915b34391c
* chore: Added isort to pre-commit config * chore: Sort imports with isort * chore: Clean up imports with pycln * chore: Sort imports with isort * chore: Fix import issues * chore: Clean up sider issues * chore: Remove import errors from flake8 ignore list * chore: Clean up lint issues
77 lines
2.3 KiB
Python
77 lines
2.3 KiB
Python
from __future__ import unicode_literals
|
|
|
|
import frappe
|
|
|
|
|
|
def get_context(context):
|
|
context.no_cache = 1
|
|
context.align_greeting = ''
|
|
setting = frappe.get_doc("Support Settings")
|
|
|
|
context.greeting_title = setting.greeting_title
|
|
context.greeting_subtitle = setting.greeting_subtitle
|
|
|
|
# Support content
|
|
favorite_articles = get_favorite_articles_by_page_view()
|
|
if len(favorite_articles) < 6:
|
|
name_list = []
|
|
if favorite_articles:
|
|
for article in favorite_articles:
|
|
name_list.append(article.name)
|
|
for record in (frappe.get_all("Help Article",
|
|
fields=["title", "content", "route", "category"],
|
|
filters={"name": ['not in', tuple(name_list)], "published": 1},
|
|
order_by="creation desc", limit=(6-len(favorite_articles)))):
|
|
favorite_articles.append(record)
|
|
|
|
context.favorite_article_list = get_favorite_articles(favorite_articles)
|
|
context.help_article_list = get_help_article_list()
|
|
|
|
def get_favorite_articles_by_page_view():
|
|
return frappe.db.sql(
|
|
"""
|
|
SELECT
|
|
t1.name as name,
|
|
t1.title as title,
|
|
t1.content as content,
|
|
t1.route as route,
|
|
t1.category as category,
|
|
count(t1.route) as count
|
|
FROM `tabHelp Article` AS t1
|
|
INNER JOIN
|
|
`tabWeb Page View` AS t2
|
|
ON t1.route = t2.path
|
|
WHERE t1.published = 1
|
|
GROUP BY route
|
|
ORDER BY count DESC
|
|
LIMIT 6;
|
|
""", as_dict=True)
|
|
|
|
def get_favorite_articles(favorite_articles):
|
|
favorite_article_list=[]
|
|
for article in favorite_articles:
|
|
description = frappe.utils.strip_html(article.content)
|
|
if len(description) > 120:
|
|
description = description[:120] + '...'
|
|
favorite_article_dict = {
|
|
'title': article.title,
|
|
'description': description,
|
|
'route': article.route,
|
|
'category': article.category,
|
|
}
|
|
favorite_article_list.append(favorite_article_dict)
|
|
return favorite_article_list
|
|
|
|
def get_help_article_list():
|
|
help_article_list=[]
|
|
category_list = frappe.get_all("Help Category", fields="name")
|
|
for category in category_list:
|
|
help_articles = frappe.get_all("Help Article", fields="*", filters={"category": category.name, "published": 1}, order_by="modified desc", limit=5)
|
|
if help_articles:
|
|
help_aricles_per_caetgory = {
|
|
'category': category,
|
|
'articles': help_articles,
|
|
}
|
|
help_article_list.append(help_aricles_per_caetgory)
|
|
return help_article_list
|