diff --git a/.gitignore b/.gitignore index 473cb449..d1c5d8ff 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,6 @@ *.egg-info *.swp tags -foundation/docs/current \ No newline at end of file +foundation/docs/current +__pycache__/ +*.pyc diff --git a/foundation/erpnext_foundation/doctype/bounty/bounty.py b/foundation/erpnext_foundation/doctype/bounty/bounty.py index a88c44fb..423c5114 100644 --- a/foundation/erpnext_foundation/doctype/bounty/bounty.py +++ b/foundation/erpnext_foundation/doctype/bounty/bounty.py @@ -37,6 +37,7 @@ class Bounty(WebsiteGenerator): context.comment_list = get_comment_list(self.doctype, self.name) context.can_edit = can_edit + def validate(self): from frappe.utils.user import get_user_fullname @@ -70,17 +71,14 @@ def get_list_context(context): context.introduction = '''
- Start a new Bounty + Start a new bounty
''' context.list_footer = '''

Bounty FAQ

''' context.fmt_money = fmt_money - context.get_paid_backers = get_paid_backers + def get_paid_backers(backers): - if backers: - return [backer for backer in backers if backer.paid] - else: - return 0 \ No newline at end of file + return [backer for backer in backers if backer.paid] \ No newline at end of file diff --git a/foundation/erpnext_foundation/doctype/bounty/templates/bounty.html b/foundation/erpnext_foundation/doctype/bounty/templates/bounty.html index 7e869839..500bf36a 100644 --- a/foundation/erpnext_foundation/doctype/bounty/templates/bounty.html +++ b/foundation/erpnext_foundation/doctype/bounty/templates/bounty.html @@ -107,7 +107,7 @@

About this feature

{{doc.description}}

-

Bounty created by {{ doc.owner }}

+

Created by {{doc.owner}}

Bounties FAQ

diff --git a/foundation/erpnext_foundation/doctype/bounty/templates/bounty_row.html b/foundation/erpnext_foundation/doctype/bounty/templates/bounty_row.html index 0d846e3b..94fc47de 100644 --- a/foundation/erpnext_foundation/doctype/bounty/templates/bounty_row.html +++ b/foundation/erpnext_foundation/doctype/bounty/templates/bounty_row.html @@ -13,19 +13,18 @@

{{ fmt_money(doc.goal, currency="USD") }} {% if comments %} - {{ comments }} + {{ comments }} {% endif %} - {% set paid_backers = get_paid_backers(doc.bounty_backer) %} - {% if paid_backers and paid_backers|len > 0 %} - - {{ paid_backers|len }} - {% if paid_backers|len > 1 %} - Backers - {% else %} - Backer - {% endif %} - + {% if paid_backers|len > 0 %} + + {{ paid_backers|len }} + {% if paid_backers|len > 1 %} + Backers + {% else %} + Backer + {% endif %} + {% endif %}

{{ html2text(doc.description[:200]) }}{% if doc.description|len > 200 %}...{% endif %}

