website settings social icons

This commit is contained in:
Rushabh Mehta 2013-02-20 15:02:21 +05:30
parent 150d98d786
commit 87e4801946
31 changed files with 1555 additions and 183 deletions

View File

@ -3,5 +3,5 @@
"Department",
"Trash Reason",
"Days for which Holidays are blocked for this department.",
"Holiday Block List"
"Leave Block List"
]

View File

@ -2,6 +2,7 @@
"HR",
"To Date",
"Leave Approver",
"Follow via Email",
"Employee",
"Employee Name",
"Status",
@ -9,6 +10,7 @@
"Apply / Approve Leaves",
"Rejected",
"Reason",
"File List",
"Half Day",
"More Info",
"Approved",

View File

@ -1,5 +1,11 @@
[
" Reason: ",
"You cannot apply for a leave on the following date because it is blocked",
"Hurray! The day(s) on which you are applying for leave \\\t\t\t\t\tcoincide with holiday(s). You need not apply for leave."
"New Leave Application",
"Following dates are blocked for Leave",
"Hurray! The day(s) on which you are applying for leave \\\t\t\t\t\tcoincide with holiday(s). You need not apply for leave.",
"Leave by",
"Employee",
"Leave Blocked",
"Holiday",
" (Half Day)",
"Leave Application"
]

View File

@ -0,0 +1,16 @@
[
"Allow Users",
"Block Holidays on important days.",
"Block Days",
"HR",
"Allow the following users to approve Leave Applications for block days.",
"Company",
"Leave Block List",
"Stop users from making Leave Applications on following days.",
"Applies to Company",
"Year",
"If not checked, the list will have to be added to each Department where it has to be applied.",
"Leave Block List Name",
"Leave Block List Allowed",
"Leave Block List Dates"
]

View File

@ -0,0 +1 @@
[]

View File

@ -0,0 +1,4 @@
[
"Date is repeated",
"Block Date"
]

View File

@ -0,0 +1,5 @@
[
"HR",
"Allow User",
"Leave Block List Allow"
]

View File

@ -0,0 +1,6 @@
[
"HR",
"Reason",
"Leave Block List Date",
"Block Date"
]

View File

@ -1,4 +1,10 @@
[
"Other Income Detail",
"Under Section",
"Modified Amount",
"Actual Amount",
"HR",
"Other Income Detail"
"Max. Limit",
"Eligible Amount",
"Particulars"
]

View File

@ -3,7 +3,8 @@
"Documents",
"Attendance record.",
"Employee records.",
"Holiday Block List",
"Leave Block List",
"Type of employment master.",
"Template for employee performance appraisals.",
"Attendance",
"Applicant for a Job (extracted from jobs email).",
@ -45,7 +46,6 @@
"Monthly salary statement.",
"Leave Type",
"Department",
"Type of employment master.",
"Salary Structure",
"Company branches.",
"List of holidays.",

View File

@ -6,6 +6,7 @@
"Update Delivery Date",
"To Date",
"From Date",
"Entries",
"Sales Order",
"Territory",
"Update Sales Order"

View File

