def add(args=None): """add in someone's to do list""" if not args: args = webnotes.local.form_dict if webnotes.conn.sql("""select owner from `tabToDo` where reference_type=%(doctype)s and reference_name=%(name)s and status="Open" and owner=%(assign_to)s""", args): webnotes.msgprint("Already in todo", raise_exception=True) return else: from webnotes.utils import nowdate d = webnotes.bean({ "doctype":"ToDo", "owner": args['assign_to'], "reference_type": args['doctype'], "reference_name": args['name'], "description": args.get('description'), "priority": args.get("priority", "Medium"), "status": "Open", "date": args.get('date', nowdate()), "assigned_by": args.get('assigned_by', webnotes.user.name), }).insert(ignore_permissions=True).doc # set assigned_to if field exists from webnotes.model.meta import has_field if has_field(args['doctype'], "assigned_to"): webnotes.conn.set_value(args['doctype'], args['name'], "assigned_to", args['assign_to']) try: if cint(args.get("restrict")): from webnotes.core.page.user_properties import user_properties user_properties.add(args['assign_to'], args['doctype'], args['name']) webnotes.msgprint(_("Restriction added")) except webnotes.PermissionError: webnotes.throw("{cannot}: {user}, {_for}: {doctype} {_and}: {name}".format(cannot=_("You cannot restrict User"), user=args['assign_to'], _for=_("for DocType"), doctype=_(args['doctype']), _and=_("and Name"), name=args['name'])) # notify if not args.get("no_notification"): notify_assignment(d.assigned_by, d.owner, d.reference_type, d.reference_name, action='ASSIGN', description=args.get("description"), notify=args.get('notify')) # update feeed try: from erpnext.home import make_feed from webnotes.utils import get_fullname make_feed('Assignment', d.reference_type, d.reference_name, webnotes.session['user'], '[%s] Assigned to %s' % (d.priority, get_fullname(d.owner)), '#C78F58') except ImportError, e: pass
def test_allow_in_restriction(self): self.add_restricted_on_blogger() webnotes.set_user("*****@*****.**") bean = webnotes.bean("Blog Post", "_test-blog-post-1") self.assertFalse(bean.has_read_perm()) webnotes.set_user("*****@*****.**") add("*****@*****.**", "Blog Post", "_test-blog-post-1") webnotes.set_user("*****@*****.**") bean = webnotes.bean("Blog Post", "_test-blog-post-1") self.assertTrue(bean.has_read_perm())
def add_restriction_to_user2(self): webnotes.set_user("*****@*****.**") add("*****@*****.**", "Blog Post", "_test-blog-post")