74 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			74 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 |