diff --git a/foundation/erpnext_foundation/doctype/chapter/chapter.json b/foundation/erpnext_foundation/doctype/chapter/chapter.json deleted file mode 100644 index 94cb6076..00000000 --- a/foundation/erpnext_foundation/doctype/chapter/chapter.json +++ /dev/null @@ -1,337 +0,0 @@ -{ - "allow_copy": 0, - "allow_guest_to_view": 1, - "allow_import": 0, - "allow_rename": 0, - "autoname": "field:title", - "beta": 0, - "creation": "2017-05-08 17:00:17.610142", - "custom": 0, - "docstatus": 0, - "doctype": "DocType", - "document_type": "", - "editable_grid": 1, - "engine": "InnoDB", - "fields": [ - { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "title", - "fieldtype": "Data", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 1, - "in_standard_filter": 0, - "label": "Title", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 1, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "chapter_head", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 1, - "in_standard_filter": 0, - "label": "Chapter Head", - "length": 0, - "no_copy": 0, - "options": "User", - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 1, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "introduction", - "fieldtype": "Text Editor", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 1, - "in_standard_filter": 0, - "label": "Introduction", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 1, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "meetup_embed_html", - "fieldtype": "Code", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 1, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Meetup Embed HTML", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "published", - "fieldtype": "Check", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Published", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "route", - "fieldtype": "Data", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 1, - "in_standard_filter": 0, - "label": "Route", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 1, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "region", - "fieldtype": "Data", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Region", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 1, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "address", - "fieldtype": "Text", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Address", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "members", - "fieldtype": "Table", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Members", - "length": 0, - "no_copy": 0, - "options": "Chapter Member", - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - } - ], - "has_web_view": 1, - "hide_heading": 0, - "hide_toolbar": 0, - "idx": 0, - "image_view": 0, - "in_create": 0, - "is_published_field": "published", - "is_submittable": 0, - "issingle": 0, - "istable": 0, - "max_attachments": 0, - "modified": "2017-08-02 13:04:00.723298", - "modified_by": "Administrator", - "module": "ERPNext Foundation", - "name": "Chapter", - "name_case": "Title Case", - "owner": "Administrator", - "permissions": [ - { - "amend": 0, - "apply_user_permissions": 0, - "cancel": 0, - "create": 1, - "delete": 1, - "email": 1, - "export": 1, - "if_owner": 0, - "import": 0, - "permlevel": 0, - "print": 1, - "read": 1, - "report": 1, - "role": "System Manager", - "set_user_permissions": 0, - "share": 1, - "submit": 0, - "write": 1 - } - ], - "quick_entry": 1, - "read_only": 0, - "read_only_onload": 0, - "route": "chapters", - "show_name_in_global_search": 0, - "sort_field": "modified", - "sort_order": "DESC", - "track_changes": 1, - "track_seen": 0 -} \ No newline at end of file diff --git a/foundation/erpnext_foundation/doctype/chapter/chapter.py b/foundation/erpnext_foundation/doctype/chapter/chapter.py deleted file mode 100644 index 67bd2342..00000000 --- a/foundation/erpnext_foundation/doctype/chapter/chapter.py +++ /dev/null @@ -1,35 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright (c) 2017, EOSSF and contributors -# For license information, please see license.txt - -from __future__ import unicode_literals -import frappe -from frappe.website.website_generator import WebsiteGenerator -from frappe.model.document import Document -from frappe import _ - -class Chapter(WebsiteGenerator): - def get_context(self, context): - context.no_cache = True - - def validate(self): - chapter_head = self.chapter_head - chapter = frappe.get_all('Chapter', filters={'published': True}, fields=['chapter_head']) - - # if chapter_head in [d.chapter_head for d in chapter]: - # frappe.throw(_('You are not allow to create more than one Chapter')) - - def enable(self): - chapter = frappe.get_doc('Chapter', frappe.form_dict.name) - chapter.append('members', dict(enable=self.value)) - chapter.save(ignore_permissions=1) - frappe.db.commit() - - -def get_list_context(context): - context.allow_guest = True - context.no_cache = True - context.title = 'ERPNext Chapters' - context.no_breadcrumbs = True - context.order_by = 'creation desc' - context.introduction = '

All ERPNext Chapters

' diff --git a/foundation/erpnext_foundation/doctype/chapter/templates/chapter.html b/foundation/erpnext_foundation/doctype/chapter/templates/chapter.html deleted file mode 100644 index 8649904c..00000000 --- a/foundation/erpnext_foundation/doctype/chapter/templates/chapter.html +++ /dev/null @@ -1,67 +0,0 @@ -{% extends "templates/web.html" %} - -{% block page_content %} -

{{ title }}

-

Details

-

{{ introduction }}

-{% if meetup_embed_html %} -{{ meetup_embed_html }} -{% endif %} -

List of Members

-{% if members %} - - - - - - {% for user in members %} - - - - - {% endfor %} -
Member Details
{{ loop.index }} -
-
{{ frappe.db.get_value('User', user.user, 'full_name') }}
-
- {% if user.website_url %} - {{ user.website_url or '' }} - {% endif %} -
-
- {% if user.introduction %} - {{ user.introduction }} - {% endif %} -
-
-
-{% else %} -

No member yet.

-{% endif %} - -

Chapter Head

- - - - - - - - - - - - - -
Name{{ frappe.db.get_value('User', chapter_head, 'full_name') }}
Email{{ frappe.db.get_value('User', chapter_head, 'email') or '' }}
Phone{{ frappe.db.get_value('User', chapter_head, 'phone') or '' }}
-

Address

-

{{ address }}

- -

Join this Chapter

-

Leave this Chapter

- -

If you would like to start a new chapter, email us at foundation@erpnext.org

- -{% endblock %} - - \ No newline at end of file diff --git a/foundation/erpnext_foundation/doctype/chapter/templates/chapter_row.html b/foundation/erpnext_foundation/doctype/chapter/templates/chapter_row.html deleted file mode 100644 index 042aede1..00000000 --- a/foundation/erpnext_foundation/doctype/chapter/templates/chapter_row.html +++ /dev/null @@ -1,17 +0,0 @@ -
- -

{{ doc.title }}

-

- {{ frappe.db.get_value('User', chapter_head, 'full_name') }} - - {% if members %} - Members: {{ members|length }} - {% else %} - Members: 0 - {% endif %} - -

-

{{ html2text(doc.introduction[:200]) }}{% if introduction|len > 200 %}...{% endif %}

-
-
- \ No newline at end of file diff --git a/foundation/erpnext_foundation/doctype/chapter_member/chapter_member.json b/foundation/erpnext_foundation/doctype/chapter_member/chapter_member.json deleted file mode 100644 index dbc5f5af..00000000 --- a/foundation/erpnext_foundation/doctype/chapter_member/chapter_member.json +++ /dev/null @@ -1,162 +0,0 @@ -{ - "allow_copy": 0, - "allow_guest_to_view": 0, - "allow_import": 0, - "allow_rename": 0, - "beta": 0, - "creation": "2017-05-08 17:01:23.626064", - "custom": 0, - "docstatus": 0, - "doctype": "DocType", - "document_type": "", - "editable_grid": 1, - "engine": "InnoDB", - "fields": [ - { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "user", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 1, - "in_standard_filter": 0, - "label": "User", - "length": 0, - "no_copy": 0, - "options": "User", - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 1, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "introduction", - "fieldtype": "Data", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Introduction", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "website_url", - "fieldtype": "Data", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Website URL", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "enabled", - "fieldtype": "Check", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Enabled", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - } - ], - "has_web_view": 0, - "hide_heading": 0, - "hide_toolbar": 0, - "idx": 0, - "image_view": 0, - "in_create": 0, - "is_submittable": 0, - "issingle": 0, - "istable": 1, - "max_attachments": 0, - "modified": "2017-05-22 16:29:01.536405", - "modified_by": "Administrator", - "module": "ERPNext Foundation", - "name": "Chapter Member", - "name_case": "", - "owner": "Administrator", - "permissions": [], - "quick_entry": 1, - "read_only": 0, - "read_only_onload": 0, - "show_name_in_global_search": 0, - "sort_field": "modified", - "sort_order": "DESC", - "track_changes": 1, - "track_seen": 0 -} \ No newline at end of file diff --git a/foundation/erpnext_foundation/doctype/chapter_member/chapter_member.py b/foundation/erpnext_foundation/doctype/chapter_member/chapter_member.py deleted file mode 100644 index ebeffa51..00000000 --- a/foundation/erpnext_foundation/doctype/chapter_member/chapter_member.py +++ /dev/null @@ -1,14 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright (c) 2017, EOSSF and contributors -# For license information, please see license.txt - -from __future__ import unicode_literals -import frappe -from frappe.model.document import Document - -class ChapterMember(Document): - def get_context(self, context): - context.no_cache = True - - - diff --git a/foundation/erpnext_foundation/doctype/chapter_message/chapter_message.js b/foundation/erpnext_foundation/doctype/chapter_message/chapter_message.js deleted file mode 100644 index 739eaa99..00000000 --- a/foundation/erpnext_foundation/doctype/chapter_message/chapter_message.js +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright (c) 2017, EOSSF and contributors -// For license information, please see license.txt - -frappe.ui.form.on('Chapter Message', { - onload: function(frm){ - console.log("here" + frappe.session.user) - chapter_head = frappe.session.user - frappe.db.get_value('Chapter', {chapter_head: chapter_head}, 'name', function(data) { - frm.set_value('chapter', data.name); - }) - }, -}); diff --git a/foundation/erpnext_foundation/doctype/chapter_message/chapter_message.json b/foundation/erpnext_foundation/doctype/chapter_message/chapter_message.json deleted file mode 100644 index 6b1b76e9..00000000 --- a/foundation/erpnext_foundation/doctype/chapter_message/chapter_message.json +++ /dev/null @@ -1,153 +0,0 @@ -{ - "allow_copy": 0, - "allow_guest_to_view": 0, - "allow_import": 0, - "allow_rename": 0, - "beta": 0, - "creation": "2017-05-11 14:22:40.165630", - "custom": 0, - "docstatus": 0, - "doctype": "DocType", - "document_type": "", - "editable_grid": 1, - "engine": "InnoDB", - "fields": [ - { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "subject", - "fieldtype": "Data", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Subject", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 1, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "message", - "fieldtype": "Text", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": " Message", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 1, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "chapter", - "fieldtype": "Data", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Chapter", - "length": 0, - "no_copy": 0, - "options": "", - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 1, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - } - ], - "has_web_view": 0, - "hide_heading": 0, - "hide_toolbar": 0, - "idx": 0, - "image_view": 0, - "in_create": 0, - "is_submittable": 0, - "issingle": 0, - "istable": 0, - "max_attachments": 0, - "modified": "2017-05-12 11:10:12.066924", - "modified_by": "Administrator", - "module": "ERPNext Foundation", - "name": "Chapter Message", - "name_case": "", - "owner": "Administrator", - "permissions": [ - { - "amend": 0, - "apply_user_permissions": 0, - "cancel": 0, - "create": 1, - "delete": 1, - "email": 1, - "export": 1, - "if_owner": 0, - "import": 0, - "permlevel": 0, - "print": 1, - "read": 1, - "report": 1, - "role": "System Manager", - "set_user_permissions": 0, - "share": 1, - "submit": 0, - "write": 1 - } - ], - "quick_entry": 1, - "read_only": 0, - "read_only_onload": 0, - "show_name_in_global_search": 0, - "sort_field": "modified", - "sort_order": "DESC", - "track_changes": 1, - "track_seen": 0 -} \ No newline at end of file diff --git a/foundation/erpnext_foundation/doctype/chapter_message/chapter_message.py b/foundation/erpnext_foundation/doctype/chapter_message/chapter_message.py deleted file mode 100644 index cf76e203..00000000 --- a/foundation/erpnext_foundation/doctype/chapter_message/chapter_message.py +++ /dev/null @@ -1,43 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright (c) 2017, EOSSF and contributors -# For license information, please see license.txt - -from __future__ import unicode_literals -import frappe -from frappe.model.document import Document -from frappe import _ - -class ChapterMessage(Document): - def get_context(self, context): - context.no_cache = True - - def validate(self): - chapter = frappe.get_doc('Chapter', self.chapter) - if frappe.session.user != chapter.chapter_head: - frappe.throw(_('You are not athourize to send message for this Chapter.')) - - def on_update(self): - chapter = frappe.get_doc('Chapter', self.chapter) - recipients = [d.user for d in chapter.members] - message = self.message - message += "Chapter Title: " + self.chapter - # chapter_title = self.chapter - - frappe.sendmail(recipients = recipients, - message = self.message, - subject = self.subject) - # reference_doctype=self.doctype, reference_name=self.name) - - -def get_members_emails(chapterTitle): - - members_list = frappe.get_all('User', fields=['email'], - filters={'chapter.title': chapterTitle}) - - out = [] - for e in members_list: - if e.email: - # don't add if holiday - out.append(e.email) - print out - return out \ No newline at end of file diff --git a/foundation/erpnext_foundation/doctype/chapter_message/test_chapter_message.py b/foundation/erpnext_foundation/doctype/chapter_message/test_chapter_message.py deleted file mode 100644 index 21b63ed7..00000000 --- a/foundation/erpnext_foundation/doctype/chapter_message/test_chapter_message.py +++ /dev/null @@ -1,10 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright (c) 2017, EOSSF and Contributors -# See license.txt -from __future__ import unicode_literals - -import frappe -import unittest - -class TestChapterMessage(unittest.TestCase): - pass diff --git a/foundation/erpnext_foundation/doctype/chapter/__init__.py b/foundation/erpnext_foundation/doctype/foundation_fellowship/__init__.py similarity index 100% rename from foundation/erpnext_foundation/doctype/chapter/__init__.py rename to foundation/erpnext_foundation/doctype/foundation_fellowship/__init__.py diff --git a/foundation/erpnext_foundation/doctype/chapter/chapter.js b/foundation/erpnext_foundation/doctype/foundation_fellowship/foundation_fellowship.js similarity index 74% rename from foundation/erpnext_foundation/doctype/chapter/chapter.js rename to foundation/erpnext_foundation/doctype/foundation_fellowship/foundation_fellowship.js index d09224d9..d1d91e3b 100644 --- a/foundation/erpnext_foundation/doctype/chapter/chapter.js +++ b/foundation/erpnext_foundation/doctype/foundation_fellowship/foundation_fellowship.js @@ -1,7 +1,7 @@ // Copyright (c) 2017, EOSSF and contributors // For license information, please see license.txt -frappe.ui.form.on('Chapter', { +frappe.ui.form.on('Foundation Fellowship', { refresh: function(frm) { } diff --git a/foundation/erpnext_foundation/doctype/foundation_fellowship/foundation_fellowship.json b/foundation/erpnext_foundation/doctype/foundation_fellowship/foundation_fellowship.json new file mode 100644 index 00000000..37746f3a --- /dev/null +++ b/foundation/erpnext_foundation/doctype/foundation_fellowship/foundation_fellowship.json @@ -0,0 +1,560 @@ +{ + "allow_copy": 0, + "allow_guest_to_view": 1, + "allow_import": 0, + "allow_rename": 0, + "autoname": "field:title", + "beta": 0, + "creation": "2017-10-27 05:03:24.894001", + "custom": 0, + "docstatus": 0, + "doctype": "DocType", + "document_type": "", + "editable_grid": 1, + "engine": "InnoDB", + "fields": [ + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "title", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 1, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Title", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, + "unique": 0 + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "country", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Country", + "length": 0, + "no_copy": 0, + "options": "Country", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, + "unique": 0 + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "email", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Email", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, + "unique": 0 + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "phone", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Phone", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, + "unique": 0 + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "website_url", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Website", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, + "unique": 0 + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "address", + "fieldtype": "Small Text", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Address", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, + "unique": 0 + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "column_break_8", + "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, + "unique": 0 + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "image", + "fieldtype": "Attach Image", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Image", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, + "unique": 0 + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "section_break_10", + "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, + "unique": 0 + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "introduction", + "fieldtype": "Small Text", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 1, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Introduction", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, + "unique": 0 + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "details", + "fieldtype": "Text Editor", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 1, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Details", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, + "unique": 0 + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "section_break_13", + "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, + "unique": 0 + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "discuss_id", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Discuss ID", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, + "unique": 0 + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "github_id", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "GitHub ID", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, + "unique": 0 + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "route", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Route", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, + "unique": 0 + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "show_in_website", + "fieldtype": "Check", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Show in Website", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, + "unique": 0 + } + ], + "has_web_view": 1, + "hide_heading": 0, + "hide_toolbar": 0, + "idx": 0, + "image_field": "image", + "image_view": 0, + "in_create": 0, + "is_published_field": "show_in_website", + "is_submittable": 0, + "issingle": 0, + "istable": 0, + "max_attachments": 0, + "modified": "2018-03-01 17:08:43.568397", + "modified_by": "Administrator", + "module": "ERPNext Foundation", + "name": "Foundation Fellowship", + "name_case": "", + "owner": "Administrator", + "permissions": [ + { + "amend": 0, + "apply_user_permissions": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "set_user_permissions": 0, + "share": 1, + "submit": 0, + "write": 1 + } + ], + "quick_entry": 1, + "read_only": 0, + "read_only_onload": 0, + "route": "foundation-fellow", + "show_name_in_global_search": 0, + "sort_field": "modified", + "sort_order": "DESC", + "track_changes": 1, + "track_seen": 0 +} diff --git a/foundation/erpnext_foundation/doctype/foundation_fellowship/foundation_fellowship.py b/foundation/erpnext_foundation/doctype/foundation_fellowship/foundation_fellowship.py new file mode 100644 index 00000000..c15540d8 --- /dev/null +++ b/foundation/erpnext_foundation/doctype/foundation_fellowship/foundation_fellowship.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2017, EOSSF and contributors +# For license information, please see license.txt + +from __future__ import unicode_literals +import frappe +from frappe.website.website_generator import WebsiteGenerator + +class FoundationFellowship(WebsiteGenerator): + website = frappe._dict( + condition_field = "show_in_website" + ) + + def validate(self): + if not self.route: + self.route = 'foundation-fellow/' + self.scrub(self.name) + + def get_context(self, context): + context.no_cache = True + context.parents = [dict(label='View All Foundation Fellows', + route='foundation-fellow', title='View All foundation fellows')] + + + +def get_list_context(context): + context.allow_guest = True + context.no_cache = True + context.no_breadcrumbs = True + context.order_by = 'creation desc' + context.introduction = '

Following are the Foundation Fellows

' diff --git a/foundation/erpnext_foundation/doctype/foundation_fellowship/templates/foundation_fellowship.html b/foundation/erpnext_foundation/doctype/foundation_fellowship/templates/foundation_fellowship.html new file mode 100644 index 00000000..bae54e8a --- /dev/null +++ b/foundation/erpnext_foundation/doctype/foundation_fellowship/templates/foundation_fellowship.html @@ -0,0 +1,63 @@ +{% extends "templates/web.html" %} + +{% from "foundation/templates/includes/macros.html" import media %} + +{% block page_content %} +

{{ title }}

+
+
+
+ + + +
+
+ {{ introduction }} + + + + + + + + + + + + + + + + + + + + + + + + + + {% if website_url %} + + + + + {% endif %} +
Country{{ country }}
Address{{ (address or '').replace('\n', '
') }}
Phone{{ phone }}
Email + {{ email }}
Disscuss Id{{ discuss_id }}
Github Id{{ github_id }}
Website{{ website_url }}
+ +
+
+
+
+ {{ details }} +
+
+

Contact {{ title }}

+
+ +{% endblock %} diff --git a/foundation/erpnext_foundation/doctype/foundation_fellowship/templates/foundation_fellowship_row.html b/foundation/erpnext_foundation/doctype/foundation_fellowship/templates/foundation_fellowship_row.html new file mode 100644 index 00000000..8856b485 --- /dev/null +++ b/foundation/erpnext_foundation/doctype/foundation_fellowship/templates/foundation_fellowship_row.html @@ -0,0 +1,16 @@ +
+
+ + + +
+
+ {% if title %}

{{ doc.title }}

{% endif %} +

+ {{ frappe.format_date(doc.creation) }} + {{ doc.country }} +

+
+
diff --git a/foundation/erpnext_foundation/doctype/foundation_fellowship/templates/foundation_fellowship_rule.md b/foundation/erpnext_foundation/doctype/foundation_fellowship/templates/foundation_fellowship_rule.md new file mode 100644 index 00000000..aeabfabc --- /dev/null +++ b/foundation/erpnext_foundation/doctype/foundation_fellowship/templates/foundation_fellowship_rule.md @@ -0,0 +1,21 @@ +
+

A Foundation member has to propose name. Foundation Fellow Committee (Foundation Governance Council till the committee is formed) will decide on whether the person qualifies.

+

A Fellowship is a honorary position and may come with certain benefits as decided by the Foundation Fellow Committee.

+

It can be for contributions for which the person got paid, directly by the Foundation, or by the ERPNext ecosystem, stakeholders, service providers, users or user organizations.

+

Fellowship can be revoked by the Fellowship Committee for any reason.

+

Minimum 3 months of contribution on ERPNext.

+ +

Typical reasons (not a complete listing) for revoking Fellowship are:

+ +

Following are the community driven Foundation Fellows:

+
diff --git a/foundation/erpnext_foundation/doctype/chapter/test_chapter.js b/foundation/erpnext_foundation/doctype/foundation_fellowship/test_foundation_fellowship.js similarity index 64% rename from foundation/erpnext_foundation/doctype/chapter/test_chapter.js rename to foundation/erpnext_foundation/doctype/foundation_fellowship/test_foundation_fellowship.js index e3b75be4..75cac461 100644 --- a/foundation/erpnext_foundation/doctype/chapter/test_chapter.js +++ b/foundation/erpnext_foundation/doctype/foundation_fellowship/test_foundation_fellowship.js @@ -2,15 +2,15 @@ // rename this file from _test_[name] to test_[name] to activate // and remove above this line -QUnit.test("test: Chapter", function (assert) { +QUnit.test("test: Foundation Fellowship", function (assert) { let done = assert.async(); // number of asserts assert.expect(1); - frappe.run_serially('Chapter', [ - // insert a new Chapter - () => frappe.tests.make([ + frappe.run_serially([ + // insert a new Foundation Fellowship + () => frappe.tests.make('Foundation Fellowship', [ // values to be set {key: 'value'} ]), diff --git a/foundation/erpnext_foundation/doctype/chapter/test_chapter.py b/foundation/erpnext_foundation/doctype/foundation_fellowship/test_foundation_fellowship.py similarity index 76% rename from foundation/erpnext_foundation/doctype/chapter/test_chapter.py rename to foundation/erpnext_foundation/doctype/foundation_fellowship/test_foundation_fellowship.py index f2d67782..be738143 100644 --- a/foundation/erpnext_foundation/doctype/chapter/test_chapter.py +++ b/foundation/erpnext_foundation/doctype/foundation_fellowship/test_foundation_fellowship.py @@ -6,5 +6,5 @@ from __future__ import unicode_literals import frappe import unittest -class TestChapter(unittest.TestCase): +class TestFoundationFellowship(unittest.TestCase): pass diff --git a/foundation/erpnext_foundation/doctype/member/member.js b/foundation/erpnext_foundation/doctype/member/member.js deleted file mode 100644 index 5eaf8621..00000000 --- a/foundation/erpnext_foundation/doctype/member/member.js +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright (c) 2016, EOSSF and contributors -// For license information, please see license.txt - -frappe.ui.form.on('Member', { - refresh: function(frm) { - frappe.call({ - method:"frappe.client.get_value", - args:{ - 'doctype':"Membership", - 'filters':{'member': frm.doc.name}, - 'fieldname':[ - 'to_date' - ] - }, - callback: function (data) { - frappe.model.set_value(frm.doctype,frm.docname, "expires_on", data.message.to_date); - } - }); - - - } -}); diff --git a/foundation/erpnext_foundation/doctype/member/member.json b/foundation/erpnext_foundation/doctype/member/member.json deleted file mode 100644 index 1fca139c..00000000 --- a/foundation/erpnext_foundation/doctype/member/member.json +++ /dev/null @@ -1,237 +0,0 @@ -{ - "allow_copy": 0, - "allow_import": 0, - "allow_rename": 0, - "autoname": "field:email", - "beta": 0, - "creation": "2017-02-24 11:47:56.865726", - "custom": 0, - "docstatus": 0, - "doctype": "DocType", - "document_type": "", - "editable_grid": 1, - "engine": "InnoDB", - "fields": [ - { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "member_name", - "fieldtype": "Data", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Member Name", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 1, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "membership_type", - "fieldtype": "Select", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Membership Type", - "length": 0, - "no_copy": 0, - "options": "Gold\nSilver\nIndividual", - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 1, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "email", - "fieldtype": "Data", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Email", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 1, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "image", - "fieldtype": "Attach Image", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Image", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "address", - "fieldtype": "Small Text", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Address", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "expires_on", - "fieldtype": "Date", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Expires On", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - } - ], - "hide_heading": 0, - "hide_toolbar": 0, - "idx": 0, - "image_view": 0, - "in_create": 0, - "in_dialog": 0, - "is_submittable": 0, - "issingle": 0, - "istable": 0, - "max_attachments": 0, - "modified": "2017-03-02 11:36:12.723569", - "modified_by": "Administrator", - "module": "ERPNext Foundation", - "name": "Member", - "name_case": "", - "owner": "Administrator", - "permissions": [ - { - "amend": 0, - "apply_user_permissions": 0, - "cancel": 0, - "create": 1, - "delete": 1, - "email": 1, - "export": 1, - "if_owner": 0, - "import": 0, - "permlevel": 0, - "print": 1, - "read": 1, - "report": 1, - "role": "System Manager", - "set_user_permissions": 0, - "share": 1, - "submit": 0, - "write": 1 - } - ], - "quick_entry": 1, - "read_only": 0, - "read_only_onload": 0, - "show_name_in_global_search": 0, - "sort_field": "modified", - "sort_order": "DESC", - "track_changes": 1, - "track_seen": 0 -} \ No newline at end of file diff --git a/foundation/erpnext_foundation/doctype/member/member.py b/foundation/erpnext_foundation/doctype/member/member.py deleted file mode 100644 index 36f0eb2e..00000000 --- a/foundation/erpnext_foundation/doctype/member/member.py +++ /dev/null @@ -1,10 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright (c) 2015, EOSSF and contributors -# For license information, please see license.txt - -from __future__ import unicode_literals -import frappe -from frappe.model.document import Document - -class Member(Document): - pass diff --git a/foundation/erpnext_foundation/doctype/member/test_member.py b/foundation/erpnext_foundation/doctype/member/test_member.py deleted file mode 100644 index e2cd793f..00000000 --- a/foundation/erpnext_foundation/doctype/member/test_member.py +++ /dev/null @@ -1,12 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright (c) 2015, EOSSF and Contributors -# See license.txt -from __future__ import unicode_literals - -import frappe -import unittest - -# test_records = frappe.get_test_records('Member') - -class TestMember(unittest.TestCase): - pass diff --git a/foundation/erpnext_foundation/doctype/membership/membership.js b/foundation/erpnext_foundation/doctype/membership/membership.js deleted file mode 100644 index 6c59f260..00000000 --- a/foundation/erpnext_foundation/doctype/membership/membership.js +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright (c) 2016, EOSSF and contributors -// For license information, please see license.txt - -frappe.ui.form.on('Membership', { - refresh: function(frm) { - - } -}); diff --git a/foundation/erpnext_foundation/doctype/membership/membership.json b/foundation/erpnext_foundation/doctype/membership/membership.json deleted file mode 100644 index 1bd6ff7f..00000000 --- a/foundation/erpnext_foundation/doctype/membership/membership.json +++ /dev/null @@ -1,269 +0,0 @@ -{ - "allow_copy": 0, - "allow_guest_to_view": 0, - "allow_import": 0, - "allow_rename": 0, - "autoname": "M-.YY.-.####", - "beta": 0, - "creation": "2017-02-24 11:56:55.208964", - "custom": 0, - "docstatus": 0, - "doctype": "DocType", - "document_type": "", - "editable_grid": 1, - "engine": "InnoDB", - "fields": [ - { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "member", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Member", - "length": 0, - "no_copy": 0, - "options": "Member", - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "membership_type", - "fieldtype": "Select", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 1, - "in_standard_filter": 0, - "label": "Membership Type", - "length": 0, - "no_copy": 0, - "options": "Gold\nSilver\nIndividual", - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 1, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "from_date", - "fieldtype": "Date", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 1, - "in_standard_filter": 0, - "label": "From", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 1, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "to_date", - "fieldtype": "Date", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 1, - "in_standard_filter": 0, - "label": "To", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 1, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "paid", - "fieldtype": "Check", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Paid", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "currency", - "fieldtype": "Select", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Currency", - "length": 0, - "no_copy": 0, - "options": "USD\nINR", - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "amount", - "fieldtype": "Float", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Amount", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - } - ], - "has_web_view": 0, - "hide_heading": 0, - "hide_toolbar": 0, - "idx": 0, - "image_view": 0, - "in_create": 0, - "is_submittable": 0, - "issingle": 0, - "istable": 0, - "max_attachments": 0, - "modified": "2017-03-14 18:44:13.286524", - "modified_by": "Administrator", - "module": "ERPNext Foundation", - "name": "Membership", - "name_case": "", - "owner": "Administrator", - "permissions": [ - { - "amend": 0, - "apply_user_permissions": 0, - "cancel": 0, - "create": 1, - "delete": 1, - "email": 1, - "export": 1, - "if_owner": 0, - "import": 0, - "permlevel": 0, - "print": 1, - "read": 1, - "report": 1, - "role": "System Manager", - "set_user_permissions": 0, - "share": 1, - "submit": 0, - "write": 1 - } - ], - "quick_entry": 1, - "read_only": 0, - "read_only_onload": 0, - "show_name_in_global_search": 0, - "sort_field": "modified", - "sort_order": "DESC", - "track_changes": 1, - "track_seen": 0 -} \ No newline at end of file diff --git a/foundation/erpnext_foundation/doctype/membership/membership.py b/foundation/erpnext_foundation/doctype/membership/membership.py deleted file mode 100644 index b9620c48..00000000 --- a/foundation/erpnext_foundation/doctype/membership/membership.py +++ /dev/null @@ -1,63 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright (c) 2015, EOSSF and contributors -# For license information, please see license.txt - -from __future__ import unicode_literals -import frappe -from frappe.model.document import Document -from frappe.utils import add_days, add_years, nowdate, getdate -from frappe import _ -import foundation - -class Membership(Document): - def validate(self): - member_name = frappe.get_value('Member', dict(email=frappe.session.user)) - - if not member_name: - user = frappe.get_doc('User', frappe.session.user) - member = frappe.get_doc(dict( - doctype='Member', - email=frappe.session.user, - member_name=user.get_fullname() - )).insert(ignore_permissions=True) - member_name = member.name - - if self.get("__islocal"): - self.member = member_name - - # get last membership (if active) - last_membership = foundation.get_last_membership() - - if last_membership: - # if last membership does not expire in 30 days, then do not allow to renew - if getdate(add_days(last_membership.to_date, -30)) > getdate(nowdate()): - frappe.throw(_('You can only renew if your membership expires within 30 days')) - - self.from_date = add_days(last_membership.to_date, 1) - else: - self.from_date = nowdate() - - self.to_date = add_years(self.from_date, 1) - - def on_payment_authorized(self, status_changed_to=None): - if status_changed_to in ("Completed", "Authorized"): - self.load_from_db() - self.db_set('paid', 1) - - self.link_member_with_service_provider() - - def link_member_with_service_provider(self): - service_provider = frappe.db.get_value("Service Provider", dict(owner=frappe.session.user)) - - if service_provider: - frappe.db.set_value("Service Provider", service_provider, "member", frappe.session.user, - update_modified=False) - else: - # create new service provider for the member - doc = frappe.get_doc({ - "doctype": "Service Provider", - "email": frappe.session.user, - "title": frappe.db.get_value("Member", self.member, "member_name"), - "member": self.member, - "show_in_website": 1 - }).insert(ignore_mandatory=True, ignore_permissions = True) \ No newline at end of file diff --git a/foundation/erpnext_foundation/doctype/membership/templates/membership_list.html b/foundation/erpnext_foundation/doctype/membership/templates/membership_list.html deleted file mode 100644 index a2548cc1..00000000 --- a/foundation/erpnext_foundation/doctype/membership/templates/membership_list.html +++ /dev/null @@ -1,34 +0,0 @@ -
-
-
- # -
- -
- Expires On -
- -
-
-
-
- - -
- {{ frappe.utils.global_date_format(doc.to_date) }} -
- -
-
\ No newline at end of file diff --git a/foundation/erpnext_foundation/doctype/membership/test_membership.py b/foundation/erpnext_foundation/doctype/membership/test_membership.py deleted file mode 100644 index 7c455b67..00000000 --- a/foundation/erpnext_foundation/doctype/membership/test_membership.py +++ /dev/null @@ -1,12 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright (c) 2015, EOSSF and Contributors -# See license.txt -from __future__ import unicode_literals - -import frappe -import unittest - -# test_records = frappe.get_test_records('Membership') - -class TestMembership(unittest.TestCase): - pass diff --git a/foundation/erpnext_foundation/doctype/portal_job/portal_job.json b/foundation/erpnext_foundation/doctype/portal_job/portal_job.json index 893f6212..c67099a0 100644 --- a/foundation/erpnext_foundation/doctype/portal_job/portal_job.json +++ b/foundation/erpnext_foundation/doctype/portal_job/portal_job.json @@ -13,6 +13,7 @@ "engine": "InnoDB", "fields": [ { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -42,6 +43,7 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -71,6 +73,7 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -87,7 +90,7 @@ "label": "Status", "length": 0, "no_copy": 0, - "options": "Open\nCompleted\nExpired\nWithdrawn", + "options": "Open\nCompleted\nDeveloper Hired\nExpired\nWithdrawn", "permlevel": 0, "precision": "", "print_hide": 0, @@ -101,6 +104,7 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -130,6 +134,7 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -160,6 +165,7 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -190,6 +196,7 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -220,6 +227,7 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -250,6 +258,7 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -290,7 +299,7 @@ "issingle": 0, "istable": 0, "max_attachments": 0, - "modified": "2017-03-22 15:30:54.620681", + "modified": "2017-10-25 05:24:04.271224", "modified_by": "Administrator", "module": "ERPNext Foundation", "name": "Portal Job", diff --git a/foundation/erpnext_foundation/doctype/portal_job/templates/portal_job.html b/foundation/erpnext_foundation/doctype/portal_job/templates/portal_job.html index f12d6fc4..641b9fec 100644 --- a/foundation/erpnext_foundation/doctype/portal_job/templates/portal_job.html +++ b/foundation/erpnext_foundation/doctype/portal_job/templates/portal_job.html @@ -23,6 +23,10 @@ Date {{ frappe.format_date(creation) }} + + Status + {{ status }} +

Details

{{ description }}

diff --git a/foundation/erpnext_foundation/doctype/portal_job/templates/portal_job_row.html b/foundation/erpnext_foundation/doctype/portal_job/templates/portal_job_row.html index 42f12803..42be8c1c 100644 --- a/foundation/erpnext_foundation/doctype/portal_job/templates/portal_job_row.html +++ b/foundation/erpnext_foundation/doctype/portal_job/templates/portal_job_row.html @@ -6,6 +6,7 @@ {{ frappe.format_date(doc.creation) }} {{ doc.country }} {{ doc.job_type }} + {{ doc.status }}

{{ html2text(doc.description)[:200] }}{% if doc.description|len > 200 %}...{% endif %}

diff --git a/foundation/erpnext_foundation/doctype/service_provider/service_provider.json b/foundation/erpnext_foundation/doctype/service_provider/service_provider.json index f2c23ee6..656de1f1 100644 --- a/foundation/erpnext_foundation/doctype/service_provider/service_provider.json +++ b/foundation/erpnext_foundation/doctype/service_provider/service_provider.json @@ -1,557 +1,591 @@ { - "allow_copy": 0, - "allow_guest_to_view": 1, - "allow_import": 0, - "allow_rename": 0, - "autoname": "field:title", - "beta": 0, - "creation": "2017-02-24 12:09:23.744409", - "custom": 0, - "docstatus": 0, - "doctype": "DocType", - "document_type": "", - "editable_grid": 1, - "engine": "InnoDB", + "allow_copy": 0, + "allow_guest_to_view": 1, + "allow_import": 0, + "allow_rename": 0, + "autoname": "field:title", + "beta": 0, + "creation": "2017-02-24 12:09:23.744409", + "custom": 0, + "docstatus": 0, + "doctype": "DocType", + "document_type": "", + "editable_grid": 1, + "engine": "InnoDB", "fields": [ { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "title", - "fieldtype": "Data", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 1, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Title", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 1, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "title", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 1, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Title", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, "unique": 0 - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "member", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Member", - "length": 0, - "no_copy": 0, - "options": "Member", - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "member", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Member", + "length": 0, + "no_copy": 0, + "options": "Member", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, "unique": 0 - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "country", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Country", - "length": 0, - "no_copy": 0, - "options": "Country", - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 1, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "country", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Country", + "length": 0, + "no_copy": 0, + "options": "Country", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, "unique": 0 - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "email", - "fieldtype": "Data", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Email", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "email", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Email", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, "unique": 0 - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "phone", - "fieldtype": "Data", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Phone", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "phone", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Phone", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, "unique": 0 - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "website", - "fieldtype": "Data", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Website", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "website_url", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Website", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, "unique": 0 - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "address", - "fieldtype": "Small Text", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Address", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "address", + "fieldtype": "Small Text", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Address", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, "unique": 0 - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "column_break_8", - "fieldtype": "Column Break", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "column_break_8", + "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, "unique": 0 - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "image", - "fieldtype": "Attach Image", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Image", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "image", + "fieldtype": "Attach Image", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Image", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, "unique": 0 - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "section_break_10", - "fieldtype": "Section Break", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "section_break_10", + "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, "unique": 0 - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "introduction", - "fieldtype": "Small Text", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 1, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Introduction", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 1, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "introduction", + "fieldtype": "Small Text", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 1, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Introduction", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, "unique": 0 - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "details", - "fieldtype": "Text Editor", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 1, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Details", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 1, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "details", + "fieldtype": "Text Editor", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 1, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Details", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, "unique": 0 - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "section_break_13", - "fieldtype": "Section Break", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "section_break_13", + "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, "unique": 0 - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "discuss_ids", - "fieldtype": "Small Text", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Discuss IDs", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "discuss_ids", + "fieldtype": "Small Text", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Discuss IDs", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, "unique": 0 - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "github_id", - "fieldtype": "Data", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "GitHub ID", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "github_id", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "GitHub ID", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, "unique": 0 - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "route", - "fieldtype": "Data", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Route", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "route", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Route", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, "unique": 0 - }, + }, { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "show_in_website", - "fieldtype": "Check", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Show in Website", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "show_in_website", + "fieldtype": "Check", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Show in Website", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, "unique": 0 } - ], - "has_web_view": 1, - "hide_heading": 0, - "hide_toolbar": 0, - "idx": 0, - "image_field": "image", - "image_view": 0, - "in_create": 0, - "is_published_field": "show_in_website", - "is_submittable": 0, - "issingle": 0, - "istable": 0, - "max_attachments": 0, - "modified": "2017-03-06 16:04:35.370822", - "modified_by": "Administrator", - "module": "ERPNext Foundation", - "name": "Service Provider", - "name_case": "", - "owner": "Administrator", + ], + "has_web_view": 1, + "hide_heading": 0, + "hide_toolbar": 0, + "idx": 0, + "image_field": "image", + "image_view": 0, + "in_create": 0, + "is_published_field": "show_in_website", + "is_submittable": 0, + "issingle": 0, + "istable": 0, + "max_attachments": 0, + "modified": "2018-03-09 17:08:21.803622", + "modified_by": "Administrator", + "module": "ERPNext Foundation", + "name": "Service Provider", + "name_case": "", + "owner": "Administrator", "permissions": [ { - "amend": 0, - "apply_user_permissions": 0, - "cancel": 0, - "create": 1, - "delete": 1, - "email": 1, - "export": 1, - "if_owner": 0, - "import": 0, - "permlevel": 0, - "print": 1, - "read": 1, - "report": 1, - "role": "System Manager", - "set_user_permissions": 0, - "share": 1, - "submit": 0, + "amend": 0, + "apply_user_permissions": 0, + "cancel": 0, + "create": 1, + "delete": 1, + "email": 1, + "export": 1, + "if_owner": 0, + "import": 0, + "permlevel": 0, + "print": 1, + "read": 1, + "report": 1, + "role": "System Manager", + "set_user_permissions": 0, + "share": 1, + "submit": 0, "write": 1 } - ], - "quick_entry": 1, - "read_only": 0, - "read_only_onload": 0, - "show_name_in_global_search": 0, - "sort_field": "modified", - "sort_order": "DESC", - "track_changes": 1, + ], + "quick_entry": 1, + "read_only": 0, + "read_only_onload": 0, + "show_name_in_global_search": 0, + "sort_field": "modified", + "sort_order": "DESC", + "track_changes": 1, "track_seen": 0 } \ No newline at end of file diff --git a/foundation/erpnext_foundation/doctype/service_provider/service_provider.py b/foundation/erpnext_foundation/doctype/service_provider/service_provider.py index f26ae721..e1683e72 100644 --- a/foundation/erpnext_foundation/doctype/service_provider/service_provider.py +++ b/foundation/erpnext_foundation/doctype/service_provider/service_provider.py @@ -5,9 +5,10 @@ from __future__ import unicode_literals import frappe from frappe.website.website_generator import WebsiteGenerator +from frappe.utils import get_datetime class ServiceProvider(WebsiteGenerator): - _website = frappe._dict( + website = frappe._dict( condition_field = "show_in_website", ) def validate(self): @@ -21,4 +22,42 @@ class ServiceProvider(WebsiteGenerator): if self.member: context.membership_type = frappe.get_value('Member', self.member, 'membership_type') if context.website and not context.website.startswith('http'): - context.website = 'http://' + context.website \ No newline at end of file + context.website = 'http://' + context.website + if not context.image: + if context.membership_type == "Gold": + context.image = "/assets/foundation/img/gold.png" + elif context.membership_type == "Silver": + context.image = "/assets/foundation/img/silver.png" + else: + context.image = "/assets/foundation/img/default-membership-logo.png" + +def send_alert_to_inactive_service_providers(): + for service_provider in frappe.get_all("Service Provider", fields=['email', 'title']): + if get_last_login_diff(service_provider.email) == 80: + send_reminder(service_provider) + +def send_reminder(service_provider_details): + message = frappe.render_template("foundation/templates/emails/inactivity_reminder.md", service_provider_details) + frappe.sendmail(recipients=service_provider_details.email, subject="About account inactivity", message=message) + +def unpublish_service_provider(): + for service_provider in frappe.get_all("Service Provider", fields=['email', 'name','title']): + if get_last_login_diff(service_provider.email) == 90: + frappe.db.set_value('Service Provider', service_provider.name, 'show_in_website', 0, update_modified=False) + +def publish_service_provider(): + """ + If Service provider is unpublished and login then automatically enabled name in service provider listing + """ + for service_provider in frappe.get_all("Service Provider", fields=['email','name', 'title', 'show_in_website']): + if get_last_login_diff(service_provider.email) == 0 and service_provider.show_in_website == 0: + frappe.db.set_value('Service Provider', service_provider.name, 'show_in_website', 1, update_modified=False) + +def get_last_login_diff(user): + """ + Returns difference between todays date and last login date + """ + last_login = frappe.db.get_value("User", user, ["last_login"]) + for x in xrange(1,10): + print((get_datetime() - get_datetime(last_login)).days, user) + return (get_datetime() - get_datetime(last_login)).days diff --git a/foundation/erpnext_foundation/doctype/service_provider/templates/service_provider.html b/foundation/erpnext_foundation/doctype/service_provider/templates/service_provider.html index 1f9c4e08..15e35e7b 100644 --- a/foundation/erpnext_foundation/doctype/service_provider/templates/service_provider.html +++ b/foundation/erpnext_foundation/doctype/service_provider/templates/service_provider.html @@ -1,25 +1,22 @@ {% extends "templates/web.html" %} {% from "foundation/templates/includes/macros.html" import media %} - {% block page_content %}

{{ title }}

{% if membership_type %}

{{ membership_type }} Member

{% endif %}
-
-
+
+
{{ introduction }} - +
@@ -37,10 +34,12 @@ + {% if website_url %} - + + {% endif %}
Country {{ country }} {{ email }}
Website{{ website }}{{ website_url }}
@@ -52,5 +51,4 @@

Contact {{ title }}

- {% endblock %} diff --git a/foundation/erpnext_foundation/web_form/add_edit_app/add_edit_app.json b/foundation/erpnext_foundation/web_form/add_edit_app/add_edit_app.json index 62a0d555..0a979af9 100644 --- a/foundation/erpnext_foundation/web_form/add_edit_app/add_edit_app.json +++ b/foundation/erpnext_foundation/web_form/add_edit_app/add_edit_app.json @@ -1,4 +1,5 @@ { + "_liked_by": "[\"Administrator\"]", "accept_payment": 0, "allow_comments": 0, "allow_delete": 0, @@ -13,10 +14,11 @@ "docstatus": 0, "doctype": "Web Form", "idx": 0, + "introduction_text": "", "is_standard": 1, "login_required": 1, "max_attachment_size": 0, - "modified": "2017-03-06 15:50:21.725600", + "modified": "2017-10-25 05:59:11.262965", "modified_by": "Administrator", "module": "ERPNext Foundation", "name": "add-edit-app", @@ -89,6 +91,16 @@ "max_value": 0, "read_only": 0, "reqd": 0 + }, + { + "fieldname": "published", + "fieldtype": "Check", + "hidden": 0, + "label": "Show on Website", + "max_length": 0, + "max_value": 0, + "read_only": 0, + "reqd": 0 } ] } \ No newline at end of file diff --git a/foundation/erpnext_foundation/web_form/jobs/jobs.json b/foundation/erpnext_foundation/web_form/jobs/jobs.json index ad384e66..044e1685 100644 --- a/foundation/erpnext_foundation/web_form/jobs/jobs.json +++ b/foundation/erpnext_foundation/web_form/jobs/jobs.json @@ -17,7 +17,7 @@ "is_standard": 1, "login_required": 1, "max_attachment_size": 0, - "modified": "2017-08-31 16:58:13.787406", + "modified": "2017-10-25 05:36:04.935016", "modified_by": "Administrator", "module": "ERPNext Foundation", "name": "jobs", @@ -58,7 +58,7 @@ "label": "Status", "max_length": 0, "max_value": 0, - "options": "Open\nCompleted\nExpired\nWithdrawn", + "options": "Open\nCompleted\nDeveloper Hired\nExpired\nWithdrawn", "read_only": 0, "reqd": 0 }, diff --git a/foundation/erpnext_foundation/web_form/memberships/memberships.json b/foundation/erpnext_foundation/web_form/memberships/memberships.json index 791266a4..cf14d27d 100644 --- a/foundation/erpnext_foundation/web_form/memberships/memberships.json +++ b/foundation/erpnext_foundation/web_form/memberships/memberships.json @@ -15,10 +15,11 @@ "docstatus": 0, "doctype": "Web Form", "idx": 0, + "introduction_text": "", "is_standard": 1, "login_required": 1, "max_attachment_size": 0, - "modified": "2017-03-14 16:31:47.735437", + "modified": "2018-01-08 15:53:09.381486", "modified_by": "Administrator", "module": "ERPNext Foundation", "name": "memberships", @@ -35,12 +36,12 @@ "web_form_fields": [ { "fieldname": "membership_type", - "fieldtype": "Select", + "fieldtype": "Link", "hidden": 0, "label": "Membership Type", "max_length": 0, "max_value": 0, - "options": "Gold\nSilver\nIndividual", + "options": "Membership Type", "read_only": 0, "reqd": 1 }, diff --git a/foundation/erpnext_foundation/web_form/memberships/memberships.py b/foundation/erpnext_foundation/web_form/memberships/memberships.py index 92be5ac4..ff67a0e6 100644 --- a/foundation/erpnext_foundation/web_form/memberships/memberships.py +++ b/foundation/erpnext_foundation/web_form/memberships/memberships.py @@ -8,7 +8,7 @@ def get_context(context): pass def get_list_context(context): - context.row_template = 'erpnext_foundation/doctype/membership/templates/membership_list.html' + context.row_template = 'non_profit/doctype/membership/templates/membership_list.html' context.get_list = get_site_list def get_site_list(doctype, txt, filters, limit_start, limit_page_length=20, order_by=None): diff --git a/foundation/erpnext_foundation/web_form/memberships_usd/memberships_usd.json b/foundation/erpnext_foundation/web_form/memberships_usd/memberships_usd.json index 9a1f5875..555a84e5 100644 --- a/foundation/erpnext_foundation/web_form/memberships_usd/memberships_usd.json +++ b/foundation/erpnext_foundation/web_form/memberships_usd/memberships_usd.json @@ -15,10 +15,11 @@ "docstatus": 0, "doctype": "Web Form", "idx": 0, + "introduction_text": "", "is_standard": 1, "login_required": 1, "max_attachment_size": 0, - "modified": "2017-03-14 18:38:07.785349", + "modified": "2018-01-08 15:53:23.345945", "modified_by": "Administrator", "module": "ERPNext Foundation", "name": "memberships-usd", @@ -35,12 +36,12 @@ "web_form_fields": [ { "fieldname": "membership_type", - "fieldtype": "Select", + "fieldtype": "Link", "hidden": 0, "label": "Membership Type", "max_length": 0, "max_value": 0, - "options": "Gold\nSilver\nIndividual", + "options": "Membership Type", "read_only": 0, "reqd": 1 }, diff --git a/foundation/erpnext_foundation/web_form/service_provider/service_provider.json b/foundation/erpnext_foundation/web_form/service_provider/service_provider.json index 2194d618..c8a87f72 100644 --- a/foundation/erpnext_foundation/web_form/service_provider/service_provider.json +++ b/foundation/erpnext_foundation/web_form/service_provider/service_provider.json @@ -17,7 +17,7 @@ "is_standard": 1, "login_required": 1, "max_attachment_size": 0, - "modified": "2017-02-27 16:48:13.115907", + "modified": "2018-01-10 12:04:04.245162", "modified_by": "Administrator", "module": "ERPNext Foundation", "name": "service-provider", @@ -121,6 +121,16 @@ "max_value": 0, "read_only": 0, "reqd": 0 + }, + { + "fieldname": "website", + "fieldtype": "Data", + "hidden": 0, + "label": "Website URL", + "max_length": 0, + "max_value": 0, + "read_only": 0, + "reqd": 0 } ] } \ No newline at end of file diff --git a/foundation/hooks.py b/foundation/hooks.py index 6741c2fd..d72e7e6e 100644 --- a/foundation/hooks.py +++ b/foundation/hooks.py @@ -36,23 +36,22 @@ app_license = "MIT" # application home page (will override Website Settings) home_page = "index" -template_apps = ['foundation', 'frappe_theme', 'erpnext', 'frappe'] +template_apps = ['foundation', 'erpnext', 'frappe'] website_context = { # "navbar_search": 1, - "brand_html": "ERPNext.org", - "copyright": "ERPNext Open Source Software Foundation", - "footer_address": "
ERPNext is and will always be 100% Open Source", + "brand_html": "Oensource ERP SoftwareERPNext.org", "top_bar_items": [ - {"label": "Docs", "url": "/docs", "right": 1}, - {"label": "Services", "url": "/service-providers", "right": 1}, - {"label": "Jobs", "url": "/erpnext-jobs", "right": 1}, - {"label": "Chapters", "url": "/chapters", "right": 1}, - {"label": "Bounties", "url": "/bounties", "right": 1}, - {"label": 'Conference', "url": "/conf/2017", "right": 1}, - {"label": "About", "url": "/about", "right": 1}, + {"label": "Foundation", "child_items":[ + {"label": "Chapter", "url": "/chapters","right": 1}, + {"label": "Foundation Fellow", "url": "/foundation-fellow","right": 1} + ], "right":1}, + {"label": "Services", "child_items":[ + {"label": "Service Providers", "url": "/service-providers","right": 1}, + {"label": "Freelancer Jobs", "url": "/erpnext-jobs", "right": 1}, + ], "right":1}, ], - "hide_login": 1, - "favicon": "/assets/frappe_theme/img/favicon.ico" + "hide_login": 0, + "favicon": "/assets/foundation/img/favicon.ico" } # website user home page (by Role) # role_home_page = { @@ -70,6 +69,7 @@ website_context = { portal_menu_items = [ {'label': 'My Profile', 'route': '/service-provider-settings'}, + {'label': 'Module Leader', 'route': '/module-leader-settings'}, {'label': 'Membership', 'route': '/members/details'}, {'label': 'Conference Talks', 'route': '/conference-talk-proposal'}, {'label': 'Jobs', 'route': '/my-jobs'}, @@ -116,23 +116,25 @@ portal_menu_items = [ # Scheduled Tasks # --------------- -# scheduler_events = { -# "all": [ -# "foundation.tasks.all" -# ], -# "daily": [ -# "foundation.tasks.daily" -# ], -# "hourly": [ -# "foundation.tasks.hourly" -# ], -# "weekly": [ -# "foundation.tasks.weekly" -# ] -# "monthly": [ -# "foundation.tasks.monthly" -# ] -# } +scheduler_events = { + # "all": [ + # "foundation.tasks.all" + # ], + "daily": [ + "foundation.erpnext_foundation.doctype.service_provider.service_provider.send_alert_to_inactive_service_providers", + "foundation.erpnext_foundation.doctype.service_provider.service_provider.unpublish_service_provider", + "foundation.erpnext_foundation.doctype.service_provider.service_provider.publish_service_provider", + ], + # "hourly": [ + # "foundation.tasks.hourly" + # ], + # "weekly": [ + # "foundation.tasks.weekly" + # ] + # "monthly": [ + # "foundation.tasks.monthly" + # ] +} # Testing # ------- @@ -145,4 +147,3 @@ portal_menu_items = [ # override_whitelisted_methods = { # "frappe.desk.doctype.event.event.get_events": "foundation.event.get_events" # } - diff --git a/foundation/patches.txt b/foundation/patches.txt index 0694358b..a9dcb7c5 100644 --- a/foundation/patches.txt +++ b/foundation/patches.txt @@ -1 +1,3 @@ -foundation.patches.v0_0.update_erpnext_job_route \ No newline at end of file +foundation.patches.v0_0.update_erpnext_job_route +foundation.patches.v0_0.change_website_to_website_url +foundation.patches.v0_0.service_providers_website_to_website_url diff --git a/foundation/patches/v0_0/change_website_to_website_url.py b/foundation/patches/v0_0/change_website_to_website_url.py new file mode 100644 index 00000000..f51b98c4 --- /dev/null +++ b/foundation/patches/v0_0/change_website_to_website_url.py @@ -0,0 +1,6 @@ +import frappe + +def execute(): + frappe.db.sql(''' + ALTER TABLE `tabFoundation Fellowship` CHANGE `website` `website_url` varchar(140); + ''') diff --git a/foundation/patches/v0_0/service_providers_website_to_website_url.py b/foundation/patches/v0_0/service_providers_website_to_website_url.py new file mode 100644 index 00000000..7a74b3cf --- /dev/null +++ b/foundation/patches/v0_0/service_providers_website_to_website_url.py @@ -0,0 +1,8 @@ +import frappe + +def execute(): + frappe.reload_doc("erpnext_foundation", "doctype", "service_provider") + frappe.db.sql(''' + update `tabService Provider` + set website_url = website + ''') diff --git a/foundation/public/build.json b/foundation/public/build.json new file mode 100644 index 00000000..929db60a --- /dev/null +++ b/foundation/public/build.json @@ -0,0 +1,5 @@ +{ + "foundation/css/erpnext-org-theme.css": [ + "public/less/erpnext-org-theme.less" + ] +} diff --git a/foundation/public/css/bootstrap-for-webform.css b/foundation/public/css/bootstrap-for-webform.css new file mode 100644 index 00000000..aa81aaa6 --- /dev/null +++ b/foundation/public/css/bootstrap-for-webform.css @@ -0,0 +1,1725 @@ +.table { + width: 100%; + max-width: 100%; + margin-bottom: 20px; +} +.table > thead > tr > th, +.table > tbody > tr > th, +.table > tfoot > tr > th, +.table > thead > tr > td, +.table > tbody > tr > td, +.table > tfoot > tr > td { + padding: 8px; + line-height: 1.42857143; + vertical-align: top; + border-top: 1px solid #d1d8dd; +} +.table > thead > tr > th { + vertical-align: bottom; + border-bottom: 2px solid #d1d8dd; +} +.table > caption + thead > tr:first-child > th, +.table > colgroup + thead > tr:first-child > th, +.table > thead:first-child > tr:first-child > th, +.table > caption + thead > tr:first-child > td, +.table > colgroup + thead > tr:first-child > td, +.table > thead:first-child > tr:first-child > td { + border-top: 0; +} +.table > tbody + tbody { + border-top: 2px solid #d1d8dd; +} +.table .table { + background-color: #fff; +} +.table-condensed > thead > tr > th, +.table-condensed > tbody > tr > th, +.table-condensed > tfoot > tr > th, +.table-condensed > thead > tr > td, +.table-condensed > tbody > tr > td, +.table-condensed > tfoot > tr > td { + padding: 5px; +} +.table-bordered { + border: 1px solid #d1d8dd; +} +.table-bordered > thead > tr > th, +.table-bordered > tbody > tr > th, +.table-bordered > tfoot > tr > th, +.table-bordered > thead > tr > td, +.table-bordered > tbody > tr > td, +.table-bordered > tfoot > tr > td { + border: 1px solid #d1d8dd; +} +.table-bordered > thead > tr > th, +.table-bordered > thead > tr > td { + border-bottom-width: 2px; +} +.table-striped > tbody > tr:nth-child(odd) { + background-color: #f9f9f9; +} +.table-hover > tbody > tr:hover { + background-color: #f5f5f5; +} +table col[class*="col-"] { + position: static; + display: table-column; + float: none; +} +table td[class*="col-"], +table th[class*="col-"] { + position: static; + display: table-cell; + float: none; +} +.table > thead > tr > td.active, +.table > tbody > tr > td.active, +.table > tfoot > tr > td.active, +.table > thead > tr > th.active, +.table > tbody > tr > th.active, +.table > tfoot > tr > th.active, +.table > thead > tr.active > td, +.table > tbody > tr.active > td, +.table > tfoot > tr.active > td, +.table > thead > tr.active > th, +.table > tbody > tr.active > th, +.table > tfoot > tr.active > th { + background-color: #f5f5f5; +} +.table-hover > tbody > tr > td.active:hover, +.table-hover > tbody > tr > th.active:hover, +.table-hover > tbody > tr.active:hover > td, +.table-hover > tbody > tr:hover > .active, +.table-hover > tbody > tr.active:hover > th { + background-color: #e8e8e8; +} +.table > thead > tr > td.success, +.table > tbody > tr > td.success, +.table > tfoot > tr > td.success, +.table > thead > tr > th.success, +.table > tbody > tr > th.success, +.table > tfoot > tr > th.success, +.table > thead > tr.success > td, +.table > tbody > tr.success > td, +.table > tfoot > tr.success > td, +.table > thead > tr.success > th, +.table > tbody > tr.success > th, +.table > tfoot > tr.success > th { + background-color: transparent; +} +.table-hover > tbody > tr > td.success:hover, +.table-hover > tbody > tr > th.success:hover, +.table-hover > tbody > tr.success:hover > td, +.table-hover > tbody > tr:hover > .success, +.table-hover > tbody > tr.success:hover > th { + background-color: rgba(0, 0, 0, 0); +} +.table > thead > tr > td.info, +.table > tbody > tr > td.info, +.table > tfoot > tr > td.info, +.table > thead > tr > th.info, +.table > tbody > tr > th.info, +.table > tfoot > tr > th.info, +.table > thead > tr.info > td, +.table > tbody > tr.info > td, +.table > tfoot > tr.info > td, +.table > thead > tr.info > th, +.table > tbody > tr.info > th, +.table > tfoot > tr.info > th { + background-color: transparent; +} +.table-hover > tbody > tr > td.info:hover, +.table-hover > tbody > tr > th.info:hover, +.table-hover > tbody > tr.info:hover > td, +.table-hover > tbody > tr:hover > .info, +.table-hover > tbody > tr.info:hover > th { + background-color: rgba(0, 0, 0, 0); +} +.table > thead > tr > td.warning, +.table > tbody > tr > td.warning, +.table > tfoot > tr > td.warning, +.table > thead > tr > th.warning, +.table > tbody > tr > th.warning, +.table > tfoot > tr > th.warning, +.table > thead > tr.warning > td, +.table > tbody > tr.warning > td, +.table > tfoot > tr.warning > td, +.table > thead > tr.warning > th, +.table > tbody > tr.warning > th, +.table > tfoot > tr.warning > th { + background-color: transparent; +} +.table-hover > tbody > tr > td.warning:hover, +.table-hover > tbody > tr > th.warning:hover, +.table-hover > tbody > tr.warning:hover > td, +.table-hover > tbody > tr:hover > .warning, +.table-hover > tbody > tr.warning:hover > th { + background-color: rgba(0, 0, 0, 0); +} +.table > thead > tr > td.danger, +.table > tbody > tr > td.danger, +.table > tfoot > tr > td.danger, +.table > thead > tr > th.danger, +.table > tbody > tr > th.danger, +.table > tfoot > tr > th.danger, +.table > thead > tr.danger > td, +.table > tbody > tr.danger > td, +.table > tfoot > tr.danger > td, +.table > thead > tr.danger > th, +.table > tbody > tr.danger > th, +.table > tfoot > tr.danger > th { + background-color: transparent; +} +.table-hover > tbody > tr > td.danger:hover, +.table-hover > tbody > tr > th.danger:hover, +.table-hover > tbody > tr.danger:hover > td, +.table-hover > tbody > tr:hover > .danger, +.table-hover > tbody > tr.danger:hover > th { + background-color: rgba(0, 0, 0, 0); +} +.table-responsive { + min-height: .01%; + overflow-x: auto; +} +@media screen and (max-width: 767px) { + .table-responsive { + width: 100%; + margin-bottom: 15px; + overflow-y: hidden; + -ms-overflow-style: -ms-autohiding-scrollbar; + border: 1px solid #d1d8dd; + } + .table-responsive > .table { + margin-bottom: 0; + } + .table-responsive > .table > thead > tr > th, + .table-responsive > .table > tbody > tr > th, + .table-responsive > .table > tfoot > tr > th, + .table-responsive > .table > thead > tr > td, + .table-responsive > .table > tbody > tr > td, + .table-responsive > .table > tfoot > tr > td { + white-space: nowrap; + } + .table-responsive > .table-bordered { + border: 0; + } + .table-responsive > .table-bordered > thead > tr > th:first-child, + .table-responsive > .table-bordered > tbody > tr > th:first-child, + .table-responsive > .table-bordered > tfoot > tr > th:first-child, + .table-responsive > .table-bordered > thead > tr > td:first-child, + .table-responsive > .table-bordered > tbody > tr > td:first-child, + .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; + } + .table-responsive > .table-bordered > thead > tr > th:last-child, + .table-responsive > .table-bordered > tbody > tr > th:last-child, + .table-responsive > .table-bordered > tfoot > tr > th:last-child, + .table-responsive > .table-bordered > thead > tr > td:last-child, + .table-responsive > .table-bordered > tbody > tr > td:last-child, + .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; + } + .table-responsive > .table-bordered > tbody > tr:last-child > th, + .table-responsive > .table-bordered > tfoot > tr:last-child > th, + .table-responsive > .table-bordered > tbody > tr:last-child > td, + .table-responsive > .table-bordered > tfoot > tr:last-child > td { + border-bottom: 0; + } +} +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 20px; + font-size: 21px; + line-height: inherit; + color: #333; + border: 0; + border-bottom: 1px solid #e5e5e5; +} +label { + display: inline-block; + max-width: 100%; + margin-bottom: 5px; + font-weight: bold; +} +input[type="search"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; + line-height: normal; +} +input[type="file"] { + display: block; +} +input[type="range"] { + display: block; + width: 100%; +} +select[multiple], +select[size] { + height: auto; +} +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +output { + display: block; + padding-top: 5px; + font-size: 14px; + line-height: 1.42857143; + color: #555; +} +.form-control { + display: block; + width: 100%; + height: 30px; + padding: 4px 10px; + font-size: 14px; + line-height: 1.42857143; + color: #555; + background-color: #fff; + background-image: none; + border: 1px solid #d1d8dd; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s; + -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; +} +.form-control:focus { + border-color: #ced5db; + outline: 0; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(206, 213, 219, .6); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(206, 213, 219, .6); +} +.form-control:focus { + border-color: #ced5db; + outline: 0; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 3px rgba(206, 213, 219, .6); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 3px rgba(206, 213, 219, .6); +} +.form-control::-moz-placeholder { + color: #d1d8dd; + opacity: 1; +} +.form-control:-ms-input-placeholder { + color: #d1d8dd; +} +.form-control::-webkit-input-placeholder { + color: #d1d8dd; +} +.form-control[disabled], +.form-control[readonly], +fieldset[disabled] .form-control { + cursor: not-allowed; + background-color: #eee; + opacity: 1; +} +textarea.form-control { + height: auto; +} +input[type="search"] { + -webkit-appearance: none; +} +@media screen and (-webkit-min-device-pixel-ratio: 0) { + input[type="date"], + input[type="time"], + input[type="datetime-local"], + input[type="month"] { + line-height: 30px; + } + input[type="date"].input-sm, + input[type="time"].input-sm, + input[type="datetime-local"].input-sm, + input[type="month"].input-sm, + .input-group-sm input[type="date"], + .input-group-sm input[type="time"], + .input-group-sm input[type="datetime-local"], + .input-group-sm input[type="month"] { + line-height: 30px; + } + input[type="date"].input-lg, + input[type="time"].input-lg, + input[type="datetime-local"].input-lg, + input[type="month"].input-lg, + .input-group-lg input[type="date"], + .input-group-lg input[type="time"], + .input-group-lg input[type="datetime-local"], + .input-group-lg input[type="month"] { + line-height: 46px; + } +} +.form-group { + margin-bottom: 15px; +} +.radio, +.checkbox { + position: relative; + display: block; + margin-top: 10px; + margin-bottom: 10px; +} +.radio label, +.checkbox label { + min-height: 20px; + padding-left: 20px; + margin-bottom: 0; + font-weight: normal; + cursor: pointer; +} +.radio input[type="radio"], +.radio-inline input[type="radio"], +.checkbox input[type="checkbox"], +.checkbox-inline input[type="checkbox"] { + position: absolute; + margin-top: 4px \9; + margin-left: -20px; +} +.radio + .radio, +.checkbox + .checkbox { + margin-top: -5px; +} +.radio-inline, +.checkbox-inline { + display: inline-block; + padding-left: 20px; + margin-bottom: 0; + font-weight: normal; + vertical-align: middle; + cursor: pointer; +} +.radio-inline + .radio-inline, +.checkbox-inline + .checkbox-inline { + margin-top: 0; + margin-left: 10px; +} +input[type="radio"][disabled], +input[type="checkbox"][disabled], +input[type="radio"].disabled, +input[type="checkbox"].disabled, +fieldset[disabled] input[type="radio"], +fieldset[disabled] input[type="checkbox"] { + cursor: not-allowed; +} +.radio-inline.disabled, +.checkbox-inline.disabled, +fieldset[disabled] .radio-inline, +fieldset[disabled] .checkbox-inline { + cursor: not-allowed; +} +.radio.disabled label, +.checkbox.disabled label, +fieldset[disabled] .radio label, +fieldset[disabled] .checkbox label { + cursor: not-allowed; +} +.form-control-static { + padding-top: 5px; + padding-bottom: 5px; + margin-bottom: 0; +} +.form-control-static.input-lg, +.form-control-static.input-sm { + padding-right: 0; + padding-left: 0; +} +.input-sm { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +select.input-sm { + height: 30px; + line-height: 30px; +} +textarea.input-sm, +select[multiple].input-sm { + height: auto; +} +.form-group-sm .form-control { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +select.form-group-sm .form-control { + height: 30px; + line-height: 30px; +} +textarea.form-group-sm .form-control, +select[multiple].form-group-sm .form-control { + height: auto; +} +.input-lg { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} +select.input-lg { + height: 46px; + line-height: 46px; +} +textarea.input-lg, +select[multiple].input-lg { + height: auto; +} +.form-group-lg .form-control { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} +select.form-group-lg .form-control { + height: 46px; + line-height: 46px; +} +textarea.form-group-lg .form-control, +select[multiple].form-group-lg .form-control { + height: auto; +} +.has-feedback { + position: relative; +} +.has-feedback .form-control { + padding-right: 37.5px; +} +.form-control-feedback { + position: absolute; + top: 0; + right: 0; + z-index: 2; + display: block; + width: 30px; + height: 30px; + line-height: 30px; + text-align: center; + pointer-events: none; +} +.input-lg + .form-control-feedback { + width: 46px; + height: 46px; + line-height: 46px; +} +.input-sm + .form-control-feedback { + width: 30px; + height: 30px; + line-height: 30px; +} +.has-success .help-block, +.has-success .control-label, +.has-success .radio, +.has-success .checkbox, +.has-success .radio-inline, +.has-success .checkbox-inline, +.has-success.radio label, +.has-success.checkbox label, +.has-success.radio-inline label, +.has-success.checkbox-inline label { + color: #98d85b; +} +.has-success .form-control { + border-color: #98d85b; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); +} +.has-success .form-control:focus { + border-color: #7ece32; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ccecad; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ccecad; +} +.has-success .input-group-addon { + color: #98d85b; + background-color: transparent; + border-color: #98d85b; +} +.has-success .form-control-feedback { + color: #98d85b; +} +.has-warning .help-block, +.has-warning .control-label, +.has-warning .radio, +.has-warning .checkbox, +.has-warning .radio-inline, +.has-warning .checkbox-inline, +.has-warning.radio label, +.has-warning.checkbox label, +.has-warning.radio-inline label, +.has-warning.checkbox-inline label { + color: #ffa00a; +} +.has-warning .form-control { + border-color: #ffa00a; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); +} +.has-warning .form-control:focus { + border-color: #d68300; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ffc870; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ffc870; +} +.has-warning .input-group-addon { + color: #ffa00a; + background-color: transparent; + border-color: #ffa00a; +} +.has-warning .form-control-feedback { + color: #ffa00a; +} +.has-error .help-block, +.has-error .control-label, +.has-error .radio, +.has-error .checkbox, +.has-error .radio-inline, +.has-error .checkbox-inline, +.has-error.radio label, +.has-error.checkbox label, +.has-error.radio-inline label, +.has-error.checkbox-inline label { + color: #ff5858; +} +.has-error .form-control { + border-color: #ff5858; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); +} +.has-error .form-control:focus { + border-color: #ff2525; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ffbebe; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ffbebe; +} +.has-error .input-group-addon { + color: #ff5858; + background-color: transparent; + border-color: #ff5858; +} +.has-error .form-control-feedback { + color: #ff5858; +} +.has-feedback label ~ .form-control-feedback { + top: 25px; +} +.has-feedback label.sr-only ~ .form-control-feedback { + top: 0; +} +.help-block { + display: block; + margin-top: 5px; + margin-bottom: 10px; + color: #6b8196; +} +@media (min-width: 768px) { + .form-inline .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + .form-inline .form-control-static { + display: inline-block; + } + .form-inline .input-group { + display: inline-table; + vertical-align: middle; + } + .form-inline .input-group .input-group-addon, + .form-inline .input-group .input-group-btn, + .form-inline .input-group .form-control { + width: auto; + } + .form-inline .input-group > .form-control { + width: 100%; + } + .form-inline .control-label { + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .radio, + .form-inline .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .radio label, + .form-inline .checkbox label { + padding-left: 0; + } + .form-inline .radio input[type="radio"], + .form-inline .checkbox input[type="checkbox"] { + position: relative; + margin-left: 0; + } + .form-inline .has-feedback .form-control-feedback { + top: 0; + } +} +.form-horizontal .radio, +.form-horizontal .checkbox, +.form-horizontal .radio-inline, +.form-horizontal .checkbox-inline { + padding-top: 5px; + margin-top: 0; + margin-bottom: 0; +} +.form-horizontal .radio, +.form-horizontal .checkbox { + min-height: 25px; +} +.form-horizontal .form-group { + margin-right: -15px; + margin-left: -15px; +} +@media (min-width: 768px) { + .form-horizontal .control-label { + padding-top: 5px; + margin-bottom: 0; + text-align: right; + } +} +.form-horizontal .has-feedback .form-control-feedback { + right: 15px; +} +@media (min-width: 768px) { + .form-horizontal .form-group-lg .control-label { + padding-top: 14.3px; + } +} +@media (min-width: 768px) { + .form-horizontal .form-group-sm .control-label { + padding-top: 6px; + } +} +.btn { + display: inline-block; + padding: .25rem .5rem; + margin-bottom: 0; + font-size: 1rem; + font-weight: normal; + line-height: 1.42857143; + text-align: center; + white-space: nowrap; + vertical-align: middle; + -ms-touch-action: manipulation; + touch-action: manipulation; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-image: none; + border: 1px solid transparent; + border-radius: .25rem; +} +.btn:focus, +.btn:active:focus, +.btn.active:focus, +.btn.focus, +.btn:active.focus, +.btn.active.focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.btn:hover, +.btn:focus, +.btn.focus { + color: inherit; + text-decoration: none; +} +.btn:active, +.btn.active { + background-image: none; + outline: 0; + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); +} +.btn.disabled, +.btn[disabled], +fieldset[disabled] .btn { + pointer-events: none; + cursor: not-allowed; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + box-shadow: none; + opacity: .65; +} +.btn-default { + color: inherit; + background-color: #f0f4f7; + border-color: transparent; +} +.btn-default:hover, +.btn-default:focus, +.btn-default.focus, +.btn-default:active, +.btn-default.active, +.open > .dropdown-toggle.btn-default { + color: inherit; + background-color: #cfdce5; + border-color: rgba(0, 0, 0, 0); +} +.btn-default:active, +.btn-default.active, +.open > .dropdown-toggle.btn-default { + background-image: none; +} +.btn-default.disabled, +.btn-default[disabled], +fieldset[disabled] .btn-default, +.btn-default.disabled:hover, +.btn-default[disabled]:hover, +fieldset[disabled] .btn-default:hover, +.btn-default.disabled:focus, +.btn-default[disabled]:focus, +fieldset[disabled] .btn-default:focus, +.btn-default.disabled.focus, +.btn-default[disabled].focus, +fieldset[disabled] .btn-default.focus, +.btn-default.disabled:active, +.btn-default[disabled]:active, +fieldset[disabled] .btn-default:active, +.btn-default.disabled.active, +.btn-default[disabled].active, +fieldset[disabled] .btn-default.active { + background-color: #f0f4f7; + border-color: transparent; +} +.btn-default .badge { + color: #f0f4f7; + background-color: inherit; +} +.btn-primary { + color: #fff; + background-color: #5e64ff; + border-color: #444bff; +} +.btn-primary:hover, +.btn-primary:focus, +.btn-primary.focus, +.btn-primary:active, +.btn-primary.active, +.open > .dropdown-toggle.btn-primary { + color: #fff; + background-color: #2b33ff; + border-color: #0711ff; +} +.btn-primary:active, +.btn-primary.active, +.open > .dropdown-toggle.btn-primary { + background-image: none; +} +.btn-primary.disabled, +.btn-primary[disabled], +fieldset[disabled] .btn-primary, +.btn-primary.disabled:hover, +.btn-primary[disabled]:hover, +fieldset[disabled] .btn-primary:hover, +.btn-primary.disabled:focus, +.btn-primary[disabled]:focus, +fieldset[disabled] .btn-primary:focus, +.btn-primary.disabled.focus, +.btn-primary[disabled].focus, +fieldset[disabled] .btn-primary.focus, +.btn-primary.disabled:active, +.btn-primary[disabled]:active, +fieldset[disabled] .btn-primary:active, +.btn-primary.disabled.active, +.btn-primary[disabled].active, +fieldset[disabled] .btn-primary.active { + background-color: #5e64ff; + border-color: #444bff; +} +.btn-primary .badge { + color: #5e64ff; + background-color: #fff; +} +.btn-success { + color: #fff; + background-color: #98d85b; + border-color: #8bd346; +} +.btn-success:hover, +.btn-success:focus, +.btn-success.focus, +.btn-success:active, +.btn-success.active, +.open > .dropdown-toggle.btn-success { + color: #fff; + background-color: #7ece32; + border-color: #6db22a; +} +.btn-success:active, +.btn-success.active, +.open > .dropdown-toggle.btn-success { + background-image: none; +} +.btn-success.disabled, +.btn-success[disabled], +fieldset[disabled] .btn-success, +.btn-success.disabled:hover, +.btn-success[disabled]:hover, +fieldset[disabled] .btn-success:hover, +.btn-success.disabled:focus, +.btn-success[disabled]:focus, +fieldset[disabled] .btn-success:focus, +.btn-success.disabled.focus, +.btn-success[disabled].focus, +fieldset[disabled] .btn-success.focus, +.btn-success.disabled:active, +.btn-success[disabled]:active, +fieldset[disabled] .btn-success:active, +.btn-success.disabled.active, +.btn-success[disabled].active, +fieldset[disabled] .btn-success.active { + background-color: #98d85b; + border-color: #8bd346; +} +.btn-success .badge { + color: #98d85b; + background-color: #fff; +} +.btn-info { + color: #fff; + background-color: #8d99a6; + border-color: #7f8c9b; +} +.btn-info:hover, +.btn-info:focus, +.btn-info.focus, +.btn-info:active, +.btn-info.active, +.open > .dropdown-toggle.btn-info { + color: #fff; + background-color: #707f90; + border-color: #616e7c; +} +.btn-info:active, +.btn-info.active, +.open > .dropdown-toggle.btn-info { + background-image: none; +} +.btn-info.disabled, +.btn-info[disabled], +fieldset[disabled] .btn-info, +.btn-info.disabled:hover, +.btn-info[disabled]:hover, +fieldset[disabled] .btn-info:hover, +.btn-info.disabled:focus, +.btn-info[disabled]:focus, +fieldset[disabled] .btn-info:focus, +.btn-info.disabled.focus, +.btn-info[disabled].focus, +fieldset[disabled] .btn-info.focus, +.btn-info.disabled:active, +.btn-info[disabled]:active, +fieldset[disabled] .btn-info:active, +.btn-info.disabled.active, +.btn-info[disabled].active, +fieldset[disabled] .btn-info.active { + background-color: #8d99a6; + border-color: #7f8c9b; +} +.btn-info .badge { + color: #8d99a6; + background-color: #fff; +} +.btn-warning { + color: #fff; + background-color: #ffa00a; + border-color: #f09300; +} +.btn-warning:hover, +.btn-warning:focus, +.btn-warning.focus, +.btn-warning:active, +.btn-warning.active, +.open > .dropdown-toggle.btn-warning { + color: #fff; + background-color: #d68300; + border-color: #b26d00; +} +.btn-warning:active, +.btn-warning.active, +.open > .dropdown-toggle.btn-warning { + background-image: none; +} +.btn-warning.disabled, +.btn-warning[disabled], +fieldset[disabled] .btn-warning, +.btn-warning.disabled:hover, +.btn-warning[disabled]:hover, +fieldset[disabled] .btn-warning:hover, +.btn-warning.disabled:focus, +.btn-warning[disabled]:focus, +fieldset[disabled] .btn-warning:focus, +.btn-warning.disabled.focus, +.btn-warning[disabled].focus, +fieldset[disabled] .btn-warning.focus, +.btn-warning.disabled:active, +.btn-warning[disabled]:active, +fieldset[disabled] .btn-warning:active, +.btn-warning.disabled.active, +.btn-warning[disabled].active, +fieldset[disabled] .btn-warning.active { + background-color: #ffa00a; + border-color: #f09300; +} +.btn-warning .badge { + color: #ffa00a; + background-color: #fff; +} +.btn-danger { + color: #fff; + background-color: #ff5858; + border-color: #ff3f3f; +} +.btn-danger:hover, +.btn-danger:focus, +.btn-danger.focus, +.btn-danger:active, +.btn-danger.active, +.open > .dropdown-toggle.btn-danger { + color: #fff; + background-color: #ff2525; + border-color: #ff0101; +} +.btn-danger:active, +.btn-danger.active, +.open > .dropdown-toggle.btn-danger { + background-image: none; +} +.btn-danger.disabled, +.btn-danger[disabled], +fieldset[disabled] .btn-danger, +.btn-danger.disabled:hover, +.btn-danger[disabled]:hover, +fieldset[disabled] .btn-danger:hover, +.btn-danger.disabled:focus, +.btn-danger[disabled]:focus, +fieldset[disabled] .btn-danger:focus, +.btn-danger.disabled.focus, +.btn-danger[disabled].focus, +fieldset[disabled] .btn-danger.focus, +.btn-danger.disabled:active, +.btn-danger[disabled]:active, +fieldset[disabled] .btn-danger:active, +.btn-danger.disabled.active, +.btn-danger[disabled].active, +fieldset[disabled] .btn-danger.active { + background-color: #ff5858; + border-color: #ff3f3f; +} +.btn-danger .badge { + color: #ff5858; + background-color: #fff; +} +.btn-link { + font-weight: normal; + color: #36414c; + border-radius: 0; +} +.btn-link, +.btn-link:active, +.btn-link.active, +.btn-link[disabled], +fieldset[disabled] .btn-link { + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none; +} +.btn-link, +.btn-link:hover, +.btn-link:focus, +.btn-link:active { + border-color: transparent; +} +.btn-link:hover, +.btn-link:focus { + color: #161b1f; + text-decoration: underline; + background-color: transparent; +} +.btn-link[disabled]:hover, +fieldset[disabled] .btn-link:hover, +.btn-link[disabled]:focus, +fieldset[disabled] .btn-link:focus { + color: #777; + text-decoration: none; +} +.btn-lg, +.btn-group-lg > .btn { + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} +.btn-sm, +.btn-group-sm > .btn { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +.btn-xs, +.btn-group-xs > .btn { + padding: 1px 5px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +.btn-block { + display: block; + width: 100%; +} +.btn-block + .btn-block { + margin-top: 5px; +} +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} + +.collapse { + display: none; + visibility: hidden; +} +.collapse.in { + display: block; + visibility: visible; +} +tr.collapse.in { + display: table-row; +} +tbody.collapse.in { + display: table-row-group; +} +.collapsing { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition-timing-function: ease; + -o-transition-timing-function: ease; + transition-timing-function: ease; + -webkit-transition-duration: .35s; + -o-transition-duration: .35s; + transition-duration: .35s; + -webkit-transition-property: height, visibility; + -o-transition-property: height, visibility; + transition-property: height, visibility; +} +.caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: 4px solid; + border-right: 4px solid transparent; + border-left: 4px solid transparent; +} +.dropdown { + position: relative; +} +.dropdown-toggle:focus { + outline: 0; +} +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + font-size: 14px; + text-align: left; + list-style: none; + background-color: #fff; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, .15); + border-radius: 4px; + -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175); + box-shadow: 0 6px 12px rgba(0, 0, 0, .175); +} +.dropdown-menu.pull-right { + right: 0; + left: auto; +} +.dropdown-menu .divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #d8dfe5; +} +.dropdown-menu > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 1.42857143; + color: #333; + white-space: nowrap; +} +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus { + color: #262626; + text-decoration: none; + background-color: #f0f4f7; +} +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + color: inherit; + text-decoration: none; + background-color: #f0f4f7; + outline: 0; +} +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + color: #777; +} +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + text-decoration: none; + cursor: not-allowed; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.open > .dropdown-menu { + display: block; +} +.open > a { + outline: 0; +} +.dropdown-menu-right { + right: 0; + left: auto; +} +.dropdown-menu-left { + right: auto; + left: 0; +} +.dropdown-header { + display: block; + padding: 3px 20px; + font-size: 12px; + line-height: 1.42857143; + color: #777; + white-space: nowrap; +} +.dropdown-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 990; +} +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + content: ""; + border-top: 0; + border-bottom: 4px solid; +} +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 2px; +} +@media (min-width: 768px) { + .navbar-right .dropdown-menu { + right: 0; + left: auto; + } + .navbar-right .dropdown-menu-left { + right: auto; + left: 0; + } +} +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-block; + vertical-align: middle; +} +.btn-group > .btn, +.btn-group-vertical > .btn { + position: relative; + float: left; +} +.btn-group > .btn:hover, +.btn-group-vertical > .btn:hover, +.btn-group > .btn:focus, +.btn-group-vertical > .btn:focus, +.btn-group > .btn:active, +.btn-group-vertical > .btn:active, +.btn-group > .btn.active, +.btn-group-vertical > .btn.active { + z-index: 2; +} +.btn-group .btn + .btn, +.btn-group .btn + .btn-group, +.btn-group .btn-group + .btn, +.btn-group .btn-group + .btn-group { + margin-left: -1px; +} +.btn-toolbar { + margin-left: -5px; +} +.btn-toolbar .btn-group, +.btn-toolbar .input-group { + float: left; +} +.btn-toolbar > .btn, +.btn-toolbar > .btn-group, +.btn-toolbar > .input-group { + margin-left: 5px; +} +.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { + border-radius: 0; +} +.btn-group > .btn:first-child { + margin-left: 0; +} +.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.btn-group > .btn:last-child:not(:first-child), +.btn-group > .dropdown-toggle:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group > .btn-group { + float: left; +} +.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} +.btn-group > .btn-group:first-child > .btn:last-child, +.btn-group > .btn-group:first-child > .dropdown-toggle { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.btn-group > .btn-group:last-child > .btn:first-child { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} +.btn-group > .btn + .dropdown-toggle { + padding-right: 8px; + padding-left: 8px; +} +.btn-group > .btn-lg + .dropdown-toggle { + padding-right: 12px; + padding-left: 12px; +} +.btn-group.open .dropdown-toggle { + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); +} +.btn-group.open .dropdown-toggle.btn-link { + -webkit-box-shadow: none; + box-shadow: none; +} +.btn .caret { + margin-left: 0; +} +.btn-lg .caret { + border-width: 5px 5px 0; + border-bottom-width: 0; +} +.dropup .btn-lg .caret { + border-width: 0 5px 5px; +} +.btn-group-vertical > .btn, +.btn-group-vertical > .btn-group, +.btn-group-vertical > .btn-group > .btn { + display: block; + float: none; + width: 100%; + max-width: 100%; +} +.btn-group-vertical > .btn-group > .btn { + float: none; +} +.btn-group-vertical > .btn + .btn, +.btn-group-vertical > .btn + .btn-group, +.btn-group-vertical > .btn-group + .btn, +.btn-group-vertical > .btn-group + .btn-group { + margin-top: -1px; + margin-left: 0; +} +.btn-group-vertical > .btn:not(:first-child):not(:last-child) { + border-radius: 0; +} +.btn-group-vertical > .btn:first-child:not(:last-child) { + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group-vertical > .btn:last-child:not(:first-child) { + border-top-left-radius: 0; + border-top-right-radius: 0; + border-bottom-left-radius: 4px; +} +.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} +.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, +.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.btn-group-justified { + display: table; + width: 100%; + table-layout: fixed; + border-collapse: separate; +} +.btn-group-justified > .btn, +.btn-group-justified > .btn-group { + display: table-cell; + float: none; + width: 1%; +} +.btn-group-justified > .btn-group .btn { + width: 100%; +} +.btn-group-justified > .btn-group .dropdown-menu { + left: auto; +} +[data-toggle="buttons"] > .btn input[type="radio"], +[data-toggle="buttons"] > .btn-group > .btn input[type="radio"], +[data-toggle="buttons"] > .btn input[type="checkbox"], +[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; +} +.input-group { + position: relative; + display: table; + border-collapse: separate; +} +.input-group[class*="col-"] { + float: none; + padding-right: 0; + padding-left: 0; +} +.input-group .form-control { + position: relative; + z-index: 2; + float: left; + width: 100%; + margin-bottom: 0; +} +.input-group-lg > .form-control, +.input-group-lg > .input-group-addon, +.input-group-lg > .input-group-btn > .btn { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} +select.input-group-lg > .form-control, +select.input-group-lg > .input-group-addon, +select.input-group-lg > .input-group-btn > .btn { + height: 46px; + line-height: 46px; +} +textarea.input-group-lg > .form-control, +textarea.input-group-lg > .input-group-addon, +textarea.input-group-lg > .input-group-btn > .btn, +select[multiple].input-group-lg > .form-control, +select[multiple].input-group-lg > .input-group-addon, +select[multiple].input-group-lg > .input-group-btn > .btn { + height: auto; +} +.input-group-sm > .form-control, +.input-group-sm > .input-group-addon, +.input-group-sm > .input-group-btn > .btn { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +select.input-group-sm > .form-control, +select.input-group-sm > .input-group-addon, +select.input-group-sm > .input-group-btn > .btn { + height: 30px; + line-height: 30px; +} +textarea.input-group-sm > .form-control, +textarea.input-group-sm > .input-group-addon, +textarea.input-group-sm > .input-group-btn > .btn, +select[multiple].input-group-sm > .form-control, +select[multiple].input-group-sm > .input-group-addon, +select[multiple].input-group-sm > .input-group-btn > .btn { + height: auto; +} +.input-group-addon, +.input-group-btn, +.input-group .form-control { + display: table-cell; +} +.input-group-addon:not(:first-child):not(:last-child), +.input-group-btn:not(:first-child):not(:last-child), +.input-group .form-control:not(:first-child):not(:last-child) { + border-radius: 0; +} +.input-group-addon, +.input-group-btn { + width: 1%; + white-space: nowrap; + vertical-align: middle; +} +.input-group-addon { + padding: 4px 10px; + font-size: 14px; + font-weight: normal; + line-height: 1; + color: #555; + text-align: center; + background-color: #f0f4f7; + border: 1px solid #d1d8dd; + border-radius: 4px; +} +.input-group-addon.input-sm { + padding: 5px 10px; + font-size: 12px; + border-radius: 3px; +} +.input-group-addon.input-lg { + padding: 10px 16px; + font-size: 18px; + border-radius: 6px; +} +.input-group-addon input[type="radio"], +.input-group-addon input[type="checkbox"] { + margin-top: 0; +} +.input-group .form-control:first-child, +.input-group-addon:first-child, +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .btn-group > .btn, +.input-group-btn:first-child > .dropdown-toggle, +.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), +.input-group-btn:last-child > .btn-group:not(:last-child) > .btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.input-group-addon:first-child { + border-right: 0; +} +.input-group .form-control:last-child, +.input-group-addon:last-child, +.input-group-btn:last-child > .btn, +.input-group-btn:last-child > .btn-group > .btn, +.input-group-btn:last-child > .dropdown-toggle, +.input-group-btn:first-child > .btn:not(:first-child), +.input-group-btn:first-child > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.input-group-addon:last-child { + border-left: 0; +} +.input-group-btn { + position: relative; + font-size: 0; + white-space: nowrap; +} +.input-group-btn > .btn { + position: relative; +} +.input-group-btn > .btn + .btn { + margin-left: -1px; +} +.input-group-btn > .btn:hover, +.input-group-btn > .btn:focus, +.input-group-btn > .btn:active { + z-index: 2; +} +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .btn-group { + margin-right: -1px; +} +.input-group-btn:last-child > .btn, +.input-group-btn:last-child > .btn-group { + margin-left: -1px; +} +.tooltip { + position: absolute; + z-index: 1070; + display: block; + font-size: 12px; + font-weight: normal; + line-height: 1.4; + visibility: visible; + filter: alpha(opacity=0); + opacity: 0; +} +.tooltip.in { + filter: alpha(opacity=90); + opacity: .9; +} +.tooltip.top { + padding: 5px 0; + margin-top: -3px; +} +.tooltip.right { + padding: 0 5px; + margin-left: 3px; +} +.tooltip.bottom { + padding: 5px 0; + margin-top: 3px; +} +.tooltip.left { + padding: 0 5px; + margin-left: -3px; +} +.tooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: #fff; + text-align: center; + text-decoration: none; + background-color: #000; + border-radius: 4px; +} +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-width: 5px 5px 0; + border-top-color: #000; +} +.tooltip.top-left .tooltip-arrow { + right: 5px; + bottom: 0; + margin-bottom: -5px; + border-width: 5px 5px 0; + border-top-color: #000; +} +.tooltip.top-right .tooltip-arrow { + bottom: 0; + left: 5px; + margin-bottom: -5px; + border-width: 5px 5px 0; + border-top-color: #000; +} +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-width: 5px 5px 5px 0; + border-right-color: #000; +} +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-width: 5px 0 5px 5px; + border-left-color: #000; +} +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000; +} +.tooltip.bottom-left .tooltip-arrow { + top: 0; + right: 5px; + margin-top: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000; +} +.tooltip.bottom-right .tooltip-arrow { + top: 0; + left: 5px; + margin-top: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000; +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: none; + max-width: 276px; + padding: 1px; + font-size: 14px; + font-weight: normal; + line-height: 1.42857143; + text-align: left; + white-space: normal; + background-color: #fff; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, .2); + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2); + box-shadow: 0 5px 10px rgba(0, 0, 0, .2); +} diff --git a/foundation/public/css/erpnext-org-theme.css b/foundation/public/css/erpnext-org-theme.css new file mode 100644 index 00000000..e18e5e31 --- /dev/null +++ b/foundation/public/css/erpnext-org-theme.css @@ -0,0 +1,1089 @@ +/*utilities*/ +@import "reset.css"; +.align-items-center { + align-items: center; +} +.hide, +.hidden { + display: none; + visibility: hidden; +} +.top-zero { + margin-top: 0; +} +.bottom-zero { + margin-bottom: 0; +} +.top-spacer { + margin-top: 2.5rem; +} +.bottom-spacer { + margin-bottom: 2.5rem; +} +.top-spacer-4 { + margin-top: 4rem; +} +.bottom-spacer-4 { + margin-bottom: 4rem; +} +.gray-bg { + background-color: #fafbfc; +} +.dark-bg { + background-color: #2E3338; +} +.left-aligned, +.text-left { + text-align: left; +} +.right-aligned { + text-align: right; +} +.text-center { + text-align: center; +} +.text-muted { + color: #8D99A6; +} +.text-light { + color: #6c7680; +} +.text-white { + color: #fff; +} +.text-normal { + font-size: 1rem; +} +.text-medium { + font-size: 1.5rem; +} +.text-small { + font-size: 0.5rem; +} +.centered { + margin-left: auto; + margin-right: auto; +} +.bold { + font-weight: bold; +} +.list-unstyled { + padding: 0; +} +.list-unstyled li { + list-style: none; +} +.list-circle { + list-style: circle; +} +.bullet::before { + content: "\2022"; + display: inline-block; + width: 1em; + font-size: 1.25rem; +} +.half-width { + max-width: 50%; +} +.border { + border: 1px solid #d1d8dd; +} +.border-top { + border-top: 1px solid #d1d8dd; +} +.saturate { + filter: grayscale(100%); +} +.saturate:hover { + filter: grayscale(0%); +} +/* colors */ +.green-bullet::before { + color: #98d85b; +} +/* components */ +.grid-of-four, +.grid-of-three { + grid-gap: 2.5rem; + display: grid; +} +.grid-of-four { + grid-template-columns: repeat(1, 1fr); +} +@media screen and (min-width: 500px) { + .grid-of-four { + grid-template-columns: repeat(2, 1fr); + } +} +@media screen and (min-width: 767px) { + .grid-of-four { + grid-template-columns: repeat(3, 1fr); + } +} +@media screen and (min-width: 991px) { + .grid-of-four { + grid-template-columns: repeat(4, 1fr); + } +} +.grid-of-three { + grid-template-columns: repeat(1, 1fr); +} +@media screen and (min-width: 500px) { + .grid-of-three { + grid-template-columns: repeat(2, 1fr); + } +} +@media screen and (min-width: 767px) { + .grid-of-three { + grid-template-columns: repeat(3, 1fr); + } +} +.columns { + display: flex; + justify-content: space-between; + flex-direction: column; +} +@media screen and (min-width: 767px) { + .columns { + flex-direction: row; + } +} +.column { + margin-bottom: 1rem; +} +@media screen and (min-width: 767px) { + .column { + margin: 0; + } +} +.indicator, +.indicator-right { + background: none; + font-size: 12px; + vertical-align: middle; + font-weight: bold; + color: #6c7680; +} +.indicator::before, +.indicator-right::after { + content: ""; + display: inline-block; + height: 8px; + width: 8px; + border-radius: 8px; +} +.indicator::before { + margin: 0 4px 0 0; +} +.indicator-right::after { + margin: 0 0 0 4px; +} +.indicator.grey::before, +.indicator-right.grey::after { + background: #F0F4F7; +} +.indicator.blue::before, +.indicator-right.blue::after { + background: #5e64ff; +} +.indicator.red::before, +.indicator-right.red::after { + background: #ff5858; +} +.indicator.green::before, +.indicator-right.green::after { + background: #98d85b; +} +.indicator.orange::before, +.indicator-right.orange::after { + background: #ffa00a; +} +.indicator.purple::before, +.indicator-right.purple::after { + background: #743ee2; +} +.indicator.darkgrey::before, +.indicator-right.darkgrey::after { + background: #b8c2cc; +} +.indicator.black::before, +.indicator-right.black::after { + background: #36414C; +} +.indicator.yellow::before, +.indicator-right.yellow::after { + background: #FEEF72; +} +.indicator.light-blue::before, +.indicator-right.light-blue::after { + background: #7CD6FD; +} +.indicator.lightblue::before, +.indicator-right.lightblue::after { + background: #7CD6FD; +} +.modal-header .indicator { + float: left; + margin-top: 7.5px; + margin-right: 3px; +} +a { + color: #7575ff; + text-decoration: none; + transition: color 0.3s ease-out; +} +a:hover { + color: #2E3338; + text-decoration: underline; +} +a:focus, +a:visited { + outline: 0; +} +.header-1, +.header-2, +.header-3 { + line-height: 1.025; +} +.header-1 { + font-size: 2.5rem; +} +.header-2 { + font-size: 1.5rem; +} +.header-3 { + font-size: 1rem; +} +.navbar { + padding: 1rem; + background-color: #fff; +} +@media screen and (min-width: 767px) { + .navbar { + padding: 1rem 2.5rem; + } +} +.navbar-header { + display: flex; + justify-content: space-between; + align-items: center; +} +.navbar-icon { + width: 1.5rem; + margin-right: 0.5rem; + padding-bottom: 0.07rem; +} +.navbar-brand { + font-size: 1rem; + font-weight: bold; + letter-spacing: 0.005em; + text-decoration: none; + color: #36414C; +} +.navbar-brand:hover { + text-decoration: none; + color: #2E3338; +} +.navbar-brand:visited { + color: #36414C; +} +.menu { + display: flex; + margin: 0; +} +.menu-items { + padding-left: 1.5rem; +} +.menu-links { + color: #6c7680; + text-decoration: none; +} +.menu-links:hover { + text-decoration: none; +} +.container, +.page-content-wrapper { + max-width: 100%; + margin: 0 auto; +} +@media screen and (min-width: 1199px) { + .container, + .page-content-wrapper { + max-width: 1199px; + } +} +.feature, +.footer { + padding: 2.5rem 1rem; + border-top: 1px solid #EBEFF2; +} +@media screen and (min-width: 767px) { + .feature { + padding: 10.5rem 1.5rem; + } +} +@media screen and (min-width: 767px) { + .footer { + padding: 4rem 1.5rem; + } +} +.feature .bullet { + margin-bottom: 0.5rem; +} +.page { + padding: 0 1rem; + border-top: 1px solid #EBEFF2; +} +@media screen and (min-width: 767px) { + .page { + padding: 0 2.5rem; + } +} +.hero-illustration { + width: 100%; + max-width: 800px; +} +.list-items { + text-align: center; + border-radius: 0.5rem; + background-color: #fff; + min-width: 200px; + transition: all 0.3s ease-out; + margin: 0 1rem; +} +@media screen and (min-width: 500px) { + .list-items { + margin: 0; + } +} +.list-items:hover { + box-shadow: 0 5px 9px 0 rgba(0, 0, 0, 0.05); +} +.contact-content { + max-width: 90%; +} +@media screen and (min-width: 500px) { + .contact-content { + max-width: 50%; + } +} +.countries { + max-width: 100%; +} +@media screen and (min-width: 500px) { + .countries { + max-width: 50%; + min-width: 50%; + } +} +@media screen and (min-width: 767px) { + .countries { + max-width: 25%; + min-width: 25%; + } +} +.flex-wrap { + flex-wrap: wrap; + justify-content: flex-start; +} +.intro-copy { + max-width: 599.5px; + margin: 0 auto 1.5rem auto; +} +.primary-links { + color: #6c7680; + transition: all 0.3s ease-out; +} +.primary-links:hover { + color: #2E3338; + text-decoration: none; +} +.button { + padding: 1rem 1.5rem; + border-radius: 0.25em; + cursor: pointer; + transition: all 0.3s ease-out; + border-bottom: 3px solid rgba(0, 0, 0, 0.2); + text-decoration: none; +} +.button:hover { + text-decoration: none; +} +.button-primary { + font-size: 1.5em; + color: #fff; + background: #7575ff; + border-right: 0; + border-left: 0; + border-top: 0; + line-height: 3; +} +.button-primary:hover { + background: #5e5ec9; + color: #fff; +} +.button-secondary { + font-size: 1.5em; + color: #6c7680; + background: #F0F4F7; + border-right: 0; + border-left: 0; + border-top: 0; + line-height: 3; +} +.button-secondary:hover { + background: #ffffff; + color: #2E3338; +} +.secondary-link { + color: #6c7680; + transition: color 0.3s ease-out; +} +.secondary-link:hover { + color: #2E3338; +} +.bulleted-list { + margin: 0; + padding-left: 1em; +} +.bulleted-list li { + padding-bottom: 1em; +} +.footer-list { + padding-left: 0; +} +.page_content li, +.sidebar-item, +.footer-list li { + margin-bottom: 0.5rem; +} +.page-container { + display: flex; + max-width: 1199px; + margin: 0 auto; + flex-direction: column-reverse; +} +@media screen and (min-width: 767px) { + .page-container { + flex-direction: row; + } +} +.page-content { + width: 100%; + padding: 4rem 0; +} +.page-content h1:first-child { + margin-top: 0; +} +.breadcrumb { + padding: 0; + margin-bottom: 1.5rem; +} +.breadcrumb a { + background-color: transparent; + color: #8D99A6; +} +.breadcrumb a:focus, +.breadcrumb a:visited { + background-color: transparent; + color: #8D99A6; +} +.breadcrumb a:hover { + color: #2E3338; + transition: color 0.3s ease-out; +} +.breadcrumb > li { + display: inline-block; +} +.breadcrumb > li + li::before { + padding: 0 5px; + color: #8D99A6; + content: "/\00a0"; +} +.sidebar-block { + padding: 4rem 0; + min-width: 200px; + border-top: 1px solid #EBEFF2; +} +@media screen and (min-width: 767px) { + .sidebar-block { + border-right: 1px solid #EBEFF2; + border-top: 0; + } +} +.blog-page { + padding: 4rem 0; + max-width: 700px; + margin: 0 auto; +} +.page-content.with-sidebar { + padding: 1rem; +} +@media screen and (min-width: 767px) { + .page-content.with-sidebar { + padding: 4rem 0 4rem 2.5rem; + } +} +hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-top: 1px solid #EBEFF2; +} +.footer-end { + border-top: 1px solid #354047; + padding-top: 1rem; + margin-top: 1rem; + font-size: 0.75rem; +} +@media screen and (min-width: 767px) { + .footer-end { + padding-top: 2.5rem; + margin-top: 1.5rem; + } +} +.footer a { + color: #8D99A6; +} +.footer a:hover { + color: #fff; +} +.footer-icon { + width: 1.5rem; + margin-right: 0.5em; +} +/* loaned from bootstrap need to cleanup*/ +/*progress bar*/ +.progress { + height: 1.5rem; + margin-bottom: 1.5rem; + overflow: hidden; + background-color: #f5f5f5; + border-radius: 0.25rem; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); +} +.progress-bar { + height: inherit; +} +.progress-bar-success { + background-color: #98d85b; +} +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} +/*progress bar*/ +.clickable a { + color: #36414C; +} +.clickable a:focus { + outline: 0; +} +.fade.in { + opacity: 1; +} +caption { + padding-top: 8px; + padding-bottom: 8px; + color: #8D99A6; + text-align: left; +} +th { + text-align: left; +} +.input-group { + position: relative; + display: table; + border-collapse: separate; +} +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-block; + vertical-align: middle; +} +.note-popover .popover-content > .btn-group, +.panel-heading.note-toolbar > .btn-group { + margin-top: 5px; + margin-right: 5px; + margin-left: 0; +} +.note-popover .popover-content, +.panel-heading.note-toolbar { + padding: 0 0 5px 5px; + margin: 0; +} +.panel-heading { + padding: 0.5rem 1rem; + border-bottom: 1px solid transparent; + border-top-left-radius: 0.25em; + border-top-right-radius: 0.25em; +} +.panel-default > .panel-heading { + color: #333; + background-color: #f7fafc; + border-color: #d1d8dd; +} +.panel-body { + padding-left: 1rem; +} +.modal { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + display: none; + overflow: hidden; + outline: 0; +} +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto; +} +.modal-backdrop.in { + filter: alpha(opacity=50); + opacity: 0.5; +} +.modal-backdrop { + position: absolute; + top: 0; + right: 0; + left: 0; + background-color: #334143; +} +.modal-dialog { + width: 600px; + margin: 2rem auto; +} +.modal.in .modal-dialog { + transform: translate(0, 0); +} +.modal-content { + position: relative; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #d1d8dd; + border-radius: 0.25rem; + outline: 0; + box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); +} +.modal-header { + min-height: 1rem; + padding: 1rem; + border-bottom: 1px solid #d1d8dd; +} +.modal-title { + margin: 0; + line-height: 1.42857143; +} +.modal-body { + position: relative; + padding: 1rem; +} +.close { + float: right; + font-size: 1.5rem; + font-weight: bold; + line-height: 1; + color: #000; + text-shadow: 0 1px 0 #fff; + filter: alpha(opacity=20); + opacity: 0.2; +} +.modal-header .close { + margin-top: -2px; +} +.close:hover, +.close:focus { + color: #000; + text-decoration: none; + cursor: pointer; + filter: alpha(opacity=50); + opacity: 0.5; +} +.btn-default { + color: inherit; + background-color: #f0f4f7; + border-color: transparent; +} +.btn { + display: inline-block; + padding: 0.25em 0.75em; + margin-bottom: 0; + font-size: 1em; + font-weight: normal; + text-align: center; + white-space: nowrap; + vertical-align: middle; + cursor: pointer; + user-select: none; + background-image: none; + border: 1px solid transparent; + border-radius: 0.25em; +} +.btn-block { + background-image: none; + border: 1px solid transparent; + border-radius: 0.25em; + display: block; + width: 100%; +} +.form-control { + display: block; + width: 100%; + height: 2em; + padding: 0.5em; + color: #2e3338; + background-color: #fff; + background-image: none; + border: 1px solid #d1d8dd; + border-radius: 0.25em; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + transition: border-color ease-out 0.15s, box-shadow ease-out 0.15s; +} +.form-signin .form-control { + position: relative; + height: auto; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + padding: 0.5rem; + margin-bottom: 0.5rem; +} +code { + color: #fc4f51; + background: #fff5f5; + padding: 0.25em; + border-radius: 0.25em; + font-size: 0.85em; +} +/*loaned from frappe*/ +textarea.form-control { + height: auto; +} +.col-sm-6 { + margin-bottom: 1rem; +} +@media screen and (min-width: 767px) { + .col-sm-8 { + width: 66.66%; + } +} +.comment-view { + padding-bottom: 2.5rem; +} +.no-results { + text-align: center; + padding: 10rem 0; +} +.add-comment-section { + padding-bottom: 2rem; +} +.comment-header { + border-bottom: 1px solid #d1d8dd; + padding: 2rem 0 1rem; +} +.comment-row { + margin: 0 1rem; + padding: 1rem; +} +.comment-row:last-child { + margin-bottom: 2rem; + border-bottom: 0; +} +.page-card { + max-width: 360px; + padding: 1em; + margin: 8rem auto; + border: 1px solid #d1d8dd; + border-radius: 0.25em; + background-color: #fff; + box-shadow: 0 0.25em 0.5em rgba(0, 0, 0, 0.1); +} +.page-card .page-card-head { + padding: 0.75em 1em; + margin: -1em; + margin-bottom: 1em; + border-bottom: 1px solid #d1d8dd; +} +.login-content .btn { + margin-top: 3rem; +} +.btn-primary { + background-color: #7575ff; + border-color: #7575ff; + color: #fff; + transition: background-color 0.3s ease-in; +} +.btn-primary:hover, +.btn-primary:focus, +.btn-primary.focus, +.btn-primary:active, +.btn-primary.active, +.open > .dropdown-toggle.btn-primary { + color: #fff; + background-color: #5e5ec9; + border-color: #5e5ec9; + text-decoration: none; +} +img.blog-cover-image, +.blog-text img, +.screenshot { + box-shadow: 0 3px 6px rgba(0, 0, 0, 0.1); + border: 1px solid #d1d8dd; +} +.btn-next-wrapper { + margin-top: 4rem; +} +.input-group-btn { + display: table-cell; + vertical-align: middle; + white-space: nowrap; + height: 2rem; +} +.dropdown-menu { + display: none; + position: absolute; + list-style: none; + margin: 0; + padding: 0; + box-shadow: 0 5px 9px 0 rgba(0, 0, 0, 0.05); + background-color: #fff; +} +.dropdown-menu li { + padding: 0.5rem; + margin: 0; + transition: background-color 0.3s ease-out; + cursor: pointer; +} +.dropdown-menu li:hover { + background-color: #F0F4F7; +} +.display-block { + display: block; +} +.caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: 0.25rem solid; + border-right: 0.25rem solid transparent; + border-left: 0.25rem solid transparent; +} +.bounty-amount .form-control { + margin-right: 1.5rem; +} +.input-group-btn .dropdown-toggle { + margin-left: 1.5rem; +} +/*blog*/ +/*TODO Needs refactor in frappe to use utilities.less*/ +.blog-list-content { + border: 0; + background: transparent; +} +.blog-list-item { + padding-bottom: 4rem; + border-bottom: 1px solid #EBEFF2; +} +.blog-list-item:last-child { + border-bottom: 0; +} +.blog-list-item a { + color: #36414C; +} +.blog-list-item h1 { + margin-top: 0; +} +.blog-list-item:not(:first-child) { + padding-top: 4rem; +} +.blogpost-cover-img { + width: 75%; + margin-bottom: 0.5rem; +} +.blog-header { + font-size: 2.5rem; +} +.blog-container img { + margin-bottom: 1.5rem; +} +.blog-comments { + position: relative; + border-top: 1px solid #d1d8dd; +} +.blog-info { + margin: 2.5rem 0; +} +.blog-text { + font-size: 1.15em; + line-height: 1.62; +} +.blog-content { + margin-bottom: 2.5rem; +} +.blogger { + padding-top: 0; + padding-bottom: 2.5rem; +} +.blogger-name { + margin-top: 0.25em; + font-weight: normal; + font-size: 1rem; +} +.blogger-name a { + color: #36414C; +} +.avatar { + display: inline-block; + width: 3rem; + height: 3rem; + margin-right: 1rem; +} +.blog-list-item .avatar { + margin-right: 1em; +} +.avatar img { + max-width: 100%; + max-height: 100%; + border-radius: 0.25em; +} +.avatar-medium { + margin-right: 0.25em; + width: 2rem; + height: 2rem; +} +.inline-block { + display: inline-block; +} +.blog-container, +.max-width-medium { + max-width: 700px; +} +.media { + display: flex; + background: #fafbfc; + margin-bottom: 1.5rem; + border-radius: 0.25em; + padding: 1.5rem; + flex-direction: column; +} +@media screen and (min-width: 500px) { + .media { + flex-direction: row; + } +} +.media-left { + margin-bottom: 1.5rem; +} +@media screen and (min-width: 500px) { + .media-left { + margin-right: 2.5rem; + margin-bottom: 0; + } +} +.media-heading { + margin-top: 0; +} +.media-object { + width: 6.5rem; + max-width: inherit; +} +.with-border { + border-radius: 0.25em; + padding: 1rem; + margin-bottom: 2rem; + border: 1px solid #d1d8dd; +} +.with-border a { + text-decoration: none; + color: #36414C; +} +.with-border a:hover { + text-decoration: none; + color: #2E3338; +} +.with-border:hover { + background-color: #fafbfc; +} +/* individual elements */ +.gold-member { + display: flex; + padding: 2.5rem 0; + transition: background-color 0.3s ease-out; + border-bottom: 1px solid #d1d8dd; +} +.gold-member:hover { + background-color: #fafbfc; +} +.individual-member { + border-bottom: 1px solid #d1d8dd; + padding-bottom: 2.5rem; +} +.box { + padding: 1.5rem; + border: 1px solid #d1d8dd; + border-radius: 0.25em; + transition: background-color 0.3s ease-out; +} +.box:hover { + background-color: #fafbfc; +} +.grid-boxes { + font-size: 1.5rem; + display: block; + padding: 1.5rem; +} +.grid-boxes span { + display: block; +} +.thumb-small { + width: 100px; +} +.grid-images { + width: 150px; + padding-bottom: 1.5rem; +} +.feature-img { + max-width: 250px; +} +.community-bg { + background-image: linear-gradient(to bottom, rgba(117, 116, 254, 0.52), #7574fe), url("/assets/foundation/img/community-2016.jpg"); + background-size: cover; + background-repeat: no-repeat; + background-position: center; + background-attachment: fixed; +} +.community-bg .intro-copy, +.about .intro-copy { + max-width: 800px; +} +/* added to make iframe responsive */ +.embed-container { + position: relative; + padding-bottom: 56.25%; + height: 0; + overflow: hidden; + max-width: 800px; + width: auto; +} +.embed-container iframe, +.embed-container object, +.embed-container embed { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} diff --git a/foundation/public/css/reset.css b/foundation/public/css/reset.css new file mode 100644 index 00000000..c6d523c8 --- /dev/null +++ b/foundation/public/css/reset.css @@ -0,0 +1,367 @@ +/*! + * this reset is a copy of bootstrap's reboot.css which is inturn a fork of normalise* + * + * + * Bootstrap Reboot v4.0.0-beta.3 (https://getbootstrap.com) + * Copyright 2011-2017 The Bootstrap Authors + * Copyright 2011-2017 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md) + */ + +*, +*::before, +*::after { + box-sizing: border-box; +} + +html { + font-family: sans-serif; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; + -ms-overflow-style: scrollbar; + -webkit-tap-highlight-color: transparent; + line-height: 1.62; + font-size: 14px; +} + +@media screen and (min-width: 767px) { + html { + font-size: 16px; + } +} + +@-ms-viewport { + width: device-width; +} + +article, +aside, +dialog, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section { + display: block; +} + +body { + margin: 0; + font-weight: 400; + text-align: left; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Helvetica", "Arial", "Noto", "Oxygen-Sans", "Noto Sans", "Ubuntu", "Cantarell", sans-serif, "Apple Color Emoji", "Noto Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + color: #36414c; + font-feature-settings: "kern" 1; + font-kerning: normal; + text-rendering: optimizeLegibility; +} + +[ tabindex = "-1" ]:focus { + outline: 0; +} + +hr { + box-sizing: content-box; + height: 0; + overflow: visible; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + margin-bottom: 1rem; + margin-top: 0; + font-weight: 500; +} + +p { + margin-top: 0; + margin-bottom: 1rem; +} + +abbr[ title ], +abbr[ data-original-title ] { + text-decoration: underline; + -webkit-text-decoration: underline dotted; + cursor: help; + border-bottom: 0; +} + +address { + margin-bottom: 1rem; + font-style: normal; + line-height: inherit; +} + +ol, +ul, +dl { + margin-top: 0; + margin-bottom: 1rem; +} + +ol ol, +ul ul, +ol ul, +ul ol { + margin-bottom: 0; +} + +dt { + font-weight: 700; +} + +dd { + margin-bottom: 0.5rem; + margin-left: 0; +} + +blockquote { + margin: 0 0 1rem; +} + +dfn { + font-style: italic; +} + +b, +strong { + font-weight: bolder; +} + +small { + font-size: 80%; +} + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +a { + text-decoration: none; + background-color: transparent; + -webkit-text-decoration-skip: objects; +} + +a:hover { + text-decoration: underline; +} + +a:not([ href ]):not([ tabindex ]) { + text-decoration: none; +} + +a:not([ href ]):not([ tabindex ]):focus, +a:not([ href ]):not([ tabindex ]):hover { + text-decoration: none; +} + +a:not([ href ]):not([ tabindex ]):focus { + outline: 0; +} + +pre, +code, +kbd, +samp { + font-family: monospace, monospace; + font-size: 1em; +} + +pre { + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; + -ms-overflow-style: scrollbar; +} + +figure { + margin: 0 0 1rem; +} + +img { + vertical-align: middle; + border-style: none; + max-width: 100%; + border-radius: 0.25em; +} + +svg:not(:root) { + overflow: hidden; +} + +a, +area, +button, +[ role = "button" ], +input:not([ type = "range" ]), +label, +select, +summary, +textarea { + -ms-touch-action: manipulation; + touch-action: manipulation; +} + +table { + border-collapse: collapse; +} + +caption { + padding-top: 0.75rem; + padding-bottom: 0.75rem; + color: #6c757d; + text-align: left; + caption-side: bottom; +} + +th { + text-align: inherit; +} + +label { + display: inline-block; + margin-bottom: 0.5rem; +} + +button { + border-radius: 0; +} + +button:focus { + outline: none; + outline: 5px auto -webkit-focus-ring-color; +} + +input, +button, +select, +optgroup, +textarea { + margin: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +button, +input { + overflow: visible; +} + +button, +select { + text-transform: none; +} + +button, +html [type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; +} + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + padding: 0; + border-style: none; +} + +input[type="radio"], +input[type="checkbox"] { + box-sizing: border-box; + padding: 0; +} + +input[type="date"], +input[type="time"], +input[type="datetime-local"], +input[type="month"] { + -webkit-appearance: listbox; +} + +textarea { + overflow: auto; + resize: vertical; +} + +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} + +legend { + display: block; + width: 100%; + max-width: 100%; + padding: 0; + margin-bottom: 0.5rem; + font-size: 1.5rem; + line-height: inherit; + color: inherit; + white-space: normal; +} + +progress { + vertical-align: baseline; +} + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +[type="search"] { + outline-offset: -2px; + -webkit-appearance: none; +} + +[type="search"]::-webkit-search-cancel-button, +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +::-webkit-file-upload-button { + font: inherit; + -webkit-appearance: button; +} + +output { + display: inline-block; +} + +summary { + display: list-item; + cursor: pointer; +} + +template { + display: none; +} + +[hidden] { + display: none !important; +} diff --git a/foundation/public/img/agriculture.png b/foundation/public/img/agriculture.png new file mode 100644 index 00000000..365923cd Binary files /dev/null and b/foundation/public/img/agriculture.png differ diff --git a/foundation/public/img/airplane.jpg b/foundation/public/img/airplane.jpg deleted file mode 100644 index e087e3b0..00000000 Binary files a/foundation/public/img/airplane.jpg and /dev/null differ diff --git a/foundation/public/img/bench-logo.png b/foundation/public/img/bench-logo.png new file mode 100644 index 00000000..ae605289 Binary files /dev/null and b/foundation/public/img/bench-logo.png differ diff --git a/foundation/public/img/cloud.png b/foundation/public/img/cloud.png new file mode 100644 index 00000000..1b4ac07b Binary files /dev/null and b/foundation/public/img/cloud.png differ diff --git a/foundation/public/img/community-2016.jpg b/foundation/public/img/community-2016.jpg new file mode 100644 index 00000000..a969a0ce Binary files /dev/null and b/foundation/public/img/community-2016.jpg differ diff --git a/foundation/public/img/community-colored.jpg b/foundation/public/img/community-colored.jpg new file mode 100644 index 00000000..ce9436de Binary files /dev/null and b/foundation/public/img/community-colored.jpg differ diff --git a/foundation/public/img/community.jpeg b/foundation/public/img/community.jpeg deleted file mode 100644 index 4e03d31d..00000000 Binary files a/foundation/public/img/community.jpeg and /dev/null differ diff --git a/foundation/public/img/community.png b/foundation/public/img/community.png deleted file mode 100644 index 5ff687f5..00000000 Binary files a/foundation/public/img/community.png and /dev/null differ diff --git a/foundation/public/img/conf/mnt-logo.png b/foundation/public/img/conf/mnt-logo.png deleted file mode 100644 index 1a72cab3..00000000 Binary files a/foundation/public/img/conf/mnt-logo.png and /dev/null differ diff --git a/foundation/public/img/conf/mnt.svg b/foundation/public/img/conf/mnt.svg deleted file mode 100644 index d1128535..00000000 --- a/foundation/public/img/conf/mnt.svg +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - MN Technique - - - - - - - - - - - diff --git a/foundation/public/img/conf/shs-logo.png b/foundation/public/img/conf/shs-logo.png deleted file mode 100644 index f01b8917..00000000 Binary files a/foundation/public/img/conf/shs-logo.png and /dev/null differ diff --git a/foundation/public/img/conf/sponsors/cloude8.png b/foundation/public/img/conf/sponsors/cloude8.png new file mode 100644 index 00000000..b986fcf5 Binary files /dev/null and b/foundation/public/img/conf/sponsors/cloude8.png differ diff --git a/foundation/public/img/conf/sponsors/digithinkit.png b/foundation/public/img/conf/sponsors/digithinkit.png new file mode 100644 index 00000000..36d6e47c Binary files /dev/null and b/foundation/public/img/conf/sponsors/digithinkit.png differ diff --git a/foundation/public/img/conf/sponsors/indictrans.png b/foundation/public/img/conf/sponsors/indictrans.png new file mode 100644 index 00000000..3044bba8 Binary files /dev/null and b/foundation/public/img/conf/sponsors/indictrans.png differ diff --git a/foundation/public/img/conf/sponsors/mnt-logo.png b/foundation/public/img/conf/sponsors/mnt-logo.png new file mode 100644 index 00000000..5ffe63c2 Binary files /dev/null and b/foundation/public/img/conf/sponsors/mnt-logo.png differ diff --git a/foundation/public/img/conf/sponsors/mnt.png b/foundation/public/img/conf/sponsors/mnt.png new file mode 100644 index 00000000..ae77f389 Binary files /dev/null and b/foundation/public/img/conf/sponsors/mnt.png differ diff --git a/foundation/public/img/conf/sponsors/shs-logo.png b/foundation/public/img/conf/sponsors/shs-logo.png new file mode 100644 index 00000000..7a62be2a Binary files /dev/null and b/foundation/public/img/conf/sponsors/shs-logo.png differ diff --git a/foundation/public/img/distribution.png b/foundation/public/img/distribution.png new file mode 100644 index 00000000..c91a9f13 Binary files /dev/null and b/foundation/public/img/distribution.png differ diff --git a/foundation/public/img/education.png b/foundation/public/img/education.png new file mode 100644 index 00000000..922a268a Binary files /dev/null and b/foundation/public/img/education.png differ diff --git a/foundation/public/img/erpnext-foundation-icon.svg b/foundation/public/img/erpnext-foundation-icon.svg deleted file mode 100644 index e6053e18..00000000 --- a/foundation/public/img/erpnext-foundation-icon.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - erp-icon - Created with Sketch. - - - - - - - - \ No newline at end of file diff --git a/foundation/public/img/erpnext-foundation.png b/foundation/public/img/erpnext-foundation.png deleted file mode 100644 index 7ad3cf86..00000000 Binary files a/foundation/public/img/erpnext-foundation.png and /dev/null differ diff --git a/foundation/public/img/erpnext-logo.jpg b/foundation/public/img/erpnext-logo.jpg deleted file mode 100644 index 811eca83..00000000 Binary files a/foundation/public/img/erpnext-logo.jpg and /dev/null differ diff --git a/foundation/public/img/erpnext-logo.svg b/foundation/public/img/erpnext-logo.svg index 60b3d4d0..9fd07256 100644 --- a/foundation/public/img/erpnext-logo.svg +++ b/foundation/public/img/erpnext-logo.svg @@ -1,36 +1,94 @@ - - - - - - - - - - - - - - + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/foundation/public/img/favicon.ico b/foundation/public/img/favicon.ico new file mode 100644 index 00000000..b7cfff1f Binary files /dev/null and b/foundation/public/img/favicon.ico differ diff --git a/foundation/public/img/frappe-bird-black.svg b/foundation/public/img/frappe-bird-black.svg index 4077d24e..167a9512 100644 --- a/foundation/public/img/frappe-bird-black.svg +++ b/foundation/public/img/frappe-bird-black.svg @@ -1,16 +1,29 @@ - - - - Group - Created with Sketch. - - - - - - - - - - - \ No newline at end of file + +image/svg+xml \ No newline at end of file diff --git a/foundation/public/img/frappe-bird-grey.svg b/foundation/public/img/frappe-bird-grey.svg index de72dc1c..f20ef203 100644 --- a/foundation/public/img/frappe-bird-grey.svg +++ b/foundation/public/img/frappe-bird-grey.svg @@ -1,13 +1,43 @@ - - - - - - - - - - - - - + +image/svg+xml \ No newline at end of file diff --git a/foundation/public/img/healthcare.png b/foundation/public/img/healthcare.png new file mode 100644 index 00000000..7bb7847e Binary files /dev/null and b/foundation/public/img/healthcare.png differ diff --git a/foundation/public/img/hero-illustration-erpnext.png b/foundation/public/img/hero-illustration-erpnext.png new file mode 100644 index 00000000..4b34c116 Binary files /dev/null and b/foundation/public/img/hero-illustration-erpnext.png differ diff --git a/foundation/public/img/manufacturing.png b/foundation/public/img/manufacturing.png new file mode 100644 index 00000000..5062a1b1 Binary files /dev/null and b/foundation/public/img/manufacturing.png differ diff --git a/foundation/public/img/non-profits.png b/foundation/public/img/non-profits.png new file mode 100644 index 00000000..719d2d2d Binary files /dev/null and b/foundation/public/img/non-profits.png differ diff --git a/foundation/public/img/retail.png b/foundation/public/img/retail.png new file mode 100644 index 00000000..a452a25a Binary files /dev/null and b/foundation/public/img/retail.png differ diff --git a/foundation/public/img/service-providers.png b/foundation/public/img/service-providers.png new file mode 100644 index 00000000..db82d2df Binary files /dev/null and b/foundation/public/img/service-providers.png differ diff --git a/foundation/public/img/services.png b/foundation/public/img/services.png new file mode 100644 index 00000000..482a7c85 Binary files /dev/null and b/foundation/public/img/services.png differ diff --git a/foundation/public/img/vm-dev-vagrant.png b/foundation/public/img/vm-dev-vagrant.png new file mode 100644 index 00000000..4d04d298 Binary files /dev/null and b/foundation/public/img/vm-dev-vagrant.png differ diff --git a/foundation/public/img/vm-development.png b/foundation/public/img/vm-development.png new file mode 100644 index 00000000..c80816ea Binary files /dev/null and b/foundation/public/img/vm-development.png differ diff --git a/foundation/public/img/vm-production.png b/foundation/public/img/vm-production.png new file mode 100644 index 00000000..a8c5f2e6 Binary files /dev/null and b/foundation/public/img/vm-production.png differ diff --git a/foundation/public/less/base.less b/foundation/public/less/base.less new file mode 100644 index 00000000..8a9f2f4f --- /dev/null +++ b/foundation/public/less/base.less @@ -0,0 +1,191 @@ +/*utilities*/ +.align-items-center { + align-items: center; +} + +.hide, +.hidden { + display: none; + visibility: hidden; +} + +.top-zero { + margin-top: 0; +} + +.bottom-zero { + margin-bottom: 0; +} + +.top-spacer { + margin-top: 2.5rem; +} + +.bottom-spacer { + margin-bottom: 2.5rem; +} + +.top-spacer-4 { + margin-top: 4rem; +} + +.bottom-spacer-4 { + margin-bottom: 4rem; +} + +.gray-bg { + background-color: @light-bg; +} + +.dark-bg { + background-color: @text-dark; +} + +.left-aligned, +.text-left { + text-align: left; +} + +.right-aligned { + text-align: right; +} + +.text-center { + text-align: center; +} + +.text-muted { + color: @text-muted; +} + +.text-light { + color: @text-light; +} + +.text-white { + color: #fff; +} + +.text-normal { + font-size: 1rem; +} + +.text-medium { + font-size: 1.5rem; +} + +.text-small { + font-size: 0.5rem; +} + +.centered { + margin-left: auto; + margin-right: auto; +} + +.bold { + font-weight: bold; +} + +.list-unstyled { + padding: 0; + + li { + list-style: none; + } +} + +.list-circle { + list-style: circle; +} + +.bullet { + &::before { + content: "\2022"; + display: inline-block; + width: 1em; + font-size: 1.25rem; + } +} + +.half-width { + max-width: 50%; +} + +.border { + border: @border; +} + +.border-top { + border-top: @border; +} + +.saturate { + filter: grayscale(100%); + + &:hover { + filter: grayscale(0%); + } +} + +/* colors */ + +.green-bullet { + &::before { + color: @indicator-green; + } +} + +/* components */ + +.grid-of-four, +.grid-of-three { + grid-gap: 2.5rem; + display: grid; +} + +.grid-of-four { + grid-template-columns: repeat(1, 1fr); + + @media screen and (min-width: @screen-palm) { + grid-template-columns: repeat(2, 1fr); + } + + @media screen and (min-width: @screen-xs) { + grid-template-columns: repeat(3, 1fr); + } + + @media screen and (min-width: @screen-sm) { + grid-template-columns: repeat(4, 1fr); + } +} + +.grid-of-three { + grid-template-columns: repeat(1, 1fr); + + @media screen and (min-width: @screen-palm) { + grid-template-columns: repeat(2, 1fr); + } + + @media screen and (min-width: @screen-xs) { + grid-template-columns: repeat(3, 1fr); + } +} + +.columns { + display: flex; + justify-content: space-between; + flex-direction: column; + + @media screen and (min-width: @screen-xs) { + flex-direction: row; + } +} + +.column { + margin-bottom: 1rem; + + @media screen and (min-width: @screen-xs) { + margin: 0; + } +} diff --git a/foundation/public/less/erpnext-org-theme.less b/foundation/public/less/erpnext-org-theme.less new file mode 100644 index 00000000..21d34270 --- /dev/null +++ b/foundation/public/less/erpnext-org-theme.less @@ -0,0 +1,1018 @@ +@import "variables.less"; +@import "base.less"; +@import (css) "reset.css"; +@import "indicator.less"; + +a { + color: @brand-primary; + text-decoration: none; + transition: color @transition; + + &:hover { + color: @text-dark; + text-decoration: underline; + } + + &:focus, + &:visited { + outline: 0; + } +} + +.header-1, +.header-2, +.header-3 { + line-height: 1.025; +} + +.header-1 { + font-size: 2.5rem; +} + +.header-2 { + font-size: 1.5rem; +} + +.header-3 { + font-size: 1rem; +} + +.navbar { + padding: 1rem; + background-color: #fff; + + @media screen and (min-width: @screen-xs) { + padding: 1rem 2.5rem; + } +} + +.navbar-header { + display: flex; + justify-content: space-between; + align-items: center; +} + +.navbar-icon { + width: 1.5rem; + margin-right: 0.5rem; + padding-bottom: 0.07rem; +} + +.navbar-brand { + font-size: 1rem; + font-weight: bold; + letter-spacing: 0.005em; + text-decoration: none; + color: @text-color; + + &:hover { + text-decoration: none; + color: @text-dark; + } +} + +.navbar-brand:visited { + color: @text-color; +} + +.menu { + display: flex; + margin: 0; +} + +.menu-items { + padding-left: 1.5rem; +} + +.menu-links { + color: @text-light; + text-decoration: none; + + &:hover { + text-decoration: none; + } +} + +.container, +.page-content-wrapper { + max-width: 100%; + margin: 0 auto; + + @media screen and (min-width: @screen-md) { + max-width: @screen-md; + } +} + +.feature, +.footer { + padding: 2.5rem 1rem; + border-top: 1px solid @light-border-color; +} + +.feature { + @media screen and (min-width: @screen-xs) { + padding: 10.5rem 1.5rem; + } +} + +.footer { + @media screen and (min-width: @screen-xs) { + padding: 4rem 1.5rem; + } +} + +.feature .bullet { + margin-bottom: 0.5rem; +} + +.page { + padding: 0 1rem; + border-top: 1px solid @light-border-color; + + @media screen and (min-width: @screen-xs) { + padding: 0 2.5rem; + } +} + +.hero-illustration { + width: 100%; + max-width: 800px; +} + +.list-items { + text-align: center; + border-radius: 0.5rem; + background-color: #fff; + min-width: 200px; + transition: all @transition; + margin: 0 1rem; + + @media screen and (min-width: @screen-palm) { + margin: 0; + } + + &:hover { + box-shadow: 0 5px 9px 0 rgba(0, 0, 0, 0.05); + } +} + +.contact-content { + max-width: 90%; + + @media screen and (min-width: @screen-palm) { + max-width: 50%; + } +} + +.countries { + max-width: 100%; + + @media screen and (min-width: @screen-palm) { + max-width: 50%; + min-width: 50%; + } + + @media screen and (min-width: @screen-xs) { + max-width: 25%; + min-width: 25%; + } +} + +.flex-wrap { + flex-wrap: wrap; + justify-content: flex-start; +} + +.intro-copy { + max-width: @screen-md/2; + margin: 0 auto 1.5rem auto; +} + +.primary-links { + color: @text-light; + transition: all @transition; + + &:hover { + color: @text-dark; + text-decoration: none; + } +} + +.button { + padding: 1rem 1.5rem; + border-radius: 0.25em; + cursor: pointer; + transition: all @transition; + border-bottom: 3px solid rgba(0, 0, 0, 0.2); + text-decoration: none; + + &:hover { + text-decoration: none; + } +} + +.button-primary { + font-size: 1.5em; + color: #fff; + background: @brand-primary; + border-right: 0; + border-left: 0; + border-top: 0; + line-height: 3; + + &:hover { + background: @button-primary-hover; + color: #fff; + } +} + +.button-secondary { + font-size: 1.5em; + color: @text-light; + background: @btn-bg; + border-right: 0; + border-left: 0; + border-top: 0; + line-height: 3; + + &:hover { + background: @button-secondary-hover; + color: @text-dark; + } +} + +.secondary-link { + color: @text-light; + transition: color @transition; + + &:hover { + color: @text-dark; + } +} + +.bulleted-list { + margin: 0; + padding-left: 1em; + + li { + padding-bottom: 1em; + } +} + +.footer-list { + padding-left: 0; +} + +.page_content li, +.sidebar-item, +.footer-list li { + margin-bottom: 0.5rem; +} + +.page-container { + display: flex; + max-width: @screen-md; + margin: 0 auto; + flex-direction: column-reverse; + + @media screen and (min-width: @screen-xs) { + flex-direction: row; + } +} + +.page-content { + width: 100%; + padding: 4rem 0; + + h1:first-child { + margin-top: 0; + } +} + +.breadcrumb { + padding: 0; + margin-bottom: 1.5rem; + + a { + background-color: transparent; + color: @text-muted; + + &:focus, + &:visited { + background-color: transparent; + color: @text-muted; + } + + &:hover { + color: @text-dark; + transition: color @transition; + } + } +} + +.breadcrumb > li { + display: inline-block; +} + +.breadcrumb > li + li::before { + padding: 0 5px; + color: @text-muted; + content: "/\00a0"; +} + +.sidebar-block { + padding: 4rem 0; + min-width: 200px; + border-top: 1px solid @light-border-color; + + @media screen and (min-width: @screen-xs) { + border-right: 1px solid @light-border-color; + border-top: 0; + } +} + +.blog-page { + padding: 4rem 0; + max-width: 700px; + margin: 0 auto; +} + +.page-content.with-sidebar { + @media screen and (min-width: @screen-xs) { + padding: 4rem 0 4rem 2.5rem; + } + + padding: 1rem; +} + +hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-top: 1px solid @light-border-color; +} + +.footer-end { + border-top: 1px solid @dark-border-color; + padding-top: 1rem; + margin-top: 1rem; + font-size: 0.75rem; + + @media screen and (min-width: @screen-xs) { + padding-top: 2.5rem; + margin-top: 1.5rem; + } +} + +.footer a { + color: @text-muted; + + &:hover { + color: #fff; + } +} + +.footer-icon { + width: 1.5rem; + margin-right: 0.5em; +} + +/* loaned from bootstrap need to cleanup*/ + +/*progress bar*/ +.progress { + height: 1.5rem; + margin-bottom: 1.5rem; + overflow: hidden; + background-color: #f5f5f5; + border-radius: 0.25rem; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); +} + +.progress-bar { + height: inherit; +} + +.progress-bar-success { + background-color: #98d85b; +} + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} + +/*progress bar*/ +.clickable a { + color: @text-color; +} + +.clickable a:focus { + outline: 0; +} + +.fade.in { + opacity: 1; +} + +caption { + padding-top: 8px; + padding-bottom: 8px; + color: @text-muted; + text-align: left; +} + +th { + text-align: left; +} + +.input-group { + position: relative; + display: table; + border-collapse: separate; +} + +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-block; + vertical-align: middle; +} + +.note-popover .popover-content > .btn-group, +.panel-heading.note-toolbar > .btn-group { + margin-top: 5px; + margin-right: 5px; + margin-left: 0; +} + +.note-popover .popover-content, +.panel-heading.note-toolbar { + padding: 0 0 5px 5px; + margin: 0; +} + +.panel-heading { + padding: 0.5rem 1rem; + border-bottom: 1px solid transparent; + border-top-left-radius: 0.25em; + border-top-right-radius: 0.25em; +} + +.panel-default > .panel-heading { + color: #333; + background-color: #f7fafc; + border-color: @border-color; +} + +.panel-body { + padding-left: 1rem; +} + +.modal { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + display: none; + overflow: hidden; + outline: 0; +} + +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto; +} + +.modal-backdrop.in { + filter: alpha(opacity=50); + opacity: 0.5; +} + +.modal-backdrop { + position: absolute; + top: 0; + right: 0; + left: 0; + background-color: #334143; +} + +.modal-dialog { + width: 600px; + margin: 2rem auto; +} + +.modal.in .modal-dialog { + transform: translate(0, 0); +} + +.modal-content { + position: relative; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #d1d8dd; + border-radius: 0.25rem; + outline: 0; + box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); +} + +.modal-header { + min-height: 1rem; + padding: 1rem; + border-bottom: 1px solid #d1d8dd; +} + +.modal-title { + margin: 0; + line-height: 1.42857143; +} + +.modal-body { + position: relative; + padding: 1rem; +} + +.close { + float: right; + font-size: 1.5rem; + font-weight: bold; + line-height: 1; + color: #000; + text-shadow: 0 1px 0 #fff; + filter: alpha(opacity=20); + opacity: 0.2; +} + +.modal-header .close { + margin-top: -2px; +} + +.close:hover, +.close:focus { + color: #000; + text-decoration: none; + cursor: pointer; + filter: alpha(opacity=50); + opacity: 0.5; +} + +.btn-default { + color: inherit; + background-color: #f0f4f7; + border-color: transparent; +} + +.btn { + display: inline-block; + padding: 0.25em 0.75em; + margin-bottom: 0; + font-size: 1em; + font-weight: normal; + text-align: center; + white-space: nowrap; + vertical-align: middle; + cursor: pointer; + user-select: none; + background-image: none; + border: 1px solid transparent; + border-radius: 0.25em; +} + +.btn-block { + background-image: none; + border: 1px solid transparent; + border-radius: 0.25em; + display: block; + width: 100%; +} + +.form-control { + display: block; + width: 100%; + height: 2em; + padding: 0.5em; + color: #2e3338; + background-color: #fff; + background-image: none; + border: 1px solid #d1d8dd; + border-radius: 0.25em; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + transition: border-color ease-out 0.15s, box-shadow ease-out 0.15s; +} + +.form-signin .form-control { + position: relative; + height: auto; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + padding: 0.5rem; + margin-bottom: 0.5rem; +} + +code { + color: #fc4f51; + background: #fff5f5; + padding: 0.25em; + border-radius: 0.25em; + font-size: 0.85em; +} + +/*loaned from frappe*/ +textarea.form-control { + height: auto; +} + +.col-sm-6 { + margin-bottom: 1rem; +} + +.col-sm-8 { + @media screen and (min-width: @screen-xs) { + width: 66.66%; + } +} + +.comment-view { + padding-bottom: 2.5rem; +} + +.no-results { + text-align: center; + padding: 10rem 0; +} + +.add-comment-section { + padding-bottom: 2rem; +} + +.comment-header { + border-bottom: @border; + padding: 2rem 0 1rem; +} + +.comment-row { + margin: 0 1rem; + padding: 1rem; +} + +.comment-row:last-child { + margin-bottom: 2rem; + border-bottom: 0; +} + +.page-card { + max-width: 360px; + padding: 1em; + margin: 8rem auto; + border: @border; + border-radius: 0.25em; + background-color: #fff; + box-shadow: 0 0.25em 0.5em rgba(0, 0, 0, 0.1); +} + +.page-card .page-card-head { + padding: 0.75em 1em; + margin: -1em; + margin-bottom: 1em; + border-bottom: @border; +} + +.login-content .btn { + margin-top: 3rem; +} + +.btn-primary { + background-color: @brand-primary; + border-color: @brand-primary; + color: #fff; + transition: background-color 0.3s ease-in; +} + +.btn-primary:hover, +.btn-primary:focus, +.btn-primary.focus, +.btn-primary:active, +.btn-primary.active, +.open > .dropdown-toggle.btn-primary { + color: #fff; + background-color: @button-primary-hover; + border-color: @button-primary-hover; + text-decoration: none; +} + +img.blog-cover-image, +.blog-text img, +.screenshot { + box-shadow: 0 3px 6px rgba(0, 0, 0, 0.1); + border: 1px solid #d1d8dd; +} + +.btn-next-wrapper { + margin-top: 4rem; +} + +.input-group-btn { + display: table-cell; + vertical-align: middle; + white-space: nowrap; + height: 2rem; +} + +.dropdown-menu { + display: none; + position: absolute; + list-style: none; + margin: 0; + padding: 0; + box-shadow: 0 5px 9px 0 rgba(0, 0, 0, 0.05); + background-color: #fff; + + li { + padding: 0.5rem; + margin: 0; + transition: background-color @transition; + cursor: pointer; + + &:hover { + background-color: @btn-bg; + } + } +} + +.display-block { + display: block; +} + +.caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: 0.25rem solid; + border-right: 0.25rem solid transparent; + border-left: 0.25rem solid transparent; +} + +.bounty-amount .form-control { + margin-right: 1.5rem; +} + +.input-group-btn .dropdown-toggle { + margin-left: 1.5rem; +} + +/*blog*/ + +/*TODO Needs refactor in frappe to use utilities.less*/ + +.blog-list-content { + border: 0; + background: transparent; +} + +.blog-list-item { + padding-bottom: 4rem; + border-bottom: 1px solid @navbar-default-border; + + &:last-child { + border-bottom: 0; + } + + a { + color: @text-color; + } + + h1{ + margin-top: 0; + } +} + +.blog-list-item:not(:first-child) { + padding-top: 4rem; +} + +.blogpost-cover-img { + width: 75%; + margin-bottom: 0.5rem; +} + +.blog-header { + font-size: 2.5rem; +} + +.blog-container img { + margin-bottom: 1.5rem; +} + +.blog-comments { + position: relative; + border-top: @border; +} + +.blog-info { + margin: 2.5rem 0; +} + +.blog-text { + font-size: 1.15em; + line-height: 1.62; +} + +.blog-content { + margin-bottom: 2.5rem; +} + +.blogger { + padding-top: 0; + padding-bottom: 2.5rem; +} + +.blogger-name { + margin-top: 0.25em; + font-weight: normal; + font-size: 1rem; + + a { + color: @text-color; + } +} + +.avatar { + display: inline-block; + width: 3rem; + height: 3rem; + margin-right: 1rem; +} + +.blog-list-item .avatar { + margin-right: 1em; +} + +.avatar img { + max-width: 100%; + max-height: 100%; + border-radius: 0.25em; +} + +.avatar-medium { + margin-right: 0.25em; + width: 2rem; + height: 2rem; +} + +.inline-block { + display: inline-block; +} + +.blog-container, +.max-width-medium { + max-width: 700px; +} + +.media { + display: flex; + background: @light-bg; + margin-bottom: 1.5rem; + border-radius: 0.25em; + padding: 1.5rem; + flex-direction: column; + + @media screen and (min-width: @screen-palm) { + flex-direction: row; + } +} + +.media-left { + margin-bottom: 1.5rem; + + @media screen and (min-width: @screen-palm) { + margin-right: 2.5rem; + margin-bottom: 0; + } +} + +.media-heading { + margin-top: 0; +} + +.media-object { + width: 6.5rem; + max-width:inherit; +} + +.with-border { + border-radius: 0.25em; + padding: 1rem; + margin-bottom: 2rem; + border: 1px solid @border-color; + + a { + text-decoration: none; + color: @text-color; + + &:hover { + text-decoration: none; + color: @text-dark; + } + } + + &:hover { + background-color: @light-bg; + } +} + +/* individual elements */ + +.gold-member { + display: flex; + padding: 2.5rem 0; + transition: background-color @transition; + border-bottom: 1px solid @border-color; + + &:hover { + background-color: @light-bg; + } +} + +.individual-member { + border-bottom: 1px solid @border-color; + padding-bottom: 2.5rem; +} + +.box { + padding: 1.5rem; + border: 1px solid @border-color; + border-radius: 0.25em; + transition: background-color @transition; + + &:hover { + background-color: @light-bg; + } +} + +.grid-boxes { + font-size: 1.5rem; + display: block; + padding: 1.5rem; + + span { + display: block; + } +} + +.thumb-small { + width: 100px; +} + +.grid-images { + width: 150px; + padding-bottom: 1.5rem; +} + +.feature-img { + max-width: 250px; +} + +.community-bg { + background-image: linear-gradient(to bottom, rgba(117, 116, 254, 0.52), rgb(117, 116, 254)), url("/assets/foundation/img/community-2016.jpg"); + background-size: cover; + background-repeat: no-repeat; + background-position: center; + background-attachment: fixed; +} + +.community-bg .intro-copy, +.about .intro-copy { + max-width: 800px; +} + +/* added to make iframe responsive */ +.embed-container { + position: relative; + padding-bottom: 56.25%; + height: 0; + overflow: hidden; + max-width: 800px; + width: auto; +} + +.embed-container iframe, +.embed-container object, +.embed-container embed { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} diff --git a/foundation/public/less/indicator.less b/foundation/public/less/indicator.less new file mode 100644 index 00000000..42f9feeb --- /dev/null +++ b/foundation/public/less/indicator.less @@ -0,0 +1,88 @@ +@import "../../../../frappe/frappe/public/less/variables.less"; + +.indicator, +.indicator-right { + background: none; + font-size: 12px; + vertical-align: middle; + font-weight: bold; + color: #6c7680; +} + +.indicator::before, +.indicator-right::after { + content: ""; + display: inline-block; + height: 8px; + width: 8px; + border-radius: 8px; +} + +.indicator::before { + margin: 0 4px 0 0; +} + +.indicator-right::after { + margin: 0 0 0 4px; +} + +.indicator.grey::before, +.indicator-right.grey::after { + background: @btn-bg; +} + +.indicator.blue::before, +.indicator-right.blue::after { + background: @indicator-blue; +} + +.indicator.red::before, +.indicator-right.red::after { + background: @indicator-red; +} + +.indicator.green::before, +.indicator-right.green::after { + background: @indicator-green; +} + +.indicator.orange::before, +.indicator-right.orange::after { + background: @indicator-orange; +} + +.indicator.purple::before, +.indicator-right.purple::after { + background: @indicator-purple; +} + +.indicator.darkgrey::before, +.indicator-right.darkgrey::after { + background: @indicator-darkgrey; +} + +.indicator.black::before, +.indicator-right.black::after { + background: @text-color; +} + +.indicator.yellow::before, +.indicator-right.yellow::after { + background: @indicator-yellow; +} + +.indicator.light-blue::before, +.indicator-right.light-blue::after { + background: @indicator-light-blue; +} + +.indicator.lightblue::before, +.indicator-right.lightblue::after { + background: @indicator-light-blue; +} + +.modal-header .indicator { + float: left; + margin-top: 7.5px; + margin-right: 3px; +} diff --git a/foundation/public/less/variables.less b/foundation/public/less/variables.less new file mode 100644 index 00000000..8d7f3c32 --- /dev/null +++ b/foundation/public/less/variables.less @@ -0,0 +1,12 @@ +@import "../../../../frappe/frappe/public/less/variables.less"; + +@brand-primary: #7575ff; +@screen-sm-min: 768px; +@screen-xs-max: (@screen-sm-min - 1); +@button-primary-hover: darken(desaturate(@brand-primary, 50%), 15%); +@button-secondary-hover: lighten(@light-bg, 15%); +@primary-link-color: lighten(@brand-primary, 5%); +@border: 1px solid @border-color; +@transition: 0.3s ease-out; +@screen-palm: 500px; +@dark-border-color: darken(@border-color, 60%); diff --git a/foundation/templates/base.html b/foundation/templates/base.html new file mode 100644 index 00000000..8016adfd --- /dev/null +++ b/foundation/templates/base.html @@ -0,0 +1,69 @@ + + + + + + + {% block title %} {{ title | striptags }} {% endblock %} + + {% block favicon %} + + + {% endblock %} + {%- block head -%} + {% block meta_block %}{% endblock %} + + {% if path != '' %} + + + + {% endif %} + {% if path == 'contact' %} + + {% endif %} + {%- endblock -%} + {%- block head_include %}{{ head_include or "" }}{% endblock -%} + {%- block style %}{%- endblock -%} + + + +
+ {%- block navbar -%}{% include "templates/includes/navbar/navbar.html" %}{%- endblock -%} + {% block content %} + {{ content }} + {% endblock %} + {%- block footer -%}{% include "templates/includes/footer/footer.html" %}{%- endblock -%} +
+ {% block base_scripts %} + + + + {% endblock %} + {%- if js_globals is defined %} + + {% endif -%} + {%- for link in web_include_js %} + + {%- endfor -%} + {%- block script %}{%- endblock %} + + {%- block body_include %}{{ body_include or "" }}{% endblock -%} + + diff --git a/foundation/templates/emails/inactivity_reminder.md b/foundation/templates/emails/inactivity_reminder.md new file mode 100644 index 00000000..cf019679 --- /dev/null +++ b/foundation/templates/emails/inactivity_reminder.md @@ -0,0 +1,8 @@ +Hi {{ title }}, + +This is a Service Provider listing deactivation alert, +You have not login since last 80 days if you are not login in next 10 days +erpnext.org will be removed your name from a service provider listing. + +Thanks, +ERPNext Foundation \ No newline at end of file diff --git a/foundation/templates/includes/custom.css b/foundation/templates/includes/custom.css deleted file mode 100644 index f0739081..00000000 --- a/foundation/templates/includes/custom.css +++ /dev/null @@ -1,152 +0,0 @@ -@import url('https://fonts.googleapis.com/css?family=Rubik'); -body { - font-family: 'Rubik', sans-serif; - font-size: 15px; - color: #161c23; - text-rendering: optimizeLegibility !important; - line-height: 1.5em; - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; -} - -section { - padding: 10px 0px; -} - -section:last-child { - padding-bottom: 60px; -} - -section p, section li, section .media-body { - font-size: 15px; - line-height: 1.6em; -} - - -h1 { - font-size: 32px; -} - -.page_content { - min-height: 400px; -} - -.conf-hero { - padding: 90px 0px; -} - -.label { - font-weight: normal; - background-color: #d1d8dd; - font-size: 13px; - padding: 3px 7px; - margin-right: 10px; -} - -.web-footer { - padding-top: 0px; -} - -.footer-bottom-line .text-muted { - font-size: 15px; - color: #161c23 !important; -} - -.row-full{ - width: 100vw; - position: relative; - margin-left: -50vw; - margin-top: 0px; - left: 50%; -} - -.with-border { - border: 1px solid #d1d8dd; - border-radius: 3px; - padding: 15px; - margin-bottom: 30px; -} - -.with-border h3 { - margin-top: 0px; -} - -a { - color: #5E64FF; -} - -.clickable a { - color: #161c23; -} - -.with-border.clickable:hover { - border-color: #36414C; - background-color: #fafbfc; - -} - -.with-border a, .with-border a:hover { - text-decoration: none; -} - -.web-footer { - background-color: #fafbfc; - border-top: 4px solid #d1d8dd; - padding-bottom: 0px; - padding-top: 20px; -} - -@media (max-width: 767px) { - .web-footer { - padding-left: 15px; - } -} - -.footer-group-label, .navbar-brand { - color: #161c23 !important; -} - -.web-footer .col-sm-6:first-child { - width: 60%; -} - -.web-footer .col-sm-6:last-child { - width: 40%; -} - -/*#website-post-login { - display: none !important; -} -*/ -.silver-member { - padding: 0px 15px; - min-height: 205px; -} - -.page-breadcrumbs .breadcrumb { - margin-bottom: 10px; - font-size: 15px; - /*color: #8D99A6;*/ -} - -.full-name { - display: none; -} - -.sponsor { - height: 200px; - margin-top: 30px; - text-align: center; - vertical-align: center; - border: 1px solid #d1d8dd; - border-radius: 3px; - padding: 20px; -} - -.sponsor .lead { - margin-top: 60px; -} - -.sponsor img { - max-width: 150px; -} diff --git a/foundation/templates/includes/footer.html b/foundation/templates/includes/footer.html deleted file mode 100644 index b5f32fed..00000000 --- a/foundation/templates/includes/footer.html +++ /dev/null @@ -1,46 +0,0 @@ - - - - - diff --git a/foundation/templates/includes/footer/footer.html b/foundation/templates/includes/footer/footer.html new file mode 100644 index 00000000..1c35098e --- /dev/null +++ b/foundation/templates/includes/footer/footer.html @@ -0,0 +1,147 @@ + diff --git a/foundation/templates/includes/macros.html b/foundation/templates/includes/macros.html index 6c69f91a..43c65a3b 100644 --- a/foundation/templates/includes/macros.html +++ b/foundation/templates/includes/macros.html @@ -1,12 +1,12 @@ {% macro media(title, content, image, link) %} -