コード例 #1
0
    def build_as_list(self, context):
        '''Web form is a list, show render as list.html'''
        from frappe.www.list import get_context as get_list_context

        # set some flags to make list.py/list.html happy
        frappe.form_dict.web_form_name = self.name
        frappe.form_dict.doctype = self.doc_type
        frappe.flags.web_form = self

        self.update_list_context(context)
        get_list_context(context)
        context.is_list = True
コード例 #2
0
ファイル: web_form.py プロジェクト: mhbu50/frappe
	def build_as_list(self, context):
		'''Web form is a list, show render as list.html'''
		from frappe.www.list import get_context as get_list_context

		# set some flags to make list.py/list.html happy
		frappe.form_dict.web_form_name = self.name
		frappe.form_dict.doctype = self.doc_type
		frappe.flags.web_form = self

		self.update_list_context(context)
		get_list_context(context)
		context.is_list = True
コード例 #3
0
	def test_get_context_hook_of_webform(self):
		create_custom_doctype()
		create_webform()

		# check context for apps without any hook
		context_list = get_list_context("", "Custom Doctype", "test-webform")
		self.assertFalse(context_list)

		# create a hook to get webform_context
		set_webform_hook(
			"webform_list_context",
			"frappe.www._test._test_webform.webform_list_context",
		)
		# check context for apps with hook
		context_list = get_list_context("", "Custom Doctype", "test-webform")
		self.assertTrue(context_list)
コード例 #4
0
    def get_context(self, context):
        context.show_sidebar = True
        from frappe.www.list import get_context as get_list_context

        frappe.form_dict.is_web_form = 1
        logged_in = frappe.session.user != "Guest"

        args, delimeter = make_route_string(frappe.form_dict)
        context.args = args
        context.delimeter = delimeter

        # check permissions
        if not logged_in and frappe.form_dict.name:
            frappe.throw(
                _("You need to be logged in to access this {0}.").format(
                    self.doc_type), frappe.PermissionError)

        if frappe.form_dict.name and not has_web_form_permission(
                self.doc_type, frappe.form_dict.name):
            frappe.throw(
                _("You don't have the permissions to access this document"),
                frappe.PermissionError)

        if self.is_standard:
            self.use_meta_fields()

        if self.login_required and logged_in:
            if self.allow_edit:
                if self.allow_multiple:
                    if not frappe.form_dict.name and not frappe.form_dict.new:
                        frappe.form_dict.doctype = self.doc_type
                        get_list_context(context)
                        context.is_list = True
                else:
                    name = frappe.db.get_value(self.doc_type,
                                               {"owner": frappe.session.user},
                                               "name")
                    if name:
                        frappe.form_dict.name = name
                    else:
                        # only a single doc allowed and no existing doc, hence new
                        frappe.form_dict.new = 1

        # always render new form if login is not required or doesn't allow editing existing ones
        if not self.login_required or not self.allow_edit:
            frappe.form_dict.new = 1

        if frappe.form_dict.name or frappe.form_dict.new:
            context.layout = self.get_layout()
            context.parents = [{"route": self.route, "title": self.title}]

        if frappe.form_dict.name:
            context.doc = frappe.get_doc(self.doc_type, frappe.form_dict.name)
            context.title = context.doc.get(context.doc.meta.get_title_field())
            context.doc.add_seen()

            context.reference_doctype = context.doc.doctype
            context.reference_name = context.doc.name

        if self.allow_comments and frappe.form_dict.name:
            context.comment_list = get_comment_list(context.doc.doctype,
                                                    context.doc.name)

        context.parents = self.get_parents(context)

        context.types = [f.fieldtype for f in self.web_form_fields]
        if context.success_message:
            context.success_message = context.success_message.replace(
                "\n", "<br>").replace("'", "\'")

        self.add_custom_context_and_script(context)
コード例 #5
0
ファイル: web_form.py プロジェクト: Dattatech/frappetest
	def get_context(self, context):
		context.show_sidebar=True
		from frappe.www.list import get_context as get_list_context

		frappe.form_dict.is_web_form = 1
		logged_in = frappe.session.user != "Guest"

		args, delimeter = make_route_string(frappe.form_dict)
		context.args = args
		context.delimeter = delimeter

		# check permissions
		if not logged_in and frappe.form_dict.name:
			frappe.throw(_("You need to be logged in to access this {0}.").format(self.doc_type), frappe.PermissionError)

		if frappe.form_dict.name and not has_web_form_permission(self.doc_type, frappe.form_dict.name):
			frappe.throw(_("You don't have the permissions to access this document"), frappe.PermissionError)

		if self.is_standard:
			self.use_meta_fields()

		if self.login_required and logged_in:
			if self.allow_edit:
				if self.allow_multiple:
					if not frappe.form_dict.name and not frappe.form_dict.new:
						frappe.form_dict.doctype = self.doc_type
						get_list_context(context)
						context.is_list = True
				else:
					name = frappe.db.get_value(self.doc_type, {"owner": frappe.session.user}, "name")
					if name:
						frappe.form_dict.name = name
					else:
						# only a single doc allowed and no existing doc, hence new
						frappe.form_dict.new = 1

		# always render new form if login is not required or doesn't allow editing existing ones
		if not self.login_required or not self.allow_edit:
			frappe.form_dict.new = 1

		if frappe.form_dict.name or frappe.form_dict.new:
			context.layout = self.get_layout()
			context.parents = [{"route": self.route, "title": self.title }]

		if frappe.form_dict.name:
			context.doc = frappe.get_doc(self.doc_type, frappe.form_dict.name)
			context.title = context.doc.get(context.doc.meta.get_title_field())
			context.doc.add_seen()

			context.reference_doctype = context.doc.doctype
			context.reference_name = context.doc.name

		if self.allow_comments and frappe.form_dict.name:
			context.comment_list = get_comment_list(context.doc.doctype,
				context.doc.name)

		context.parents = self.get_parents(context)

		context.types = [f.fieldtype for f in self.web_form_fields]
		if context.success_message:
			context.success_message = context.success_message.replace("\n",
				"<br>").replace("'", "\'")

		self.add_custom_context_and_script(context)