@ -42,14 +42,14 @@
"Budget Detail",
"Jobs Email Settings",
"Website Script",
"Sales and Purchase Return Item",
"Material Request",
"Setup",
"Timesheet Detail",
"Messages",
"Batch",
"Deduction Type",
"Project",
"Warehouse Type",
"Sales BOM Item",
"SMS Center",
"Sales Taxes and Charges Master",
"DocField",
@ -67,6 +67,7 @@
"Maintenance Visit Purpose",
"Purchase Invoice",
"Product Settings",
"Item Reorder",
"Leave Type",
"Sales and Purchase Return Tool",
"Global Defaults",
@ -93,6 +94,7 @@
"Purchase Invoice Advance",
"Shipping Address",
"Budget Distribution",
"Leave Block List",
"Packing Slip",
"Supplier",
"State",
@ -117,6 +119,7 @@
"Warehouse User",
"Website Slideshow",
"Profile Control",
"Purchase Taxes and Charges",
"Landed Cost Wizard",
"Patch Log",
"Report",
@ -154,7 +157,7 @@
"Module Def",
"Employee Education",
"Currency",
"Purchase Taxes and Charges",
"Material Request Item",
"Sales Order Item",
"Featured Item",
"Sales BOM",
@ -164,6 +167,7 @@
"Company",
"Employee Internal Work History",
"Appraisal Template Goal",
"Sales and Purchase Return Item",
"Support",
"Activity Type",
"Cost Center",
@ -175,6 +179,7 @@
"Email Settings",
"Holiday",
"Installation Note",
"Workflow Engine",
"Website",
"Core",
"Item Customer Detail",
@ -239,6 +244,7 @@
"Item Website Specification",
"Mode of Payment",
"Website Settings",
"Leave Block List Date",
"System Console",
"To Do",
"Permission Control",
@ -256,11 +262,9 @@
"Stock",
"Profile",
"Authorization Control",
"Product",
"Salary Manager",
"Item Quality Inspection Parameter",
"MIS Control",
"Sales BOM Item",
"Leave Block List Allow",
"Style Settings",
"Trash Control",
"Salary Structure Earning",
@ -300,7 +304,7 @@
"Stock Entry Detail",
"Live Chat",
"Item Supplier",
"Cross List Item Group",
"Salary Manager",
"Company History",
"Website Slideshow Item",
"Naming Series Options",
@ -308,7 +312,7 @@
"SMS Settings",
"SMS Log",
"Newsletter",
"Workflow Engine",
"Warehouse Type",
"Workflow Rule",
"UserRole"
]

View File

@ -3,29 +3,35 @@
"Add/Remove Recipients",
"Monthly",
"New Purchase Requests",
"New Stock Entries",
"Send regular summary reports via Email.",
"Select Digest Content",
"Collections",
"Expenses Booked",
"Income",
"New Stock Entries",
"New Delivery Notes",
"Stock",
"To Do List",
"Selling",
"Recipients",
"Email Digest Settings",
"Check all the items below that you want to send in this digest.",
"New Quotations",
"New Support Tickets",
"Support",
"Buying",
"New Communications",
"New Projects",
"Setup",
"Enabled",
"Daily",
"New Delivery Notes",
"Payments",
"Bank Balance",
"How frequently?",
"Payables",
"New Enquiries",
"New Sales Orders",
"Calendar Events",
"New Purchase Receipts",
"New Purchase Orders",
"Receivables",
@ -34,7 +40,10 @@
"Next email will be sent on:",
"New Supplier Quotations",
"Income Year to Date",
"General",
"Open Tickets",
"Accounts",
"Projects",
"Email Digest",
"Weekly"
]

View File

@ -0,0 +1 @@
[]

View File

@ -0,0 +1,3 @@
[
"All Day"
]

View File

@ -64,6 +64,7 @@ class DocType(DocTypeNestedSet):
self.doc.items = get_product_list_for_group(product_group = self.doc.name, limit=20)
self.parent_groups = get_parent_item_groups(self.doc.name)
self.doc.title = self.doc.name
if self.doc.slideshow:
from website.helpers.slideshow import get_slideshow

View File

@ -106,23 +106,3 @@ def check_if_expired():
webnotes.response['message'] = 'Account Expired'
raise webnotes.AuthenticationError
#### website
def get_web_script():
"""returns web startup script"""
return webnotes.conn.get_value('Website Script', None, 'javascript') or ''
def get_web_style():
"""returns web css"""
return webnotes.conn.get_value('Style Settings', None, 'custom_css') or ''
def get_web_header(page_name):
"""get website header"""
from website.utils import get_header
return get_header(page_name)
def get_web_footer(page_name):
"""get website footer"""
from website.utils import get_footer
return get_footer(page_name)

View File

