Rushabh Mehta | 3966f1d | 2012-02-23 12:35:32 +0530 | [diff] [blame] | 1 | # 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 | |
Pratik Vyas | c1e6e4c | 2011-06-08 14:37:15 +0530 | [diff] [blame] | 17 | import webnotes |
| 18 | |
| 19 | from webnotes.utils import load_json, cint, cstr |
Anand Doshi | 82042f1 | 2012-04-06 17:54:17 +0530 | [diff] [blame] | 20 | import json |
Pratik Vyas | c1e6e4c | 2011-06-08 14:37:15 +0530 | [diff] [blame] | 21 | |
Rushabh Mehta | c7dbe29 | 2012-08-07 12:12:55 +0530 | [diff] [blame] | 22 | @webnotes.whitelist() |
| 23 | def get_questions(): |
| 24 | """get list of questions""" |
| 25 | import json |
| 26 | conds = '' |
| 27 | |
| 28 | if 'search_text' in webnotes.form_dict: |
| 29 | conds = ' and t1.question like "%'+ webnotes.form_dict['search_text'] + '%"' |
| 30 | |
| 31 | if 'tag_filters' in webnotes.form_dict: |
| 32 | tag_filters = json.loads(webnotes.form_dict['tag_filters']) |
| 33 | for t in tag_filters: |
| 34 | conds += ' and t1._user_tags like "%'+ t +'%"' |
| 35 | |
| 36 | return webnotes.conn.sql("""select t1.name, t1.owner, t1.question, t1.modified, t1._user_tags, |
| 37 | t2.first_name, t2.last_name, (select count(*) from tabAnswer where |
| 38 | tabAnswer.question = t1.name) as answers |
| 39 | from tabQuestion t1, tabProfile t2 |
| 40 | where t1.docstatus!=2 |
| 41 | and t1.owner = t2.name |
| 42 | %(conds)s |
| 43 | order by t1.modified desc""" % {"conds":conds}, as_dict=1) |
| 44 | |
Pratik Vyas | c1e6e4c | 2011-06-08 14:37:15 +0530 | [diff] [blame] | 45 | # add a new question |
Rushabh Mehta | f17ce7b | 2012-02-13 16:50:52 +0530 | [diff] [blame] | 46 | @webnotes.whitelist() |
Pratik Vyas | c1e6e4c | 2011-06-08 14:37:15 +0530 | [diff] [blame] | 47 | def add_question(arg): |
| 48 | args = load_json(arg) |
| 49 | |
| 50 | from webnotes.model.doc import Document |
| 51 | d = Document('Question') |
Rushabh Mehta | 6252c13 | 2012-08-07 12:53:49 +0530 | [diff] [blame] | 52 | d.question = args['question'] |
Pratik Vyas | c1e6e4c | 2011-06-08 14:37:15 +0530 | [diff] [blame] | 53 | d.points = 1 |
| 54 | d.save(1) |
| 55 | |
| 56 | if args['suggest']: |
Anand Doshi | 82042f1 | 2012-04-06 17:54:17 +0530 | [diff] [blame] | 57 | from utilities.page.messages import messages |
Pratik Vyas | c1e6e4c | 2011-06-08 14:37:15 +0530 | [diff] [blame] | 58 | for s in args['suggest']: |
| 59 | if s: |
Anand Doshi | 82042f1 | 2012-04-06 17:54:17 +0530 | [diff] [blame] | 60 | messages.post(json.dumps({ |
| 61 | 'contact': s, |
| 62 | 'txt': 'Please help me and answer the question "%s" in the Knowledge Base' % d.question, |
Pratik Vyas | c1e6e4c | 2011-06-08 14:37:15 +0530 | [diff] [blame] | 63 | 'notify': 1 |
Anand Doshi | 82042f1 | 2012-04-06 17:54:17 +0530 | [diff] [blame] | 64 | })) |
Rushabh Mehta | e3393be | 2011-08-30 15:37:46 +0530 | [diff] [blame] | 65 | |
Rushabh Mehta | f17ce7b | 2012-02-13 16:50:52 +0530 | [diff] [blame] | 66 | @webnotes.whitelist() |
Rushabh Mehta | e3393be | 2011-08-30 15:37:46 +0530 | [diff] [blame] | 67 | def delete(arg): |
| 68 | """ |
| 69 | delete a question or answer (called from kb toolbar) |
| 70 | """ |
| 71 | args = load_json(arg) |
| 72 | from webnotes.model import delete_doc |
Anand Doshi | 82042f1 | 2012-04-06 17:54:17 +0530 | [diff] [blame] | 73 | delete_doc(args['dt'], args['dn']) |