Beispiel #1
0
def clear_cache(doctype=None):
    def clear_single(dt):
        frappe.cache().delete_value(cache_name(dt, False))
        frappe.cache().delete_value(cache_name(dt, True))

        if doctype_cache and (dt in doctype_cache):
            del doctype_cache[dt]

    if doctype:
        clear_single(doctype)

        # clear all parent doctypes
        for dt in frappe.db.sql(
                """select parent from tabDocField 
			where fieldtype="Table" and options=%s""", (doctype, )):
            clear_single(dt[0])

        # clear all notifications
        from frappe.core.doctype.notification_count.notification_count import delete_notification_count_for
        delete_notification_count_for(doctype)

    else:
        # clear all
        for dt in frappe.db.sql("""select name from tabDocType"""):
            clear_single(dt[0])
Beispiel #2
0
def clear_cache(doctype=None):
    def clear_single(dt):
        frappe.cache().delete_value("meta:" + dt)
        frappe.cache().delete_value("form_meta:" + dt)
        frappe.cache().delete_value("table_columns:" + dt)

    if doctype:
        clear_single(doctype)

        # clear all parent doctypes
        for dt in frappe.db.sql(
                """select parent from tabDocField
			where fieldtype="Table" and options=%s""", (doctype, )):
            clear_single(dt[0])

        # clear all notifications
        from frappe.core.doctype.notification_count.notification_count import delete_notification_count_for
        delete_notification_count_for(doctype)

    else:
        # clear all
        for dt in frappe.db.sql("""select name from tabDocType"""):
            clear_single(dt[0])

    frappe.cache().delete_value("is_table")
def clear_doctype_cache(doctype):
	frappe.clear_cache(doctype=doctype)
	delete_notification_count_for(doctype)
	for user in frappe.db.sql_list("""select distinct tabUserRole.parent from tabUserRole, tabDocPerm
		where tabDocPerm.parent = %s
		and tabDocPerm.role = tabUserRole.role""", doctype):
		frappe.clear_cache(user=user)
Beispiel #4
0
def reset_perms(doctype):
	from frappe.core.doctype.notification_count.notification_count import delete_notification_count_for
	delete_notification_count_for(doctype)

	clear_perms(doctype)
	reload_doc(db.get_value("DocType", doctype, "module"),
		"DocType", doctype, force=True)
Beispiel #5
0
def get_list(arg=None):
	"""get list of messages"""
	frappe.form_dict['limit_start'] = int(frappe.form_dict['limit_start'])
	frappe.form_dict['limit_page_length'] = int(frappe.form_dict['limit_page_length'])
	frappe.form_dict['user'] = frappe.session['user']

	# set all messages as read
	frappe.db.begin()
	frappe.db.sql("""UPDATE `tabComment`
	set docstatus = 1 where comment_doctype in ('My Company', 'Message')
	and comment_docname = %s
	""", frappe.user.name)
	
	delete_notification_count_for("Messages")
	
	frappe.db.commit()

	if frappe.form_dict['contact'] == frappe.session['user']:
		# return messages
		return frappe.db.sql("""select * from `tabComment` 
		where (owner=%(contact)s 
			or comment_docname=%(user)s 
			or (owner=comment_docname and ifnull(parenttype, "")!="Assignment"))
		and comment_doctype ='Message'
		order by creation desc
		limit %(limit_start)s, %(limit_page_length)s""", frappe.local.form_dict, as_dict=1)		
	else:
		return frappe.db.sql("""select * from `tabComment` 
		where (owner=%(contact)s and comment_docname=%(user)s)
		or (owner=%(user)s and comment_docname=%(contact)s)
		or (owner=%(contact)s and comment_docname=%(contact)s)
		and comment_doctype ='Message'
		order by creation desc
		limit %(limit_start)s, %(limit_page_length)s""", frappe.local.form_dict, as_dict=1)
Beispiel #6
0
def reset_perms(doctype):
	from frappe.core.doctype.notification_count.notification_count import delete_notification_count_for
	delete_notification_count_for(doctype)

	clear_perms(doctype)
	reload_doc(db.get_value("DocType", doctype, "module"),
		"DocType", doctype, force=True)
def clear_doctype_cache(doctype):
	frappe.clear_cache(doctype=doctype)
	delete_notification_count_for(doctype)
	for user in frappe.db.sql_list("""select distinct tabUserRole.parent from tabUserRole, tabDocPerm
		where tabDocPerm.parent = %s
		and tabDocPerm.role = tabUserRole.role""", doctype):
		frappe.clear_cache(user=user)
Beispiel #8
0
def get_list(arg=None):
	"""get list of messages"""
	frappe.form_dict['limit_start'] = int(frappe.form_dict['limit_start'])
	frappe.form_dict['limit_page_length'] = int(frappe.form_dict['limit_page_length'])
	frappe.form_dict['user'] = frappe.session['user']

	# set all messages as read
	frappe.db.begin()
	frappe.db.sql("""UPDATE `tabComment`
	set docstatus = 1 where comment_doctype in ('My Company', 'Message')
	and comment_docname = %s
	""", frappe.user.name)

	delete_notification_count_for("Messages")

	frappe.db.commit()

	if frappe.form_dict['contact'] == frappe.session['user']:
		# return messages
		return frappe.db.sql("""select * from `tabComment`
		where (owner=%(contact)s
			or comment_docname=%(user)s
			or (owner=comment_docname and ifnull(parenttype, "")!="Assignment"))
		and comment_doctype ='Message'
		order by creation desc
		limit %(limit_start)s, %(limit_page_length)s""", frappe.local.form_dict, as_dict=1)
	else:
		return frappe.db.sql("""select * from `tabComment`
		where (owner=%(contact)s and comment_docname=%(user)s)
		or (owner=%(user)s and comment_docname=%(contact)s)
		or (owner=%(contact)s and comment_docname=%(contact)s)
		and comment_doctype ='Message'
		order by creation desc
		limit %(limit_start)s, %(limit_page_length)s""", frappe.local.form_dict, as_dict=1)