@ -217,6 +217,8 @@ class DocType:
from website.helpers.product import get_parent_item_groups, url_for_website
self.parent_groups = get_parent_item_groups(self.doc.item_group) + [{"name":self.doc.name}]
self.doc.website_image = url_for_website(self.doc.website_image)
self.doc.title = self.doc.item_name == self.doc.name and self.doc.item_name or \
(self.doc.item_name + " [" + self.doc.name + "]")
if self.doc.slideshow:
from website.helpers.slideshow import get_slideshow

View File

@ -1,26 +1,30 @@
[
"All Blog Subscribers",
"Lead",
"Create and Send Newsletters",
"Support",
"A Lead with this email id should exist",
"Check how the newsletter looks in an email by sending it to your email.",
"All Contacts",
"All Leads",
"Test Email Id",
"Lead Source",
"Custom",
"Test",
"All Active Leads",
"Test Email Id",
"Supplier",
"Send To",
"Select who you want to send this newsletter to",
"Comma separated list of email addresses",
"Newsletter Content",
"Send To Type",
"Naming Series",
"Customer",
"Email Sent?",
"Send to this list",
"Send From",
"Contact",
"A Lead with this email id should exist",
"Lead Status",
"NL-",
"All Customer Contacts",
"Test the Newsletter",
"Check how the newsletter looks in an email by sending it to your email.",
"Send From",
"Newsletter Status",
"Contact Type",
"If specified, send the newsletter using this email address",
"Message",
"Newsletter",

1313
translations/th.csv Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,23 +1,26 @@
[
"Customer",
"Trash Reason",
"Enter designation of this Contact",
"Designation",
"Enter department to which this Contact belongs",
"Phone",
"Last Name",
"Communication HTML",
"Is Primary Contact",
"Utilities",
"Department",
"First Name",
"Unsubscribed",
"Department",
"Supplier Name",
"Status",
"Enter department to which this Contact belongs",
"Utilities",
"Phone",
"Enter designation of this Contact",
"Customer",
"Designation",
"Contact",
"Customer Name",
"Unsubscribed",
"Mobile No",
"Supplier",
"Contact Details",
"Sales Partner",
"Supplier Name",
"Replied",
"Supplier",
"Last Name",
"Communication HTML",
"Contact Details",
"Open",
"Email Id"
]

View File

@ -6,6 +6,5 @@
"question-view",
"WIP Monitor",
"questions",
"Calendar",
"Trash"
]

View File

@ -5,12 +5,17 @@
div#body_div {
padding: 0px;
min-height: 400px;
margin: 40px auto;
margin: 40px auto 10px auto;
box-shadow: 1px 1px 3px 3px #bbb;
border-radius: 5px;
overflow: hidden;
}
footer {
width: 720px;
margin: auto;
}
.navbar-inner {
border: 0px;
border-bottom: 1px solid #ddd;
@ -33,6 +38,16 @@ p, li {
padding: 30px;
}
.social-icons {
font-size: 120%
}
.social-icons a:hover {
text-decoration: none;
}
.social-icons a i:hover {
text-decoration: none;
}
.web-footer-menu {
margin-bottom: 7px;
}

View File

@ -1,8 +1,8 @@
[
{
"creation": "2013-01-10 16:34:33",
"creation": "2013-01-25 11:35:10",
"docstatus": 0,
"modified": "2013-01-22 14:59:43",
"modified": "2013-02-20 14:31:02",
"modified_by": "Administrator",
"owner": "Administrator"
},
@ -24,17 +24,14 @@
"permlevel": 0
},
{
"create": 1,
"doctype": "DocPerm",
"name": "__common__",
"parent": "Website Settings",
"parentfield": "permissions",
"parenttype": "DocType",
"permlevel": 0,
"read": 1,
"report": 0,
"submit": 0,
"write": 1
"submit": 0
},
{
"doctype": "DocType",
@ -128,6 +125,48 @@
"label": "Footer Items",
"options": "Top Bar Item"
},
{
"doctype": "DocField",
"fieldname": "integrations",
"fieldtype": "Section Break",
"label": "Integrations"
},
{
"description": "Add Google Analytics ID: eg. UA-89XXX57-1. Please search help on Google Analytics for more information.",
"doctype": "DocField",
"fieldname": "google_analytics_id",
"fieldtype": "Data",
"label": "Google Analytics ID"
},
{
"doctype": "DocField",
"fieldname": "column_break_17",
"fieldtype": "Column Break"
},
{
"doctype": "DocField",
"fieldname": "google_plus_one",
"fieldtype": "Check",
"label": "Google Plus One"
},
{
"doctype": "DocField",
"fieldname": "facebook_share",
"fieldtype": "Check",
"label": "Facebook Share"
},
{
"doctype": "DocField",
"fieldname": "linked_in_share",
"fieldtype": "Check",
"label": "Linked In Share"
},
{
"doctype": "DocField",
"fieldname": "twitter_share",
"fieldtype": "Check",
"label": "Twitter Share"
},
{
"doctype": "DocField",
"fieldname": "misc_section",
@ -170,11 +209,25 @@
"print_hide": 1
},
{
"create": 1,
"doctype": "DocPerm",
"role": "System Manager"
"permlevel": 0,
"role": "System Manager",
"write": 1
},
{
"create": 1,
"doctype": "DocPerm",
"role": "Website Manager"
"permlevel": 0,
"role": "Website Manager",
"write": 1
},
{
"amend": 0,
"cancel": 0,
"create": 0,
"doctype": "DocPerm",
"permlevel": 1,
"role": "All"
}
]

