diff --git a/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.py b/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.py index 87d037358a5..e0b93c8d7b0 100644 --- a/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.py +++ b/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.py @@ -11,7 +11,8 @@ from webnotes.utils.scheduler import set_event, cancel_event, Scheduler in_transaction = webnotes.conn.in_transaction convert_to_lists = webnotes.conn.convert_to_lists - +session = webnotes.session + # ----------------------------------------------------------------------------------------- from utilities.transaction_base import TransactionBase diff --git a/erpnext/erpnext_version.py b/erpnext/erpnext_version.py deleted file mode 100644 index 48e45d5d313..00000000000 --- a/erpnext/erpnext_version.py +++ /dev/null @@ -1,3 +0,0 @@ -# version info - -version='1.0.0' diff --git a/erpnext/home/page/event_updates/event_updates.js b/erpnext/home/page/event_updates/event_updates.js index 87c7f5cbf3c..078dfc27476 100644 --- a/erpnext/home/page/event_updates/event_updates.js +++ b/erpnext/home/page/event_updates/event_updates.js @@ -212,7 +212,8 @@ HomeWidgetItem.prototype.delete_item = function() { var callback = function(r,rt) { $(me.wrapper).slideUp(); } - $c_obj('Home Control',this.widget.delete_method, this.widget.get_item_id(this.det) ,callback); + $c_obj('Home Control',this.widget.delete_method, + this.widget.get_item_id(this.det) ,callback); } @@ -324,7 +325,7 @@ HomeToDo = function(widget) { this.widget.get_list_method = 'get_todo_list'; this.widget.delete_method = 'remove_todo_item'; this.widget.no_items_message = 'Nothing to do?'; - this.widget.get_item_id = function(det) { return det[0]; } + this.widget.get_item_id = function(det) { return det.name; } this.widget.decorator = this; diff --git a/erpnext/patches/jan_mar_2012/website.py b/erpnext/patches/jan_mar_2012/website.py index ad60cc58e44..ee1f251941c 100644 --- a/erpnext/patches/jan_mar_2012/website.py +++ b/erpnext/patches/jan_mar_2012/website.py @@ -1,9 +1,12 @@ # website patch import webnotes +from webnotes.model.doc import Document + def execute(): - cleanup_file_data() + add_website_manager() return + cleanup_file_data() update_patch_log() from webnotes.modules import reload_doc reload_doc('website', 'Module Def', 'Website') @@ -13,6 +16,17 @@ def execute(): reload_doc('website', 'doctype', 'top_bar_item') reload_doc('website', 'page', 'home') +def add_website_manager(): + """add website manager to system manager""" + for i in webnotes.conn.sql("""select distinct parent from tabUserRole + where role='System Manager'"""): + if not webnotes.conn.sql("""select parent from tabUserRole + where role='Website Manager' and parent=%s""", i[0]): + d = Document('UserRole') + d.parent = i[0] + d.role = 'Website Manager' + d.save(1) + def cleanup_file_data(): webnotes.conn.commit() webnotes.conn.sql("""alter table `tabFile Data` drop column blob_content""") diff --git a/erpnext/startup/modules.js b/erpnext/startup/modules.js index 3dd7b3e5fc2..b5356d9713a 100644 --- a/erpnext/startup/modules.js +++ b/erpnext/startup/modules.js @@ -145,8 +145,10 @@ SidebarItem.prototype.onclick = function() { // page type this.pointer.select(); - $item_set_working(me.pointer.label_area); - loadpage(this.det.module_page, function() { $item_done_working(me.pointer.label_area); }); + $(me.pointer.label_area).set_working(); + loadpage(this.det.module_page, function() { + $(me.pointer.label_area).done_working(); + }); } else { // show sub items @@ -190,7 +192,7 @@ SidebarItem.prototype.show_items = function() { this.loading = 1; var me = this; - $item_set_working(this.pointer.label_area); + $(this.pointer.label_area).set_working(); var callback = function(r,rt){ me.loaded = 1; me.loading = 0; @@ -199,7 +201,7 @@ SidebarItem.prototype.show_items = function() { var has_tools = 0; // widget code - $item_done_working(me.pointer.label_area); + $(me.pointer.label_area).done_working(); if(r.message.il) { me.il = r.message.il; diff --git a/erpnext/startup/startup.css b/erpnext/startup/startup.css index f7aff1c5355..24d380053bf 100644 --- a/erpnext/startup/startup.css +++ b/erpnext/startup/startup.css @@ -1,5 +1,5 @@ h1, h2, h3, h4 { - font-family: Tahoma, Sans Serif; + font-family: Tahoma, Arial, Verdana, sans-serif; font-weight: bold; } diff --git a/erpnext/website/Module Def/Website/Website.txt b/erpnext/website/Module Def/Website/Website.txt index 7e67c3c7e7c..1d5985b3c2b 100644 --- a/erpnext/website/Module Def/Website/Website.txt +++ b/erpnext/website/Module Def/Website/Website.txt @@ -5,7 +5,7 @@ { 'creation': '2012-01-23 17:05:32', 'docstatus': 0, - 'modified': '2012-01-24 15:57:51', + 'modified': '2012-01-27 10:14:58', 'modified_by': 'Administrator', 'owner': 'Administrator' }, @@ -21,6 +21,7 @@ # These values are common for all Module Def Item { + 'doc_type': 'Single DocType', 'doctype': 'Module Def Item', 'name': '__common__', 'parent': 'Website', @@ -48,7 +49,6 @@ { 'display_name': 'Top Bar Settings', 'doc_name': 'Top Bar Settings', - 'doc_type': 'Single DocType', 'doctype': 'Module Def Item' }, @@ -56,7 +56,20 @@ { 'display_name': 'Home Settings', 'doc_name': 'Home Settings', - 'doc_type': 'Forms', + 'doctype': 'Module Def Item' + }, + + # Module Def Item + { + 'display_name': 'Contact Us Settings', + 'doc_name': 'Contact Us Settings', + 'doctype': 'Module Def Item' + }, + + # Module Def Item + { + 'display_name': 'About Us Settings', + 'doc_name': 'About Us Settings', 'doctype': 'Module Def Item' }, diff --git a/erpnext/website/css/website.css b/erpnext/website/css/website.css index bdef882b648..5afb47d85b2 100644 --- a/erpnext/website/css/website.css +++ b/erpnext/website/css/website.css @@ -8,6 +8,10 @@ header .topbar .container { margin: auto; } +.web-content input[type="text"], .web-content input[type="password"], .web-content select { + min-width: 180px; +} + .web-main-section { width: 65%; float: left; @@ -18,4 +22,7 @@ header .topbar .container { width: 30%; float: right; margin-bottom: 20px; + margin-right: 15px; + color: #606060; + overflow-x: hidden; } \ No newline at end of file diff --git a/erpnext/website/doctype/about_us_settings/__init__.py b/erpnext/website/doctype/about_us_settings/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/erpnext/website/doctype/about_us_settings/about_us_settings.py b/erpnext/website/doctype/about_us_settings/about_us_settings.py new file mode 100644 index 00000000000..31a26ce0311 --- /dev/null +++ b/erpnext/website/doctype/about_us_settings/about_us_settings.py @@ -0,0 +1,23 @@ +""" +generate html +""" +import webnotes + +class DocType: + def __init__(self, d, dl): + self.doc, self.doclist = d, dl + + def on_update(self): + """make home html""" + from website.utils import make_template + import os + path = os.path.join(os.path.dirname(__file__), 'template.html') + + self.doc.about_team = webnotes.conn.sql("""select * from `tabAbout Us Team` + where parent='About Us Settings'""", as_dict=1) + + import markdown2 + for t in self.doc.about_team: + t['bio'] = markdown2.markdown(t['bio']) + + webnotes.conn.set_value('Page', 'about', 'content', make_template(self.doc, path)) diff --git a/erpnext/website/doctype/about_us_settings/about_us_settings.txt b/erpnext/website/doctype/about_us_settings/about_us_settings.txt new file mode 100644 index 00000000000..5ecae164446 --- /dev/null +++ b/erpnext/website/doctype/about_us_settings/about_us_settings.txt @@ -0,0 +1,106 @@ +# DocType, About Us Settings +[ + + # These values are common in all dictionaries + { + 'creation': '2012-01-27 10:13:16', + 'docstatus': 0, + 'modified': '2012-01-27 11:36:44', + 'modified_by': 'Administrator', + 'owner': 'Administrator' + }, + + # These values are common for all DocType + { + '_last_update': '1327641155', + 'allow_attach': 1, + 'colour': 'White:FFF', + 'doctype': 'DocType', + 'issingle': 1, + 'max_attachments': 10, + 'module': 'Website', + 'name': '__common__', + 'section_style': 'Simple', + 'show_in_menu': 0, + 'version': 4 + }, + + # These values are common for all DocField + { + 'doctype': 'DocField', + 'name': '__common__', + 'parent': 'About Us Settings', + 'parentfield': 'fields', + 'parenttype': 'DocType', + 'permlevel': 0 + }, + + # These values are common for all DocPerm + { + 'create': 1, + 'doctype': 'DocPerm', + 'name': '__common__', + 'parent': 'About Us Settings', + 'parentfield': 'permissions', + 'parenttype': 'DocType', + 'permlevel': 0, + 'read': 1, + 'role': 'Website Manager', + 'write': 1 + }, + + # DocType, About Us Settings + { + 'doctype': 'DocType', + 'name': 'About Us Settings' + }, + + # DocPerm + { + 'doctype': 'DocPerm' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'headline', + 'fieldtype': 'Data', + 'label': 'Headline' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'main_section', + 'fieldtype': 'Code', + 'label': 'Main Section' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'team', + 'fieldtype': 'Table', + 'label': 'Team', + 'options': 'About Us Team' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'side_section', + 'fieldtype': 'Code', + 'label': 'Side Section' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'file_list', + 'fieldtype': 'Text', + 'hidden': 1, + 'label': 'File List', + 'no_copy': 1, + 'print_hide': 1 + } +] \ No newline at end of file diff --git a/erpnext/website/doctype/about_us_settings/template.html b/erpnext/website/doctype/about_us_settings/template.html new file mode 100644 index 00000000000..21d6729b181 --- /dev/null +++ b/erpnext/website/doctype/about_us_settings/template.html @@ -0,0 +1,36 @@ +
+
+ {% if doc.headline %} +