Beispiel #9
0
def post(txt, contact, parenttype=None, notify=False, subject=None):
	import frappe
	"""post message"""

	d = frappe.new_doc('Comment')
	d.parenttype = parenttype
	d.comment = txt
	d.comment_docname = contact
	d.comment_doctype = 'Message'
	d.insert(ignore_permissions=True)

	delete_notification_count_for("Messages")

	if notify and cint(notify):
		if contact==frappe.session.user:
			_notify([user.name for user in frappe.get_list("User",
				{"user_type":"System User", "enabled": 1}) \
					if user.name not in ("Guest", "Administrator")], txt)
		else:
			_notify(contact, txt, subject)
Beispiel #10
0
def post(txt, contact, parenttype=None, notify=False, subject=None):
	import frappe
	"""post message"""

	d = frappe.new_doc('Comment')
	d.parenttype = parenttype
	d.comment = txt
	d.comment_docname = contact
	d.comment_doctype = 'Message'
	d.insert(ignore_permissions=True)

	delete_notification_count_for("Messages")

	if notify and cint(notify):
		if contact==frappe.session.user:
			_notify([user.name for user in frappe.get_list("User",
				{"user_type":"System User", "enabled": 1}) \
					if user.name not in ("Guest", "Administrator")], txt)
		else:
			_notify(contact, txt, subject)
Beispiel #11
0
	def on_update(self):
		from frappe.model.db_schema import updatedb
		updatedb(self.name)

		self.change_modified_of_parent()
		make_module_and_roles(self)

		from frappe import conf
		if not (frappe.flags.in_import or frappe.flags.in_test) and conf.get('developer_mode') or 0:
			self.export_doc()
			self.make_controller_template()

		# update index
		if not getattr(self, "custom", False):
			from frappe.modules import load_doctype_module
			module = load_doctype_module(self.name, self.module)
			if hasattr(module, "on_doctype_update"):
				module.on_doctype_update()

		delete_notification_count_for(doctype=self.name)
		frappe.clear_cache(doctype=self.name)
Beispiel #12
0
    def on_update(self):
        from frappe.model.db_schema import updatedb
        updatedb(self.name)

        self.change_modified_of_parent()
        make_module_and_roles(self)

        from frappe import conf
        if not (frappe.flags.in_import
                or frappe.flags.in_test) and conf.get('developer_mode') or 0:
            self.export_doc()
            self.make_controller_template()

        # update index
        if not getattr(self, "custom", False):
            from frappe.modules import load_doctype_module
            module = load_doctype_module(self.name, self.module)
            if hasattr(module, "on_doctype_update"):
                module.on_doctype_update()

        delete_notification_count_for(doctype=self.name)
        frappe.clear_cache(doctype=self.name)
Beispiel #13
0
def post(arg=None):
    import frappe
    """post message"""
    if not arg:
        arg = {}
        arg.update(frappe.local.form_dict)

    if isinstance(arg, basestring):
        import json
        arg = json.loads(arg)

    d = frappe.new_doc('Comment')
    d.parenttype = arg.get("parenttype")
    d.comment = arg['txt']
    d.comment_docname = arg['contact']
    d.comment_doctype = 'Message'
    d.insert(ignore_permissions=True)

    delete_notification_count_for("Messages")

    import frappe.utils
    if frappe.utils.cint(arg.get('notify')):
        notify(arg)
Beispiel #14
0
def post(arg=None):
	import frappe
	"""post message"""
	if not arg:
		arg = {}
		arg.update(frappe.local.form_dict)
	
	if isinstance(arg, basestring):
		import json
		arg = json.loads(arg)

	d = frappe.new_doc('Comment')
	d.parenttype = arg.get("parenttype")
	d.comment = arg['txt']
	d.comment_docname = arg['contact']
	d.comment_doctype = 'Message'
	d.insert(ignore_permissions=True)
	
	delete_notification_count_for("Messages")

	import frappe.utils
	if frappe.utils.cint(arg.get('notify')):
		notify(arg)
Beispiel #15
0
def clear_cache(doctype=None):
	def clear_single(dt):
		frappe.cache().delete_value("meta:" + dt)
		frappe.cache().delete_value("form_meta:" + dt)
		frappe.cache().delete_value("table_columns:" + dt)

	if doctype:
		clear_single(doctype)

		# clear all parent doctypes
		for dt in frappe.db.sql("""select parent from tabDocField
			where fieldtype="Table" and options=%s""", (doctype,)):
			clear_single(dt[0])

		# clear all notifications
		from frappe.core.doctype.notification_count.notification_count import delete_notification_count_for
		delete_notification_count_for(doctype)

	else:
		# clear all
		for dt in frappe.db.sql("""select name from tabDocType"""):
			clear_single(dt[0])

	frappe.cache().delete_value("is_table")
Beispiel #16
0
def post(arg=None):
    import frappe
    """post message"""
    if not arg:
        arg = {}
        arg.update(frappe.local.form_dict)

    if isinstance(arg, basestring):
        import json
        arg = json.loads(arg)

    from frappe.model.doc import Document
    d = Document('Comment')
    d.parenttype = arg.get("parenttype")
    d.comment = arg['txt']
    d.comment_docname = arg['contact']
    d.comment_doctype = 'Message'
    d.save()

    delete_notification_count_for("Messages")

    import frappe.utils
    if frappe.utils.cint(arg.get('notify')):
        notify(arg)