View File

@ -1,11 +1,11 @@
# Copyright (c) 2012 Web Notes Technologies Pvt Ltd.
# License: GNU General Public License (v3). For more information see license.txt
import os
import webnotes
import website.utils
def make():
import os
import webnotes
import website.utils
import startup.event_handlers
if not webnotes.conn:
webnotes.connect()
@ -16,17 +16,45 @@ def make():
if os.path.basename(os.path.abspath('.'))!='public':
fname = os.path.join('public', fname)
if hasattr(startup.event_handlers, 'get_web_script'):
with open(fname, 'w') as f:
script = 'window.home_page = "%s";\n' % home_page
script += startup.event_handlers.get_web_script()
f.write(script)
with open(fname, 'w') as f:
f.write(get_web_script())
fname = 'css/wn-web.css'
if os.path.basename(os.path.abspath('.'))!='public':
fname = os.path.join('public', fname)
# style - wn.css
if hasattr(startup.event_handlers, 'get_web_style'):
with open(fname, 'w') as f:
f.write(startup.event_handlers.get_web_style())
with open(fname, 'w') as f:
f.write(get_web_style())
def get_web_script():
"""returns web startup script"""
user_script = ""
ws = webnotes.doc("Website Settings", "Website Settings")
if ws.google_analytics_id:
user_script += google_analytics_template % ws.google_analytics_id
user_script += (webnotes.conn.get_value('Website Script', None, 'javascript') or '')
return user_script
def get_web_style():
"""returns web css"""
return webnotes.conn.get_value('Style Settings', None, 'custom_css') or ''
google_analytics_template = """
// Google Analytics template
window._gaq = window._gaq || [];
window._gaq.push(['_setAccount', '%s']);
window._gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
"""

View File

@ -3,7 +3,6 @@
"",
"Settings for Contact Us Page",
"Cross Listing of Item in multiple groups",
"A Product is shown on the website and is linked to an item.",
"Product Category for website",
"Slideshow like display for the website",
"Page to show on the website",

View File

@ -1,7 +1,7 @@
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<title>{% block title %}{% endblock %}</title>
<title>{{ title }}</title>
<meta name="generator" content="wnframework">
<script type="text/javascript" src="lib/js/lib/jquery/jquery.min.js"></script>
<script type="text/javascript" src="js/all-web.min.js"></script>

View File

