Pārlūkot izejas kodu

updates

version-14
Rushabh Mehta pirms 11 gadiem
vecāks
revīzija
9eed57b828
5 mainītis faili ar 89 papildinājumiem un 22 dzēšanām
  1. +61
    -14
      frappe/templates/generators/web_form.html
  2. +1
    -1
      frappe/utils/data.py
  3. +2
    -0
      frappe/utils/formatters.py
  4. +8
    -1
      frappe/website/doctype/web_form/web_form.json
  5. +17
    -6
      frappe/website/doctype/web_form/web_form.py

+ 61
- 14
frappe/templates/generators/web_form.html Parādīt failu

@@ -7,8 +7,36 @@
{% block content %}

{% if login_required and user=="Guest" %}
<div class="alert alert-warning">{{ _("Please login to create a new {0}").format(_(doc_type)) }}</div>

<div class="alert alert-info">
{{ _("Please login to create a new {0}").format(_(doc_type)) }}
</div>
{% elif (login_required and doc_name and not params.name) %}
<div class="alert alert-info">
{{ _("{0} already exists").format(_(doc_type)) }}
</div>
<p>
<a href="{{ pathname }}?name={{ doc_name }}" class="btn btn-primary">
{{ _("Edit your record") }}
</a>
</p>
{% elif (login_required and allow_multiple and not params.name and not params.new) %}
<p>
<a href="{{ pathname }}?new=1" class="btn btn-primary">
{{ _("New {0}").format(_(doc_type)) }}
</a>
</p>
<div class="list-group">
{% for i in items %}
<div class="list-group-item">
<a href="{{ pathname }}?name={{ i.name }}">
{{ i.title }}
</a>
<span class="text-muted pull-right">
{{ frappe.format_value(i.creation, {"fieldtype":"Date"}) }}
</span>
</div>
{% endfor %}
</div>
{% else %}
<div class="form-message alert alert-info hide"></div>
<form class="form-horizontal" role="form"
@@ -25,7 +53,9 @@
{{ field.label }}</label>
<div class="col-sm-9">
<input type="text" class="form-control" name="{{ field.fieldname }}"
id="{{ field.fieldname }}" placeholder="{{ field.placeholder or '' }}">
id="{{ field.fieldname }}" placeholder="{{ field.placeholder or '' }}"
{{ field.reqd and "required" or "" }} data-label="{{ field.label }}"
value="{{ doc and doc.get(field.fieldname) or '' }}">
{% if field.description -%}
<span class="help-block">{{ field.description }}</span>
{%- endif %}
@@ -37,9 +67,12 @@
{{ field.label }}</label>
<div class="col-sm-9">
<select class="form-control" name="{{ field.fieldname }}"
id="{{ field.fieldname }}">
data-label="{{ field.label }}"
id="{{ field.fieldname }}" {{ field.reqd and "required" or "" }}>
{% for option in field.options.split("\n") %}
<option value="{{ option }}">{{ option }}</option>
<option value="{{ option }}"
"{{ doc and doc.get(field.fieldname)==option and 'selected' or '' }}">
{{ option }}</option>
{% endfor %}
</select>
{% if field.description -%}
@@ -53,7 +86,9 @@
{{ field.label }}</label>
<div class="col-sm-9">
<textarea class="form-control" name="{{ field.fieldname }}"
id="{{ field.fieldname }}" style="height: 100px;"></textarea>
id="{{ field.fieldname }}" style="height: 100px;"
data-label="{{ field.label }}"
{{ field.reqd and "required" or "" }}>{{ doc and doc.get(field.fieldname) or '' }}</textarea>
{% if field.description -%}
<span class="help-block">{{ field.description }}</span>
{%- endif %}
@@ -65,7 +100,9 @@
<div class="checkbox">
<label>
<input type="checkbox" id="{{ field.fieldname }}"
name="{{ field.fieldname }}"> {{ field.label }}
name="{{ field.fieldname }}"
"{{ doc and doc.get(field.fieldname) and 'checked' or '' }}">
{{ field.label }}
</label>
</div>
</div>
@@ -75,6 +112,7 @@
<div class="form-group">
<div class="col-sm-offset-3 col-sm-9">
<button type="submit" class="btn btn-primary">Submit</button>
<a href="{{ pathname }}" class="btn btn-default">Cancel</a>
</div>
</div>
</form>
@@ -84,14 +122,20 @@
{% block script %}
<script>
frappe.ready(function() {
var args = {},
$form = $("form[data-web-form='{{ name }}']");
$form.find("[name]").each(function() {
args[$(this).attr("name")] = $(this).val();
});
var $form = $("form[data-web-form='{{ name }}']");

$("form[data-web-form='{{ name }}']").on("submit", function() {
args =
var args = {};

$form.find("[name]").each(function() {
var $input = $(this), val = $input.val();

if($input.prop("required") && val===undefined) {
frappe.msgprint($)
}
args[$(this).attr("name")] = $(this).val();
});

frappe.call({
type: "POST",
method: "frappe.website.doctype.web_form.web_form.accept",
@@ -100,11 +144,14 @@ frappe.ready(function() {
callback: function(data) {
if(!data.exc) {
$form.addClass("hide");
scroll(0, 0);
$(".form-message")
.html("{{ success_message or 'Thank You!' }}")
.removeClass("hide");
{% if success_url -%}
window.location.href = "{{ success_url }}"
setTimeout(function() {
window.location.href = "{{ success_url }}";
}, 1000);
{%- endif %};
}
}


+ 1
- 1
frappe/utils/data.py Parādīt failu

@@ -163,7 +163,7 @@ def formatdate(string_date=None, format_string=None):
if getattr(frappe.local, "user_format", None) is None:
frappe.local.user_format = frappe.db.get_default("date_format")

out = frappe.local.user_format
out = frappe.local.user_format or "yyyy-mm-dd"

return out.replace("dd", date.strftime("%d"))\
.replace("mm", date.strftime("%m"))\


+ 2
- 0
frappe/utils/formatters.py Parādīt failu

@@ -2,11 +2,13 @@
# MIT License. See license.txt

from __future__ import unicode_literals
import frappe
from frappe.utils import formatdate, fmt_money, flt
from frappe.model.meta import get_field_currency, get_field_precision
import re

def format_value(value, df, doc=None, currency=None):
df = frappe._dict(df)
if df.fieldtype=="Date":
return formatdate(value)



+ 8
- 1
frappe/website/doctype/web_form/web_form.json Parādīt failu

@@ -144,6 +144,13 @@
"search_index": 0,
"set_only_once": 0
},
{
"depends_on": "login_required",
"fieldname": "allow_comments",
"fieldtype": "Check",
"label": "Allow Comments",
"permlevel": 0
},
{
"fieldname": "actions",
"fieldtype": "Section Break",
@@ -186,7 +193,7 @@
"is_submittable": 0,
"issingle": 0,
"istable": 0,
"modified": "2014-09-01 18:12:25.643567",
"modified": "2014-09-02 13:52:53.494298",
"modified_by": "Administrator",
"module": "Website",
"name": "Web Form",


+ 17
- 6
frappe/website/doctype/web_form/web_form.py Parādīt failu

@@ -4,10 +4,7 @@
from __future__ import unicode_literals
import frappe
from frappe.website.website_generator import WebsiteGenerator

# parameters
# name (edit)
# new
from frappe import _

class WebForm(WebsiteGenerator):
template = "templates/generators/web_form.html"
@@ -17,6 +14,20 @@ class WebForm(WebsiteGenerator):

def get_context(self, context):
context.params = frappe.form_dict
if self.login_required and frappe.session.user != "Guest":
if self.allow_edit:
if self.allow_multiple:
meta = frappe.get_meta(self.doc_type)
context.items = frappe.db.sql("""select name,
{0} as title, creation as timestamp
from `tab{1}` where owner=%s order by creation desc""".format(meta.title_field or "name",
self.doc_type), frappe.session.user, as_dict=True)
else:
name = frappe.db.get_value(self.doc_type, {"owner": frappe.session.user},
"name")
if name:
context.doc_name = name

if frappe.form_dict.name:
context.doc = frappe.get_doc(self.doc_type, frappe.form_dict.name)

@@ -36,10 +47,10 @@ def accept():

if args.name:
if doc.owner==frappe.session.user:
doc.update(ignore_permissions=True)
doc.save(ignore_permissions=True)
else:
# only if permissions are present
doc.update()
doc.save()

else:
# insert


Notiek ielāde…
Atcelt
Saglabāt