{{ doc.headline }}

+ {% endif %} +
+ {{ doc.main_section_html }} + + {% if doc.about_team %} +

Team

+ + + {% for p in doc.about_team %} + + + + + {% endfor %} + +
+ + +

{{ p.person_name }}

+
{{ p.designation }}
+
{{ p.bio }}
+
+ {% endif %} +
+
+ {{ doc.side_section_html }} +
+
+
+
\ No newline at end of file diff --git a/erpnext/website/doctype/about_us_team/__init__.py b/erpnext/website/doctype/about_us_team/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/erpnext/website/doctype/about_us_team/about_us_team.txt b/erpnext/website/doctype/about_us_team/about_us_team.txt new file mode 100644 index 00000000000..bbbf47df34d --- /dev/null +++ b/erpnext/website/doctype/about_us_team/about_us_team.txt @@ -0,0 +1,74 @@ +# DocType, About Us Team +[ + + # These values are common in all dictionaries + { + 'creation': '2012-01-27 10:14:18', + 'docstatus': 0, + 'modified': '2012-01-27 11:54:18', + 'modified_by': 'Administrator', + 'owner': 'Administrator' + }, + + # These values are common for all DocType + { + 'colour': 'White:FFF', + 'doctype': 'DocType', + 'istable': 1, + 'module': 'Website', + 'name': '__common__', + 'section_style': 'Simple', + 'show_in_menu': 0, + 'version': 5 + }, + + # These values are common for all DocField + { + 'doctype': 'DocField', + 'name': '__common__', + 'parent': 'About Us Team', + 'parentfield': 'fields', + 'parenttype': 'DocType', + 'permlevel': 0 + }, + + # DocType, About Us Team + { + 'doctype': 'DocType', + 'name': 'About Us Team' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'person_name', + 'fieldtype': 'Data', + 'label': 'Person Name' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'designation', + 'fieldtype': 'Data', + 'label': 'Designation' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'image', + 'fieldtype': 'Select', + 'label': 'Image', + 'options': 'attach_files:' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'bio', + 'fieldtype': 'Text', + 'label': 'Bio (markdown)', + 'width': '300px' + } +] \ No newline at end of file diff --git a/erpnext/website/doctype/contact_us_settings/__init__.py b/erpnext/website/doctype/contact_us_settings/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/erpnext/website/doctype/contact_us_settings/contact_us_settings.py b/erpnext/website/doctype/contact_us_settings/contact_us_settings.py new file mode 100644 index 00000000000..65d50dbf7ea --- /dev/null +++ b/erpnext/website/doctype/contact_us_settings/contact_us_settings.py @@ -0,0 +1,16 @@ +""" +generate html +""" +import webnotes + +class DocType: + def __init__(self, d, dl): + self.doc, self.doclist = d, dl + + def on_update(self): + """make home html""" + from website.utils import make_template + import os + path = os.path.join(os.path.dirname(__file__), 'template.html') + + webnotes.conn.set_value('Page', 'contact', 'content', make_template(self.doc, path)) diff --git a/erpnext/website/doctype/contact_us_settings/contact_us_settings.txt b/erpnext/website/doctype/contact_us_settings/contact_us_settings.txt new file mode 100644 index 00000000000..ff43a0aa14f --- /dev/null +++ b/erpnext/website/doctype/contact_us_settings/contact_us_settings.txt @@ -0,0 +1,100 @@ +# DocType, Contact Us Settings +[ + + # These values are common in all dictionaries + { + 'creation': '2012-01-25 16:01:33', + 'docstatus': 0, + 'modified': '2012-01-25 16:01:33', + 'modified_by': 'Administrator', + 'owner': 'Administrator' + }, + + # These values are common for all DocType + { + 'colour': 'White:FFF', + 'doctype': 'DocType', + 'document_type': 'Other', + 'issingle': 1, + 'module': 'Website', + 'name': '__common__', + 'section_style': 'Simple', + 'show_in_menu': 0, + 'version': 1 + }, + + # These values are common for all DocField + { + 'colour': 'White:FFF', + 'doctype': 'DocField', + 'name': '__common__', + 'parent': 'Contact Us Settings', + 'parentfield': 'fields', + 'parenttype': 'DocType', + 'permlevel': 0 + }, + + # These values are common for all DocPerm + { + 'create': 1, + 'doctype': 'DocPerm', + 'name': '__common__', + 'parent': 'Contact Us Settings', + 'parentfield': 'permissions', + 'parenttype': 'DocType', + 'permlevel': 0, + 'read': 1, + 'write': 1 + }, + + # DocType, Contact Us Settings + { + 'doctype': 'DocType', + 'name': 'Contact Us Settings' + }, + + # DocPerm + { + 'doctype': 'DocPerm', + 'role': 'Website Manager' + }, + + # DocPerm + { + 'doctype': 'DocPerm', + 'role': 'System Manager' + }, + + # DocField + { + 'default': 'Contact Us', + 'doctype': 'DocField', + 'fieldname': 'headline', + 'fieldtype': 'Data', + 'label': 'Headline' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'send_email_notification', + 'fieldtype': 'Check', + 'label': 'Send Email Notification' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'main_section', + 'fieldtype': 'Code', + 'label': 'Main Section' + }, + + # DocField + { + 'doctype': 'DocField', + 'fieldname': 'side_section', + 'fieldtype': 'Code', + 'label': 'Side Section' + } +] \ No newline at end of file diff --git a/erpnext/website/doctype/contact_us_settings/template.html b/erpnext/website/doctype/contact_us_settings/template.html new file mode 100644 index 00000000000..6453784b7f4 --- /dev/null +++ b/erpnext/website/doctype/contact_us_settings/template.html @@ -0,0 +1,24 @@ +
+
+ {% if doc.headline %} +