@ -1,86 +0,0 @@
{#
requires, brand_html, top_bar_items, footer_items, copyright, content, address
#}
{% extends "html/base.html" %}
{% block body %}
<header>
</header>
<div id="body_div">
<div class="navbar-wrapper">
<div class="navbar{% if top_bar_background=="Black" %} navbar-inverse{% endif %}"
style="margin-bottom: 0px;">
<div class="navbar-inner">
<div class="container">
<a class="brand" href="index.html">{{ brand_html }}</a>
<ul class="nav">
{% for page in top_bar_items %}
{% if not page.parent_label %}
<li data-label="{{ page.label }}"
{% if page.child_items %}
class="dropdown"
{% endif %}>
<a href="{{ page.url or '#' }}"
{% if page.child_items %}
class="dropdown-toggle"
onclick="return false;"
data-toggle="dropdown"
{% endif %}
{{ page.target or ''}}>
{{ page.label }}
{% if page.child_items %}
<b class="caret"></b>
</a>
<ul class="dropdown-menu">
{% for child in page.child_items %}
<li data-label="{{ child.label }}">
<a {% if child.indent %}
style="padding-left:
{{(int(child.indent)+1)*15 }}px"
{% endif %}
href="{{ child.url }}" {{ child.target or '' }}>
{{ child.label }}
</a>
</li>
{% endfor %}
</ul>
{% else %}
</a>
{% endif %}
</li>
{% endif %}
{% endfor %}
</ul>
<img src="lib/images/ui/spinner.gif" id="spinner"/>
<ul class="nav pull-right">
<li id="login-topbar-item"><a href="login.html">Login</a></li>
</ul>
</div>
</div>
</div>
</div>
<script>$('.dropdown-toggle').dropdown()</script>
<div class="content" id="page-{{ name }}" style="display: block;">
{% block content %}
{% endblock %}
</div>
</div>
<footer><div class="web-footer">
<div class="web-footer-menu"><ul>
{% for item in footer_items %}
<li><a href="{{ item.url }}" {{ item.target }}
data-label="{{ item.label }}">{{ item.label }}</a></li>
{% endfor %}
</ul></div>
{% if copyright %}
<div class="web-footer-copyright">&copy; {{ copyright }}</div>
{% endif %}
{% if address %}
{{ address }}
{% endif %}
<p><a style="font-size: 90%;" href="attributions.html">ERPNext Powered</a></p>
</div>
</footer>
{% endblock %}

View File

@ -1,7 +1,5 @@
{% extends "html/page.html" %}
{% block title %}{{ name }}{% endblock %}
{% block content %}
<div class="layout-wrapper layout-wrapper-background">

View File

@ -8,14 +8,6 @@
{% include "css/product_page.css" %}
{% endblock %}
{% block title %}
{% if item_name != name %}
{{ item_name }} [{{ name }}]
{% else %}
{{ item_name or name }}
{% endif %}
{% endblock %}
{% block content %}
<div class="layout-wrapper layout-wrapper-background">
<div class="web-content" id="content-product-{{ name }}">

View File

@ -162,7 +162,7 @@ def prepare_args(page_name):
if not args:
return False
args.update(get_outer_env())
args.update(get_outer_env(page_name))
return args
@ -203,7 +203,10 @@ def get_source_doc(page_name):
return None, None
def get_outer_env():
def get_outer_env(page_name):
from webnotes.utils import get_request_site_address
from urllib import quote
all_top_items = webnotes.conn.sql("""\
select * from `tabTop Bar Item`
where parent='Website Settings' and parentfield='top_bar_items'
@ -243,14 +246,18 @@ def get_outer_env():
})
settings = webnotes.doc("Website Settings", "Website Settings")
for k in ["brand_html", "copyright", "address", "top_bar_background", "favicon"]:
for k in ["brand_html", "copyright", "address", "top_bar_background", "favicon",
"facebook_share", "google_plus_one", "twitter_share", "linked_in_share"]:
if k in settings.fields:
ret[k] = settings.fields[k]
ret[k] = settings.fields.get(k)
if not ret.brand_html:
ret.brand_html = "ERPNext"
if not ret.top_bar_background:
ret.top_bar_background = "Black"
ret.url = quote(get_request_site_address(full_address=True), "")
return ret
def get_home_page():