blob: 442fb0139a6c2ccaec080f74469c07ab17f08470 [file] [log] [blame]
Rushabh Mehta3966f1d2012-02-23 12:35:32 +05301# ERPNext - web based ERP (http://erpnext.com)
2# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
3#
4# This program is free software: you can redistribute it and/or modify
5# it under the terms of the GNU General Public License as published by
6# the Free Software Foundation, either version 3 of the License, or
7# (at your option) any later version.
8#
9# This program is distributed in the hope that it will be useful,
10# but WITHOUT ANY WARRANTY; without even the implied warranty of
11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12# GNU General Public License for more details.
13#
14# You should have received a copy of the GNU General Public License
15# along with this program. If not, see <http://www.gnu.org/licenses/>.
16
Anand Doshi486f9df2012-07-19 13:40:31 +053017from __future__ import unicode_literals
Pratik Vyasc1e6e4c2011-06-08 14:37:15 +053018import webnotes
19
Anand Doshi0fd99e72012-11-30 16:38:04 +053020from webnotes.utils import load_json
Anand Doshi82042f12012-04-06 17:54:17 +053021import json
Pratik Vyasc1e6e4c2011-06-08 14:37:15 +053022
Rushabh Mehtac7dbe292012-08-07 12:12:55 +053023@webnotes.whitelist()
24def get_questions():
25 """get list of questions"""
26 import json
27 conds = ''
28
29 if 'search_text' in webnotes.form_dict:
30 conds = ' and t1.question like "%'+ webnotes.form_dict['search_text'] + '%"'
31
32 if 'tag_filters' in webnotes.form_dict:
33 tag_filters = json.loads(webnotes.form_dict['tag_filters'])
34 for t in tag_filters:
35 conds += ' and t1._user_tags like "%'+ t +'%"'
36
37 return webnotes.conn.sql("""select t1.name, t1.owner, t1.question, t1.modified, t1._user_tags,
Rushabh Mehta647e0d12012-12-18 14:47:54 +053038 (select count(*) from tabAnswer where
Rushabh Mehtac7dbe292012-08-07 12:12:55 +053039 tabAnswer.question = t1.name) as answers
40 from tabQuestion t1, tabProfile t2
41 where t1.docstatus!=2
42 and t1.owner = t2.name
43 %(conds)s
44 order by t1.modified desc""" % {"conds":conds}, as_dict=1)
45
Pratik Vyasc1e6e4c2011-06-08 14:37:15 +053046# add a new question
Rushabh Mehtaf17ce7b2012-02-13 16:50:52 +053047@webnotes.whitelist()
Pratik Vyasc1e6e4c2011-06-08 14:37:15 +053048def add_question(arg):
49 args = load_json(arg)
50
51 from webnotes.model.doc import Document
52 d = Document('Question')
Rushabh Mehta6252c132012-08-07 12:53:49 +053053 d.question = args['question']
Pratik Vyasc1e6e4c2011-06-08 14:37:15 +053054 d.points = 1
55 d.save(1)
56
57 if args['suggest']:
Rushabh Mehtacfa663e2013-04-04 10:02:08 +053058 from core.page.messages import messages
Pratik Vyasc1e6e4c2011-06-08 14:37:15 +053059 for s in args['suggest']:
60 if s:
Anand Doshi82042f12012-04-06 17:54:17 +053061 messages.post(json.dumps({
62 'contact': s,
63 'txt': 'Please help me and answer the question "%s" in the Knowledge Base' % d.question,
Pratik Vyasc1e6e4c2011-06-08 14:37:15 +053064 'notify': 1
Anand Doshi82042f12012-04-06 17:54:17 +053065 }))
Rushabh Mehtae3393be2011-08-30 15:37:46 +053066
Rushabh Mehtaf17ce7b2012-02-13 16:50:52 +053067@webnotes.whitelist()
Rushabh Mehtae3393be2011-08-30 15:37:46 +053068def delete(arg):
69 """
70 delete a question or answer (called from kb toolbar)
71 """
72 args = load_json(arg)
73 from webnotes.model import delete_doc
Anand Doshi82042f12012-04-06 17:54:17 +053074 delete_doc(args['dt'], args['dn'])