updated feed for comments and login
This commit is contained in:
parent
adc9a61bd7
commit
63d669f390
@ -34,23 +34,33 @@ feed_dict = {
|
||||
'Support Ticket': ['[%(status)s] %(subject)s', '#000080']
|
||||
}
|
||||
|
||||
def make_feed(doc, subject, color):
|
||||
def make_feed(feedtype, doctype, name, owner, subject, color):
|
||||
"makes a new Feed record"
|
||||
#msgprint(subject)
|
||||
from webnotes.model.doc import Document
|
||||
webnotes.conn.sql("delete from tabFeed where doc_type=%s and doc_name=%s", (doc.doctype, doc.name))
|
||||
|
||||
if feedtype in ('Login', 'Comment'):
|
||||
# delete old login, comment feed
|
||||
webnotes.conn.sql("""delete from tabFeed where
|
||||
datediff(curdate(), creation) > 7 and doc_type in ('Comment', 'Login')""")
|
||||
else:
|
||||
# one feed per item
|
||||
webnotes.conn.sql("""delete from tabFeed
|
||||
where doc_type=%s and doc_name=%s
|
||||
and ifnull(feed_type,'') != 'Comment'""", (doctype, name))
|
||||
|
||||
f = Document('Feed')
|
||||
f.doc_type = doc.doctype
|
||||
f.doc_name = doc.name
|
||||
f.owner = owner
|
||||
f.feed_type = feedtype
|
||||
f.doc_type = doctype
|
||||
f.doc_name = name
|
||||
f.subject = subject
|
||||
f.color = color
|
||||
f.save(1)
|
||||
f.save()
|
||||
|
||||
def update_feed(doc, method=None):
|
||||
"adds a new feed"
|
||||
if method=='on_update':
|
||||
subject, color = feed_dict.get(doc.doctype, [None, None])
|
||||
if subject:
|
||||
subject = subject % doc.fields
|
||||
|
||||
make_feed(doc, subject, color)
|
||||
if subject:
|
||||
make_feed('', doc.doctype, doc.name, doc.owner, subject % doc.fields, color)
|
||||
|
@ -3,9 +3,9 @@
|
||||
|
||||
# These values are common in all dictionaries
|
||||
{
|
||||
'creation': '2011-04-08 10:50:41',
|
||||
'creation': '2011-04-06 18:11:38',
|
||||
'docstatus': 0,
|
||||
'modified': '2011-04-05 09:16:57',
|
||||
'modified': '2012-02-03 11:28:16',
|
||||
'modified_by': 'Administrator',
|
||||
'owner': 'Administrator'
|
||||
},
|
||||
@ -14,18 +14,18 @@
|
||||
{
|
||||
'autoname': '_FEED.#####',
|
||||
'colour': 'White:FFF',
|
||||
'default_print_format': 'Standard',
|
||||
'doctype': 'DocType',
|
||||
'module': 'Home',
|
||||
'name': '__common__',
|
||||
'section_style': 'Simple',
|
||||
'show_in_menu': 0,
|
||||
'version': 1
|
||||
'version': 2
|
||||
},
|
||||
|
||||
# These values are common for all DocField
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldtype': 'Data',
|
||||
'name': '__common__',
|
||||
'parent': 'Feed',
|
||||
'parentfield': 'fields',
|
||||
@ -39,11 +39,19 @@
|
||||
'name': 'Feed'
|
||||
},
|
||||
|
||||
# DocField
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'feed_type',
|
||||
'fieldtype': 'Select',
|
||||
'label': 'Feed Type'
|
||||
},
|
||||
|
||||
# DocField
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'doc_type',
|
||||
'idx': 1,
|
||||
'fieldtype': 'Data',
|
||||
'label': 'Doc Type'
|
||||
},
|
||||
|
||||
@ -51,7 +59,7 @@
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'doc_name',
|
||||
'idx': 2,
|
||||
'fieldtype': 'Data',
|
||||
'label': 'Doc Name'
|
||||
},
|
||||
|
||||
@ -59,7 +67,7 @@
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'subject',
|
||||
'idx': 3,
|
||||
'fieldtype': 'Data',
|
||||
'label': 'Subject'
|
||||
},
|
||||
|
||||
@ -67,7 +75,7 @@
|
||||
{
|
||||
'doctype': 'DocField',
|
||||
'fieldname': 'color',
|
||||
'idx': 4,
|
||||
'fieldtype': 'Data',
|
||||
'label': 'Color'
|
||||
}
|
||||
]
|
@ -456,7 +456,7 @@ FeedList.prototype.make_list = function() {
|
||||
this.list = new wn.widgets.Listing({
|
||||
parent: this.list_area,
|
||||
query: repl('select \
|
||||
distinct t1.name, t1.doc_type, t1.doc_name, t1.subject, t1.modified_by, \
|
||||
distinct t1.name, t1.feed_type, t1.doc_type, t1.doc_name, t1.subject, t1.modified_by, \
|
||||
concat(ifnull(t2.first_name,""), " ", ifnull(t2.last_name,"")) as full_name, \
|
||||
t1.modified, t1.color \
|
||||
from tabFeed t1, tabProfile t2, tabUserRole t3, tabDocPerm t4 \
|
||||
@ -495,13 +495,11 @@ FeedItem = function(cell, det, feedlist) {
|
||||
this.tab = make_table(this.wrapper, 1, 2, '100%', [(100/7)+'%', (600/7)+'%']);
|
||||
$y(this.tab,{tableLayout:'fixed'})
|
||||
|
||||
// image
|
||||
$y($td(this.tab,0,0),{textAlign:'right',paddingRight:'4px'});
|
||||
|
||||
// text
|
||||
this.text_area = $a($td(this.tab,0,1), 'div');
|
||||
this.render_references(this.text_area, det);
|
||||
|
||||
this.render_references(this.text_area, det);
|
||||
this.render_tag(det);
|
||||
|
||||
// add day separator
|
||||
@ -537,13 +535,21 @@ FeedItem.prototype.add_day_sep = function(det) {
|
||||
// -------------------------------------------------
|
||||
|
||||
FeedItem.prototype.render_tag = function(det) {
|
||||
// type is the name
|
||||
tag = $a($td(this.tab,0,0), 'div', '',
|
||||
{color:'#FFF', padding:'3px', textAlign:'right', fontSize:'11px', whiteSpace:'nowrap', overflow:'hidden', cursor:'pointer'});
|
||||
{color:'#FFF', padding:'3px', textAlign:'right', fontSize:'11px',
|
||||
whiteSpace:'nowrap', overflow:'hidden', cursor:'pointer'});
|
||||
$br(tag,'3px');
|
||||
$y(tag, {backgroundColor:(det.color || '#273')});
|
||||
tag.innerHTML = get_doctype_label(det.doc_type);
|
||||
tag.dt = det.doc_type;
|
||||
tag.onclick = function() { loaddocbrowser(this.dt); }
|
||||
|
||||
// tag label
|
||||
tag.innerHTML = det.feed_type || get_doctype_label(det.doc_type);
|
||||
|
||||
// not comment / label
|
||||
if(!det.feed_type) {
|
||||
tag.dt = det.doc_type;
|
||||
tag.onclick = function() { loaddocbrowser(this.dt); }
|
||||
}
|
||||
}
|
||||
|
||||
FeedItem.prototype.render_references = function(div, det) {
|
||||
@ -552,10 +558,15 @@ FeedItem.prototype.render_references = function(div, det) {
|
||||
var dt = det.doc_type; var dn = det.doc_name
|
||||
|
||||
// link
|
||||
var allow = in_list(profile.can_read, dt);
|
||||
var span = $a($td(div.tab,0,0), 'span', (allow ? 'link_type': ''), null, det.doc_name);
|
||||
span.dt = dt; span.dn = dn;
|
||||
if(allow) span.onclick = function() { loaddoc(this.dt, this.dn); }
|
||||
if(det.feed_type=='Login') {
|
||||
// nothing - no link
|
||||
} else {
|
||||
var allow = in_list(profile.can_read, dt);
|
||||
var span = $a($td(div.tab,0,0), 'span', (allow ? 'link_type': ''), null,
|
||||
det.doc_name);
|
||||
span.dt = dt; span.dn = dn;
|
||||
if(allow) span.onclick = function() { loaddoc(this.dt, this.dn); }
|
||||
}
|
||||
|
||||
// subject
|
||||
if(det.subject) {
|
||||
|
6
erpnext/patches/jan_mar_2012/latest/feed.py
Normal file
6
erpnext/patches/jan_mar_2012/latest/feed.py
Normal file
@ -0,0 +1,6 @@
|
||||
import webnotes
|
||||
from webnotes.model.doc import Document
|
||||
from webnotes.modules import reload_doc
|
||||
|
||||
def execute():
|
||||
reload_doc('home', 'doctype', 'feed')
|
@ -1,18 +1,18 @@
|
||||
import webnotes
|
||||
import webnotes.defs
|
||||
from webnotes.utils import cint
|
||||
import home
|
||||
|
||||
def on_login(login_manager):
|
||||
"""
|
||||
called from login manager, before login
|
||||
"""
|
||||
try:
|
||||
if login_manager.user not in ('Guest', None, ''):
|
||||
if login_manager.user not in ('Guest', None, ''):
|
||||
try:
|
||||
import server_tools.gateway_utils
|
||||
server_tools.gateway_utils.check_login(login_manager.user)
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
def on_login_post_session(login_manager):
|
||||
"""
|
||||
@ -29,9 +29,21 @@ def on_login_post_session(login_manager):
|
||||
sid!=%s""", \
|
||||
(webnotes.session['user'], webnotes.session['sid']), as_list=1)
|
||||
|
||||
if webnotes.session['user'] not in ('Guest'):
|
||||
# create feed
|
||||
from webnotes.utils import nowtime
|
||||
home.make_feed('Login', 'Profile', login_manager.user, login_manager.user,
|
||||
'%s logged in at %s' % (login_manager.user_fullname, nowtime()),
|
||||
login_manager.user=='Administrator' and '#8CA2B3' or '#1B750D')
|
||||
|
||||
def comment_added(doc):
|
||||
"""add comment to feed"""
|
||||
import json
|
||||
home.make_feed('Comment', doc.comment_doctype, doc.comment_docname, doc.comment_by,
|
||||
'<i>"' + doc.comment + '"</i>', '#6B24B3')
|
||||
|
||||
def doclist_all(doc, method):
|
||||
"""doclist trigger called from webnotes.model.doclist on any event"""
|
||||
import home
|
||||
home.update_feed(doc, method)
|
||||
|
||||
def boot_session(bootinfo):
|
||||
@ -51,5 +63,6 @@ def boot_session(bootinfo):
|
||||
def get_letter_heads():
|
||||
"""load letter heads with startup"""
|
||||
import webnotes
|
||||
ret = webnotes.conn.sql("select name, content from `tabLetter Head` where ifnull(disabled,0)=0")
|
||||
ret = webnotes.conn.sql("""select name, content from `tabLetter Head`
|
||||
where ifnull(disabled,0)=0""")
|
||||
return dict(ret)
|
||||
|
@ -1 +1 @@
|
||||
355
|
||||
357
|
Loading…
x
Reference in New Issue
Block a user