{{ doc.headline }}

+ {% endif %} +
+ +
+
+ +
+
+ +
+
+
+ {{ doc.main_section_html }} +
+
+ {{ doc.side_section_html }} +
+
+
+
\ No newline at end of file diff --git a/erpnext/website/doctype/home_settings/home_settings.py b/erpnext/website/doctype/home_settings/home_settings.py index 3ceea169180..520b81008fc 100644 --- a/erpnext/website/doctype/home_settings/home_settings.py +++ b/erpnext/website/doctype/home_settings/home_settings.py @@ -1,6 +1,7 @@ """ -generate home html +generate html """ +import webnotes class DocType: def __init__(self, d, dl): @@ -8,19 +9,9 @@ class DocType: def on_update(self): """make home html""" - import os, jinja2, markdown2 - import webnotes + from website.utils import make_template + import os + path = os.path.join(os.path.dirname(__file__), 'template.html') - # markdown - self.doc.main_section_html = markdown2.markdown(self.doc.main_section or '', \ - extras=["wiki-tables"]) - self.doc.side_section_html = markdown2.markdown(self.doc.side_section or '', \ - extras=["wiki-tables"]) - - # write template - with open(os.path.join(os.path.dirname(__file__), 'template.html'), 'r') as f: - temp = jinja2.Template(f.read()) - - html = temp.render(doc = self.doc.fields) - webnotes.conn.set_value('Page', 'Home', 'content', html) + webnotes.conn.set_value('Page', 'home', 'content', make_template(self.doc, path)) \ No newline at end of file diff --git a/erpnext/website/doctype/home_settings/template.html b/erpnext/website/doctype/home_settings/template.html index 424489a4cc3..d43f1efb7f0 100644 --- a/erpnext/website/doctype/home_settings/template.html +++ b/erpnext/website/doctype/home_settings/template.html @@ -1,5 +1,5 @@
-
+
{% if doc.headline %}

