[minor] customer login start
diff --git a/config.json b/config.json
index 5412b01..f9c71b4 100644
--- a/config.json
+++ b/config.json
@@ -106,8 +106,13 @@
},
"orders": {
"no_cache": true,
- "template": "app/website/templates/pages/orders",
- "args_method": "selling.doctype.sales_order.sales_order.get_currency_and_number_format"
+ "template": "app/website/templates/pages/transaction_list",
+ "args_method": "website.helpers.transaction.order_list_args"
+ },
+ "invoices": {
+ "no_cache": true,
+ "template": "app/website/templates/pages/transaction_list",
+ "args_method": "website.helpers.transaction.invoice_list_args"
},
"product_search": {
"template": "app/website/templates/pages/product_search"
diff --git a/public/build.json b/public/build.json
index 24abde2..b8d7dd4 100644
--- a/public/build.json
+++ b/public/build.json
@@ -7,8 +7,7 @@
"app/public/js/startup.css"
],
"public/js/all-web.min.js": [
- "app/public/js/website_utils.js",
- "lib/public/js/wn/misc/number_format.js"
+ "app/public/js/website_utils.js"
],
"public/js/all-app.min.js": [
"app/public/js/startup.js",
diff --git a/selling/doctype/sales_order/sales_order.py b/selling/doctype/sales_order/sales_order.py
index 8e3ed70..604c5eb 100644
--- a/selling/doctype/sales_order/sales_order.py
+++ b/selling/doctype/sales_order/sales_order.py
@@ -4,7 +4,6 @@
from __future__ import unicode_literals
import webnotes
import webnotes.utils
-import json
from webnotes.utils import cstr, flt, getdate
from webnotes.model.bean import getlist
@@ -287,31 +286,6 @@
def on_update(self):
pass
-@webnotes.whitelist()
-def get_orders():
- # find customer id
- customer = webnotes.conn.get_value("Contact", {"email_id": webnotes.session.user},
- "customer")
-
- if customer:
- orders = webnotes.conn.sql("""select
- name, creation, currency from `tabSales Order`
- where customer=%s
- and docstatus=1
- order by creation desc
- limit 20
- """, customer, as_dict=1)
- for order in orders:
- order.items = webnotes.conn.sql("""select
- item_name, qty, export_rate, export_amount, delivered_qty, stock_uom
- from `tabSales Order Item`
- where parent=%s
- order by idx""", order.name, as_dict=1)
-
- return orders
- else:
- return []
-
def get_website_args():
customer = webnotes.conn.get_value("Contact", {"email_id": webnotes.session.user},
"customer")
@@ -325,17 +299,9 @@
"doc": bean.doc,
"doclist": bean.doclist,
"webnotes": webnotes,
- "utils": webnotes.utils
+ "utils": webnotes.utils,
}
-def get_currency_and_number_format():
- return {
- "global_number_format": webnotes.conn.get_default("number_format") or "#,###.##",
- "currency": webnotes.conn.get_default("currency"),
- "currency_symbols": json.dumps(dict(webnotes.conn.sql("""select name, symbol
- from tabCurrency where ifnull(enabled,0)=1""")))
- }
-
def set_missing_values(source, target):
bean = webnotes.bean(target)
bean.run_method("onload_post_render")
diff --git a/website/helpers/transaction.py b/website/helpers/transaction.py
new file mode 100644
index 0000000..336be2a
--- /dev/null
+++ b/website/helpers/transaction.py
@@ -0,0 +1,63 @@
+# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd.
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+import webnotes
+from webnotes.utils import cint, formatdate
+import json
+
+def get_transaction_list(doctype, start):
+ # find customer id
+ customer = webnotes.conn.get_value("Contact", {"email_id": webnotes.session.user},
+ "customer")
+
+ if customer:
+ transactions = webnotes.conn.sql("""select name, creation, currency, grand_total_export
+ from `tab%s` where customer=%s and docstatus=1
+ order by creation desc
+ limit %s, 20""" % (doctype, "%s", "%s"), (customer, cint(start)), as_dict=1)
+ for doc in transactions:
+ doc.items = ", ".join(webnotes.conn.sql_list("""select item_name
+ from `tab%s Item` where parent=%s limit 5""" % (doctype, "%s"), doc.name))
+ doc.creation = formatdate(doc.creation)
+ return transactions
+ else:
+ return []
+
+def get_common_args():
+ return {
+ "global_number_format": webnotes.conn.get_default("number_format") or "#,###.##",
+ "currency": webnotes.conn.get_default("currency"),
+ "currency_symbols": json.dumps(dict(webnotes.conn.sql("""select name, symbol
+ from tabCurrency where ifnull(enabled,0)=1""")))
+ }
+
+@webnotes.whitelist()
+def get_orders(start=0):
+ return get_transaction_list("Sales Order", start)
+
+def order_list_args():
+ args = get_common_args()
+ args.update({
+ "title": "My Orders",
+ "method": "website.helpers.transaction.get_orders",
+ "icon": "icon-list",
+ "empty_list_message": "No Orders Yet",
+ "page": "order",
+ })
+ return args
+
+@webnotes.whitelist()
+def get_invoices(start=0):
+ return get_transaction_list("Sales Invoice", start)
+
+def invoice_list_args():
+ args = get_common_args()
+ args.update({
+ "title": "Invoices",
+ "method": "website.helpers.transaction.get_invoices",
+ "icon": "icon-file-text",
+ "empty_list_message": "No Invoices Found",
+ "page": "invoice"
+ })
+ return args
\ No newline at end of file
diff --git a/website/templates/html/outer.html b/website/templates/html/outer.html
index 0f0f400..8e26f09 100644
--- a/website/templates/html/outer.html
+++ b/website/templates/html/outer.html
@@ -10,8 +10,7 @@
<a id="login-link" href="login">Login</a>
</div>
<div class="pull-right hide" style="margin:4px;" id="user-tools-post-login">
- <a href="profile" title="My Profile" id="user-full-name"></a> |
- <a href="account" title="My Account">My Account</a> |
+ <a href="account" title="My Account" id="user-full-name"></a> |
{% if shopping_cart_enabled -%}
<a href="cart" title="Shopping Cart"><i class="icon-shopping-cart"></i>
<span class="cart-count"></span></a> |
diff --git a/website/templates/pages/account.html b/website/templates/pages/account.html
index 539e014..6dcc497 100644
--- a/website/templates/pages/account.html
+++ b/website/templates/pages/account.html
@@ -8,12 +8,23 @@
<li><a href="index">Home</a></li>
<li class="active">My Account</li>
</ul>
- <h3>My Account</h3>
- <p><a href="profile"><i class="icon-user icon-fixed-width"></i> Change my name, password</a></p>
- <p><a href="addresses"><i class="icon-map-marker icon-fixed-width"></i> My Addresses</a></p>
- <p><a href="orders"><i class="icon-list icon-fixed-width"></i> My Orders</a></p>
- <p><a href="tickets"><i class="icon-tags icon-fixed-width"></i> My Tickets</a></p>
- <p><a href="server.py?cmd=web_logout"><i class="icon-signout icon-fixed-width"></i> Logout</a></p>
+ <!-- <h3>My Account</h3> -->
+ <ul class="nav nav-stacked pull-left">
+ <li><a href="profile"><i class="icon-user icon-fixed-width"></i>
+ Change my name, password</a></li>
+ <li><a href="addresses"><i class="icon-map-marker icon-fixed-width"></i>
+ My Addresses</a></li>
+ <li><a href="orders"><i class="icon-list icon-fixed-width"></i> My Orders</a></li>
+ <li><a href="tickets"><i class="icon-tags icon-fixed-width"></i> My Tickets</a></li>
+ <li style="border-top: 1px solid #ddd"></li>
+ <li><a href="messages"><i class="icon-comments icon-fixed-width"></i> Messages</a></li>
+ <li><a href="quotations"><i class="icon-shopping-cart icon-fixed-width"></i>
+ Quotations</a></li>
+ <li><a href="invoices"><i class="icon-file-text icon-fixed-width"></i> Invoices</a></li>
+ <li><a href="delivery_notes"><i class="icon-truck icon-fixed-width"></i> Shipments</a></li>
+ <li style="border-top: 1px solid #ddd"></li>
+ <li><a href="server.py?cmd=web_logout"><i class="icon-signout icon-fixed-width"></i>
+ Logout</a></li>
</ul>
</div>
{% endblock %}
\ No newline at end of file
diff --git a/website/templates/pages/address.html b/website/templates/pages/address.html
index faf7bb0..6544b12 100644
--- a/website/templates/pages/address.html
+++ b/website/templates/pages/address.html
@@ -42,9 +42,9 @@
<li><a href="index">Home</a></li>
<li><a href="account">My Account</a></li>
<li><a href="addresses">My Addresses</a></li>
- <li class="active">{{ title }}</li>
+ <li class="active"><i class="icon-map-marker icon-fixed-width"></i> {{ title }}</li>
</ul>
- <h3><i class="icon-map-marker"></i> {{ title }}</h3>
+ <h3><i class="icon-map-marker icon-fixed-width"></i> {{ title }}</h3>
<button type="button" class="btn btn-primary pull-right" id="address-save"><i class="icon-ok"></i>
{{ doc and "Save" or "Insert" }}</button>
<div class="clearfix"></div>
diff --git a/website/templates/pages/addresses.html b/website/templates/pages/addresses.html
index 90d0d13..04fc47b 100644
--- a/website/templates/pages/addresses.html
+++ b/website/templates/pages/addresses.html
@@ -7,10 +7,8 @@
<ul class="breadcrumb">
<li><a href="index">Home</a></li>
<li><a href="account">My Account</a></li>
- <li class="active">My Addresses</li>
+ <li class="active"><i class="icon-map-marker icon-fixed-width"></i> My Addresses</li>
</ul>
- <h3><i class="icon-map-marker icon-fixed-width"></i> My Addresses</h3>
- <hr>
<p><a class="btn btn-default" href="address"><i class="icon-plus"> New Address</i></a></p>
<hr>
<div id="address-list">
diff --git a/website/templates/pages/order.html b/website/templates/pages/order.html
index 1893575..c70dcb1 100644
--- a/website/templates/pages/order.html
+++ b/website/templates/pages/order.html
@@ -8,9 +8,9 @@
<li><a href="index">Home</a></li>
<li><a href="account">My Account</a></li>
<li><a href="orders">My Orders</a></li>
- <li class="active">{{ doc.name }}</li>
+ <li class="active"><i class="icon-file icon-fixed-width"></i> {{ doc.name }}</li>
</ul>
- <h3><i class="icon-file"></i> {{ doc.name }}</h3>
+ <h3><i class="icon-file icon-fixed-width"></i> {{ doc.name }}</h3>
<hr>
{%- if doc.status -%}
<div style="font-size: 13px;">
diff --git a/website/templates/pages/orders.html b/website/templates/pages/orders.html
deleted file mode 100644
index e0bf4d7..0000000
--- a/website/templates/pages/orders.html
+++ /dev/null
@@ -1,70 +0,0 @@
-{% extends "app/website/templates/html/page.html" %}
-
-{% set title="My Orders" %}
-
-{% block content %}
-<script>
-global_number_format = "{{ global_number_format }}";
-currency = "{{ currency }}";
-wn.currency_symbols = {{ currency_symbols }};
-</script>
-<div class="col-md-12">
- <ul class="breadcrumb">
- <li><a href="index">Home</a> <span class="divider">/</span></li>
- <li><a href="account">My Account</a> <span class="divider">/</span></li>
- <li class="active">My Orders</li>
- </ul>
- <h3><i class="icon-list icon-fixed-width"></i> My Orders</h3>
- <hr>
- <div id="order-list" style="font-size: 13px;">
- <div class="progress progress-striped active">
- <div class="progress-bar progress-bar-info" style="width: 100%;"></div>
- </div>
- </div>
-</div>
-<script>
-$(document).ready(function() {
- var order_start = 0;
-
- wn.call({
- method: "selling.doctype.sales_order.sales_order.get_orders",
- args: {
- start: order_start
- },
- callback: function(r) {
- $("#order-list .progress").remove();
- var $list = $("#order-list");
-
- if(!(r.message && r.message.length)) {
- $list.html("<div class='alert'>No Orders Yet</div>");
- return;
- }
-
- $.each(r.message, function(i, order) {
-
- // parent
- var $order = $(repl('<div class="row">\
- <div class="col-md-3"><a href="order?name=%(name)s">%(name)s</a></div>\
- <div class="col-md-9"></div>\
- </div>', order)).appendTo($list);
-
- // items
- $.each(order.items || [], function(i, item) {
- item.export_rate = format_currency(item.export_rate, order.currency);
- item.export_amount = format_currency(item.export_amount, order.currency);
- var $item = $(repl('<div class="row">\
- <div class="col-md-3">%(item_name)s</div>\
- <div class="col-md-2" style="text-align: right;">%(export_rate)s</div>\
- <div class="col-md-2" style="text-align: right;">%(qty)s %(stock_uom)s</div>\
- <div class="col-md-2" style="text-align: right;">%(export_amount)s</div>\
- </div>\
- </div>', item)).appendTo($order.find(".col-md-9"));
- });
-
- $("<hr>").appendTo($list);
- });
- }
- })
-})
-</script>
-{% endblock %}
\ No newline at end of file
diff --git a/website/templates/pages/profile.html b/website/templates/pages/profile.html
index ea2433b..4c03b40 100644
--- a/website/templates/pages/profile.html
+++ b/website/templates/pages/profile.html
@@ -5,12 +5,10 @@
{% block content %}
<div class="col-md-12">
<ul class="breadcrumb">
- <li><a href="index">Home</a> <span class="divider">/</span></li>
- <li><a href="account">My Account</a> <span class="divider">/</span></li>
- <li class="active">My Profile</li>
+ <li><a href="index">Home</a></li>
+ <li><a href="account">My Account</a></li>
+ <li class="active"><i class="icon-user icon-fixed-width"></i> My Profile</li>
</ul>
- <h2><i class="icon-user"></i> My Profile</h2>
- <hr>
<div class="alert" id="message" style="display: none;"></div>
<form>
<fieldset>
diff --git a/website/templates/pages/ticket.html b/website/templates/pages/ticket.html
index 1ae2e88..2f85ac0 100644
--- a/website/templates/pages/ticket.html
+++ b/website/templates/pages/ticket.html
@@ -5,12 +5,12 @@
{% block content %}
<div class="col-md-12">
<ul class="breadcrumb">
- <li><a href="index">Home</a> <span class="divider">/</span></li>
- <li><a href="account">My Account</a> <span class="divider">/</span></li>
- <li><a href="tickets">My Tickets</a> <span class="divider">/</span></li>
- <li class="active">{{ doc.name }}</li>
+ <li><a href="index">Home</a></li>
+ <li><a href="account">My Account</a></li>
+ <li><a href="tickets">My Tickets</a></li>
+ <li class="active"><i class="icon-ticket icon-fixed-width"></i> {{ doc.name }}</li>
</ul>
- <h3><i class="icon-file"></i> {{ doc.name }}</h3>
+ <h3><i class="icon-ticket icon-fixed-width"></i> {{ doc.name }}</h3>
<hr>
{%- if doc.status -%}
<div class="row">
diff --git a/website/templates/pages/tickets.html b/website/templates/pages/tickets.html
index 3d5cf21..9c476ff 100644
--- a/website/templates/pages/tickets.html
+++ b/website/templates/pages/tickets.html
@@ -7,10 +7,8 @@
<ul class="breadcrumb">
<li><a href="index">Home</a></li>
<li><a href="account">My Account</a></li>
- <li class="active">My Tickets</li>
+ <li class="active"><i class="icon-ticket icon-fixed-width"></i> My Tickets</li>
</ul>
- <h3><i class="icon-tags icon-fixed-width"></i> My Tickets</h3>
- <hr>
<div id="ticket-list" style="font-size: 13px;">
<div class="progress progress-striped active">
<div class="progress-bar progress-bar-info" style="width: 100%;"></div>
diff --git a/website/templates/pages/transaction_list.html b/website/templates/pages/transaction_list.html
new file mode 100644
index 0000000..e92764a
--- /dev/null
+++ b/website/templates/pages/transaction_list.html
@@ -0,0 +1,69 @@
+{% extends "app/website/templates/html/page.html" %}
+
+{% block content %}
+<div class="col-md-12">
+ <ul class="breadcrumb">
+ <li><a href="index">Home</a></li>
+ <li><a href="account">My Account</a></li>
+ <li class="active"><i class="{{ icon }} icon-fixed-width"></i> {{ title }}</li>
+ </ul>
+ <div class="list-group transaction-list">
+ <div class="progress progress-striped active">
+ <div class="progress-bar progress-bar-info" style="width: 100%;"></div>
+ </div>
+ </div>
+</div>
+
+<script>
+global_number_format = "{{ global_number_format }}";
+currency = "{{ currency }}";
+wn.currency_symbols = {{ currency_symbols }};
+
+$(document).ready(function() {
+ var start = 0;
+ var $list = $(".transaction-list");
+
+ var get_transactions = function() {
+ wn.call({
+ method: "{{ method }}",
+ args: { start: start },
+ callback: function(r) {
+ $list.find(".progress").remove();
+
+ if(!(r.message && r.message.length)) {
+ console.log("empty");
+ if(!$list.html().trim()) {
+ $list.html("<div class='alert alert-warning'>\
+ {{ empty_list_message }}</div>");
+ }
+ return;
+ }
+
+ start += r.message.length;
+
+ $.each(r.message, function(i, doc) {
+ render(doc);
+ });
+ }
+ })
+ };
+
+ var render = function(doc) {
+ doc.grand_total_export = format_currency(doc.grand_total_export, doc.currency);
+
+ var $row = $(repl('<a href="{{ page }}?name=%(name)s" class="list-group-item">\
+ <div class="row">\
+ <div class="col-md-6">\
+ <div class="row col-md-12">%(name)s</div>\
+ <div class="row col-md-12 text-muted">%(items)s...</div>\
+ </div>\
+ <div class="col-md-3 text-right">%(grand_total_export)s</div>\
+ <div class="col-md-3 text-right text-muted">%(creation)s</div>\
+ </div>\
+ </a>', doc)).appendTo($list);
+ };
+
+ get_transactions();
+});
+</script>
+{% endblock %}
\ No newline at end of file