{{ doc.headline }}

{% endif %} diff --git a/erpnext/website/page/about/__init__.py b/erpnext/website/page/about/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/erpnext/website/page/about/about.txt b/erpnext/website/page/about/about.txt new file mode 100644 index 00000000000..7e045de50fc --- /dev/null +++ b/erpnext/website/page/about/about.txt @@ -0,0 +1,42 @@ +# Page, about +[ + + # These values are common in all dictionaries + { + 'creation': '2012-01-27 11:37:57', + 'docstatus': 0, + 'modified': '2012-01-27 11:37:57', + 'modified_by': 'Administrator', + 'owner': 'Administrator' + }, + + # These values are common for all Page + { + 'doctype': 'Page', + 'module': 'Website', + 'name': '__common__', + 'page_name': 'about', + 'standard': 'Yes' + }, + + # These values are common for all Page Role + { + 'doctype': 'Page Role', + 'name': '__common__', + 'parent': 'about', + 'parentfield': 'roles', + 'parenttype': 'Page', + 'role': 'Guest' + }, + + # Page, about + { + 'doctype': 'Page', + 'name': 'about' + }, + + # Page Role + { + 'doctype': 'Page Role' + } +] \ No newline at end of file diff --git a/erpnext/website/page/contact/__init__.py b/erpnext/website/page/contact/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/erpnext/website/page/contact/contact.js b/erpnext/website/page/contact/contact.js new file mode 100644 index 00000000000..e05023b3664 --- /dev/null +++ b/erpnext/website/page/contact/contact.js @@ -0,0 +1,30 @@ +pscript.onload_contact = function(wrapper) { + $('#content-contact-us .btn.primary').click(function() { + var me = this; + var args = {}; + args.name = $('#content-contact-us [name="contact-name"]').val(); + args.email = $('#content-contact-us [name="contact-email"]').val(); + args.message = $('#content-contact-us [name="contact-message"]').val(); + + if(!validate_email(args.email)) { + msgprint('Please enter a valid email id'); + return; + } + + if(args.name && args.email && args.message) { + $(this).set_working(); + $c_page('website', 'contact', 'send', args, function(r) { + $('#content-contact-us [name*="contact"]').val(''); + $(me).done_working(); + }); + } else { + msgprint("Please enter info in all the fields.") + } + }); + + $('#content-contact-us :input').keyup(function(ev) { + if(ev.which == 13) { + $('#content-contact-us .btn.primary').click(); + } + }); +} \ No newline at end of file diff --git a/erpnext/website/page/contact/contact.py b/erpnext/website/page/contact/contact.py new file mode 100644 index 00000000000..a6566a9b847 --- /dev/null +++ b/erpnext/website/page/contact/contact.py @@ -0,0 +1,15 @@ +import json, webnotes + +def send(args): + """create support ticket""" + args = json.loads(args) + + from webnotes.model.doc import Document + d = Document('Support Ticket') + d.raised_by = args['email'] + d.description = 'From: ' + args['name'] + '\n\n' + args['message'] + d.subject = 'Website Query' + d.status = 'Open' + d.owner = 'Guest' + d.save(1) + webnotes.msgprint("Thank you for your query. We will respond as soon as we can.") \ No newline at end of file diff --git a/erpnext/website/page/contact/contact.txt b/erpnext/website/page/contact/contact.txt new file mode 100644 index 00000000000..6051c6f2c95 --- /dev/null +++ b/erpnext/website/page/contact/contact.txt @@ -0,0 +1,42 @@ +# Page, contact +[ + + # These values are common in all dictionaries + { + 'creation': '2012-01-25 16:02:15', + 'docstatus': 0, + 'modified': '2012-01-25 16:02:15', + 'modified_by': 'Administrator', + 'owner': 'Administrator' + }, + + # These values are common for all Page + { + 'doctype': 'Page', + 'module': 'Website', + 'name': '__common__', + 'page_name': 'contact', + 'standard': 'Yes' + }, + + # These values are common for all Page Role + { + 'doctype': 'Page Role', + 'name': '__common__', + 'parent': 'contact', + 'parentfield': 'roles', + 'parenttype': 'Page', + 'role': 'Guest' + }, + + # Page, contact + { + 'doctype': 'Page', + 'name': 'contact' + }, + + # Page Role + { + 'doctype': 'Page Role' + } +] \ No newline at end of file diff --git a/erpnext/website/utils.py b/erpnext/website/utils.py new file mode 100644 index 00000000000..e1802cb64ff --- /dev/null +++ b/erpnext/website/utils.py @@ -0,0 +1,14 @@ +def make_template(doc, path, convert_fields = ['main_section', 'side_section']): + """make template""" + import os, jinja2, markdown2 + + # markdown + for f in convert_fields: + doc.fields[f + '_html'] = markdown2.markdown(doc.fields[f] or '', \ + extras=["wiki-tables"]) + + # write template + with open(path, 'r') as f: + temp = jinja2.Template(f.read()) + + return temp.render(doc = doc.fields) \ No newline at end of file diff --git a/index.html b/index.html index dacded50693..02a2e506eb8 100644 --- a/index.html +++ b/index.html @@ -3,7 +3,7 @@ ERPNext -