Merge pull request #117 from raghukamath/cleanup
New Design For Foundation Website
2
.gitignore
vendored
@@ -4,5 +4,3 @@
|
|||||||
*.swp
|
*.swp
|
||||||
tags
|
tags
|
||||||
foundation/docs/current
|
foundation/docs/current
|
||||||
.kdev4/
|
|
||||||
*.kdev4
|
|
||||||
|
|||||||
@@ -7,9 +7,10 @@ import frappe
|
|||||||
from frappe.website.website_generator import WebsiteGenerator
|
from frappe.website.website_generator import WebsiteGenerator
|
||||||
|
|
||||||
class FoundationFellowship(WebsiteGenerator):
|
class FoundationFellowship(WebsiteGenerator):
|
||||||
_website = frappe._dict(
|
website = frappe._dict(
|
||||||
condition_field = "show_in_website",
|
condition_field = "show_in_website"
|
||||||
)
|
)
|
||||||
|
|
||||||
def validate(self):
|
def validate(self):
|
||||||
if not self.route:
|
if not self.route:
|
||||||
self.route = 'foundation-fellow/' + self.scrub(self.name)
|
self.route = 'foundation-fellow/' + self.scrub(self.name)
|
||||||
@@ -26,4 +27,4 @@ def get_list_context(context):
|
|||||||
context.no_cache = True
|
context.no_cache = True
|
||||||
context.no_breadcrumbs = True
|
context.no_breadcrumbs = True
|
||||||
context.order_by = 'creation desc'
|
context.order_by = 'creation desc'
|
||||||
context.introduction = '<p>Following are the Foundation Fellows</p>'
|
context.introduction = '<p>Following are the Foundation Fellows</p>'
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
{% block page_content %}
|
{% block page_content %}
|
||||||
<h1 class="media-heading">{{ title }}</h1>
|
<h1 class="media-heading">{{ title }}</h1>
|
||||||
<section>
|
<section>
|
||||||
<div class="media" style="margin: 45px 0px; ">
|
<div class="media">
|
||||||
<div class="media-left" style='min-width: 80px;'>
|
<div class="media-left" style='min-width: 80px;'>
|
||||||
<a href="#">
|
<a href="#">
|
||||||
<img class="media-object"
|
<img class="media-object"
|
||||||
@@ -44,7 +44,6 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</tr>
|
</tr>
|
||||||
<td>Website</td>
|
<td>Website</td>
|
||||||
<td><a href="{{ website }}" target="_blank">{{ website }}</a></td>
|
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,16 @@
|
|||||||
<div style='margin-bottom: 30px; max-width: 600px;'
|
<div class="media max-width-medium clickable" style="cursor: pointer;" onclick="location.href='{{ doc.route }}'">
|
||||||
class='with-border clickable'>
|
<div class="media-left">
|
||||||
<a href="/{{ doc.route }}">
|
<a href="{{ link or "#" }}">
|
||||||
<h3 style='margin-top: 0px;'>{{ doc.title }}</h3>
|
<img class="media-object"
|
||||||
<p>
|
src="{% if image %}{% if not '/' in image %}/assets/foundation/img/{% endif %}{{ image }}{% else %}/assets/foundation/img/frappe-bird-grey.svg{% endif %}"
|
||||||
|
style="{% if image and not '/' in image %}opacity: 0.4{% endif %}">
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div class="media-body">
|
||||||
|
{% if title %}<h4 class="media-heading">{{ doc.title }}</h4>{% endif %}
|
||||||
|
<p>
|
||||||
<span class='label'>{{ frappe.format_date(doc.creation) }}</span>
|
<span class='label'>{{ frappe.format_date(doc.creation) }}</span>
|
||||||
<span class='label'>{{ doc.country }}</span>
|
<span class='label'>{{ doc.country }}</span>
|
||||||
|
</p>
|
||||||
</p>
|
</div>
|
||||||
</a>
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -23,6 +23,14 @@ class ServiceProvider(WebsiteGenerator):
|
|||||||
context.membership_type = frappe.get_value('Member', self.member, 'membership_type')
|
context.membership_type = frappe.get_value('Member', self.member, 'membership_type')
|
||||||
if context.website and not context.website.startswith('http'):
|
if context.website and not context.website.startswith('http'):
|
||||||
context.website = 'http://' + context.website
|
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():
|
def send_alert_to_inactive_service_providers():
|
||||||
@@ -55,4 +63,4 @@ def get_last_login_diff(user):
|
|||||||
last_login = frappe.db.get_value("User", user, ["last_login"])
|
last_login = frappe.db.get_value("User", user, ["last_login"])
|
||||||
for x in xrange(1,10):
|
for x in xrange(1,10):
|
||||||
print((get_datetime() - get_datetime(last_login)).days, user)
|
print((get_datetime() - get_datetime(last_login)).days, user)
|
||||||
return (get_datetime() - get_datetime(last_login)).days
|
return (get_datetime() - get_datetime(last_login)).days
|
||||||
|
|||||||
@@ -1,25 +1,22 @@
|
|||||||
{% extends "templates/web.html" %}
|
{% extends "templates/web.html" %}
|
||||||
|
|
||||||
{% from "foundation/templates/includes/macros.html" import media %}
|
{% from "foundation/templates/includes/macros.html" import media %}
|
||||||
|
|
||||||
{% block page_content %}
|
{% block page_content %}
|
||||||
<h1 class="media-heading">{{ title }}</h1>
|
<h1 class="media-heading">{{ title }}</h1>
|
||||||
{% if membership_type %}
|
{% if membership_type %}
|
||||||
<p><span class=label>{{ membership_type }} Member<span></p>
|
<p><span class=label>{{ membership_type }} Member<span></p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<section>
|
<section>
|
||||||
<div class="media" style="margin: 45px 0px; ">
|
<div class="media">
|
||||||
<div class="media-left" style='min-width: 80px;'>
|
<div class="media-left">
|
||||||
<a href="#">
|
<a href="#">
|
||||||
<img class="media-object"
|
<img class="media-object"
|
||||||
src="{{ image }}"
|
src="{{ image }}">
|
||||||
style="max-width: 80px; ">
|
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="media-body">
|
<div class="media-body">
|
||||||
{{ introduction }}
|
{{ introduction }}
|
||||||
<table class='table table-bordered small'
|
<table class='table table-bordered small'>
|
||||||
style='max-width: 400px; margin-bottom: 0px; margin-top: 20px'>
|
|
||||||
<tr>
|
<tr>
|
||||||
<td style='width: 38.2%'>Country</td>
|
<td style='width: 38.2%'>Country</td>
|
||||||
<td>{{ country }}</td>
|
<td>{{ country }}</td>
|
||||||
@@ -52,5 +49,4 @@
|
|||||||
<section>
|
<section>
|
||||||
<p><a class='btn-primary btn' href="mailto:{{ email }}">Contact {{ title }}</a></p>
|
<p><a class='btn-primary btn' href="mailto:{{ email }}">Contact {{ title }}</a></p>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -36,14 +36,11 @@ app_license = "MIT"
|
|||||||
# application home page (will override Website Settings)
|
# application home page (will override Website Settings)
|
||||||
home_page = "index"
|
home_page = "index"
|
||||||
|
|
||||||
template_apps = ['foundation', 'frappe_theme', 'erpnext', 'frappe']
|
template_apps = ['foundation', 'erpnext', 'frappe']
|
||||||
website_context = {
|
website_context = {
|
||||||
# "navbar_search": 1,
|
# "navbar_search": 1,
|
||||||
"brand_html": "<img class='navbar-icon' src='/assets/foundation/img/erpnext-logo.jpg' />ERPNext.org",
|
"brand_html": "<img class='navbar-icon' src='/assets/foundation/img/erpnext-logo.svg' alt='Oensource ERP Software'/>ERPNext.org",
|
||||||
"copyright": "ERPNext Open Source Software Foundation",
|
|
||||||
"footer_address": "<br>ERPNext is and will always be 100% Open Source",
|
|
||||||
"top_bar_items": [
|
"top_bar_items": [
|
||||||
{"label": "User Manual", "url": "/docs", "right": 1},
|
|
||||||
{"label": "Foundation", "child_items":[
|
{"label": "Foundation", "child_items":[
|
||||||
{"label": "Chapter", "url": "/chapters","right": 1},
|
{"label": "Chapter", "url": "/chapters","right": 1},
|
||||||
{"label": "Foundation Fellow", "url": "/foundation-fellow","right": 1}
|
{"label": "Foundation Fellow", "url": "/foundation-fellow","right": 1}
|
||||||
@@ -52,10 +49,9 @@ website_context = {
|
|||||||
{"label": "Service Providers", "url": "/service-providers","right": 1},
|
{"label": "Service Providers", "url": "/service-providers","right": 1},
|
||||||
{"label": "Freelancer Jobs", "url": "/erpnext-jobs", "right": 1},
|
{"label": "Freelancer Jobs", "url": "/erpnext-jobs", "right": 1},
|
||||||
], "right":1},
|
], "right":1},
|
||||||
{"label": "About", "url": "/about", "right": 1},
|
|
||||||
],
|
],
|
||||||
"hide_login": 0,
|
"hide_login": 0,
|
||||||
"favicon": "/assets/frappe_theme/img/favicon.ico"
|
"favicon": "/assets/foundation/img/favicon.ico"
|
||||||
}
|
}
|
||||||
# website user home page (by Role)
|
# website user home page (by Role)
|
||||||
# role_home_page = {
|
# role_home_page = {
|
||||||
|
|||||||
@@ -1 +1,2 @@
|
|||||||
foundation.patches.v0_0.update_erpnext_job_route
|
foundation.patches.v0_0.update_erpnext_job_route
|
||||||
|
foundation.patches.v0_0.change_website_to_website_url
|
||||||
|
|||||||
6
foundation/patches/v0_0/change_website_to_website_url.py
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
import frappe
|
||||||
|
|
||||||
|
def execute():
|
||||||
|
frappe.db.sql('''
|
||||||
|
ALTER TABLE `tabFoundation Fellowship` CHANGE `website` `website_url` varchar(140);
|
||||||
|
''')
|
||||||
5
foundation/public/build.json
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"foundation/css/erpnext-org-theme.css": [
|
||||||
|
"public/less/erpnext-org-theme.less"
|
||||||
|
]
|
||||||
|
}
|
||||||
1725
foundation/public/css/bootstrap-for-webform.css
vendored
Normal file
1057
foundation/public/css/erpnext-org-theme.css
Normal file
366
foundation/public/css/reset.css
Normal file
@@ -0,0 +1,366 @@
|
|||||||
|
/*!
|
||||||
|
* 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
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;
|
||||||
|
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;
|
||||||
|
}
|
||||||
BIN
foundation/public/img/agriculture.png
Normal file
|
After Width: | Height: | Size: 8.9 KiB |
BIN
foundation/public/img/bench-logo.png
Normal file
|
After Width: | Height: | Size: 4.9 KiB |
BIN
foundation/public/img/cloud.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
foundation/public/img/community-2016.jpg
Normal file
|
After Width: | Height: | Size: 118 KiB |
BIN
foundation/public/img/community-colored.jpg
Normal file
|
After Width: | Height: | Size: 128 KiB |
|
Before Width: | Height: | Size: 116 KiB |
|
Before Width: | Height: | Size: 1.9 MiB |
BIN
foundation/public/img/conf/sponsors/cloude8.png
Normal file
|
After Width: | Height: | Size: 9.8 KiB |
|
Before Width: | Height: | Size: 9.1 KiB |
|
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 11 KiB |
BIN
foundation/public/img/conf/sponsors/indictrans.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 67 KiB After Width: | Height: | Size: 25 KiB |
BIN
foundation/public/img/conf/sponsors/mnt.png
Normal file
|
After Width: | Height: | Size: 7.1 KiB |
@@ -1,125 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
||||||
|
|
||||||
<svg
|
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
width="199.90601mm"
|
|
||||||
height="25.419046mm"
|
|
||||||
viewBox="0 0 708.32837 90.067487"
|
|
||||||
id="svg4241"
|
|
||||||
version="1.1"
|
|
||||||
inkscape:version="0.91 r13725"
|
|
||||||
sodipodi:docname="mnt_logo.svg">
|
|
||||||
<defs
|
|
||||||
id="defs4243" />
|
|
||||||
<sodipodi:namedview
|
|
||||||
id="base"
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
bordercolor="#666666"
|
|
||||||
borderopacity="1.0"
|
|
||||||
inkscape:pageopacity="0.0"
|
|
||||||
inkscape:pageshadow="2"
|
|
||||||
inkscape:zoom="0.7"
|
|
||||||
inkscape:cx="230.22122"
|
|
||||||
inkscape:cy="-255.58374"
|
|
||||||
inkscape:document-units="px"
|
|
||||||
inkscape:current-layer="layer1"
|
|
||||||
showgrid="false"
|
|
||||||
fit-margin-top="-0.8"
|
|
||||||
fit-margin-left="0"
|
|
||||||
fit-margin-right="0"
|
|
||||||
fit-margin-bottom="0"
|
|
||||||
inkscape:window-width="1317"
|
|
||||||
inkscape:window-height="744"
|
|
||||||
inkscape:window-x="49"
|
|
||||||
inkscape:window-y="24"
|
|
||||||
inkscape:window-maximized="1" />
|
|
||||||
<metadata
|
|
||||||
id="metadata4246">
|
|
||||||
<rdf:RDF>
|
|
||||||
<cc:Work
|
|
||||||
rdf:about="">
|
|
||||||
<dc:format>image/svg+xml</dc:format>
|
|
||||||
<dc:type
|
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
|
||||||
<dc:title></dc:title>
|
|
||||||
</cc:Work>
|
|
||||||
</rdf:RDF>
|
|
||||||
</metadata>
|
|
||||||
<g
|
|
||||||
inkscape:label="Layer 1"
|
|
||||||
inkscape:groupmode="layer"
|
|
||||||
id="layer1"
|
|
||||||
transform="translate(-17.264423,-11.603008)">
|
|
||||||
<g
|
|
||||||
transform="matrix(2.1678617,0,0,2.1678617,-199.24183,-1037.6959)"
|
|
||||||
id="g4221-3"
|
|
||||||
inkscape:export-xdpi="90"
|
|
||||||
inkscape:export-ydpi="90">
|
|
||||||
<g
|
|
||||||
id="g4813"
|
|
||||||
transform="matrix(0.95383105,0,0,0.95383105,12.153569,23.275819)">
|
|
||||||
<text
|
|
||||||
xml:space="preserve"
|
|
||||||
style="font-style:normal;font-weight:normal;font-size:31.10012436px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#00cb6f;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
|
||||||
x="190.9724"
|
|
||||||
y="516.14307"
|
|
||||||
id="text4237-3-6"
|
|
||||||
sodipodi:linespacing="125%"><tspan
|
|
||||||
sodipodi:role="line"
|
|
||||||
id="tspan4239-6-7"
|
|
||||||
x="190.9724"
|
|
||||||
y="516.14307"
|
|
||||||
style="font-weight:bold;fill:#00cb6f;fill-opacity:1">MN Technique</tspan></text>
|
|
||||||
<path
|
|
||||||
style="fill:#00cb6f;fill-opacity:1;fill-rule:evenodd;stroke:#00cb6f;stroke-width:1.55500627;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
d="m 113.60466,482.79083 -8.60807,0 11.38486,43.04035 8.60807,0 z"
|
|
||||||
id="rect3336-3-6-7-3-2-5"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
sodipodi:nodetypes="ccccc" />
|
|
||||||
<path
|
|
||||||
style="fill:#ffffff;fill-rule:evenodd;stroke:#00cb6f;stroke-width:1.55500627;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
d="m 104.35793,482.45761 8.60807,0 -11.38487,43.04034 -8.608072,0 z"
|
|
||||||
id="rect3336-3-5-5-6-3"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
sodipodi:nodetypes="ccccc" />
|
|
||||||
<path
|
|
||||||
style="fill:#00cb6f;fill-opacity:1;fill-rule:evenodd;stroke:#00cb6f;stroke-width:1.55500627;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
d="m 136.92975,482.79083 -8.60807,0 11.38487,43.04035 8.60807,0 z"
|
|
||||||
id="rect3336-3-6-3-6-1-5"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
sodipodi:nodetypes="ccccc" />
|
|
||||||
<path
|
|
||||||
style="fill:#ffffff;fill-rule:evenodd;stroke:#00cb6f;stroke-width:1.55500627;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
d="m 127.68302,482.45761 8.60807,0 -11.38487,43.04034 -8.60807,0 z"
|
|
||||||
id="rect3336-3-56-2-8-6"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
sodipodi:nodetypes="ccccc" />
|
|
||||||
<path
|
|
||||||
style="fill:#00cb6f;fill-opacity:1;fill-rule:evenodd;stroke:#00cb6f;stroke-width:1.55500627;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
d="m 160.25484,482.79083 -8.60806,0 11.38486,43.04035 8.60807,0 z"
|
|
||||||
id="rect3336-3-6-2-9-7-2"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
sodipodi:nodetypes="ccccc" />
|
|
||||||
<path
|
|
||||||
style="fill:#ffffff;fill-rule:evenodd;stroke:#00cb6f;stroke-width:1.55500627;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
d="m 151.00811,482.45761 8.60807,0 -11.38487,43.04034 -8.60806,0 z"
|
|
||||||
id="rect3336-3-9-1-9-9"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
sodipodi:nodetypes="ccccc" />
|
|
||||||
<path
|
|
||||||
style="fill:#ffffff;fill-rule:evenodd;stroke:#00cb6f;stroke-width:1.55500627;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
|
||||||
d="m 174.45816,482.56868 8.60807,0 -11.38487,43.04035 -8.60807,0 z"
|
|
||||||
id="rect3336-3-5-1-2-2-1"
|
|
||||||
inkscape:connector-curvature="0"
|
|
||||||
sodipodi:nodetypes="ccccc" />
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 5.5 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 6.9 KiB |
BIN
foundation/public/img/distribution.png
Normal file
|
After Width: | Height: | Size: 8.0 KiB |
BIN
foundation/public/img/education.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
@@ -1,13 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<svg width="512px" height="512px" viewBox="0 0 512 512" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
||||||
<!-- Generator: Sketch 42 (36781) - http://www.bohemiancoding.com/sketch -->
|
|
||||||
<title>erp-icon</title>
|
|
||||||
<desc>Created with Sketch.</desc>
|
|
||||||
<defs></defs>
|
|
||||||
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
|
||||||
<g id="erp-icon" fill-rule="nonzero">
|
|
||||||
<path d="M512,448 C512,483.2 483.2,512 448,512 L64,512 C28.8,512 0,483.2 0,448 L0,64 C0,28.8 28.8,0 64,0 L448,0 C483.2,0 512,28.8 512,64 L512,448 Z" id="Shape" fill="#458A49"></path>
|
|
||||||
<path d="M150.483,371.684 L150.483,141.15 C150.483,125.983 160.017,116.017 174.316,116.017 L336.816,116.017 C350.682,116.017 357.616,122.95 357.616,134.65 L357.616,137.25 C357.616,149.383 350.682,155.883 336.816,155.883 L195.116,155.883 L195.116,234.317 L304.75,234.317 C319.05,234.317 325.55,240.383 325.55,252.084 L325.55,253.384 C325.55,265.517 318.616,272.017 304.75,272.017 L195.117,272.017 L195.117,356.951 L339.417,356.951 C353.284,356.951 359.784,363.017 359.784,374.718 L359.784,376.885 C359.784,389.451 353.284,396.385 339.417,396.385 L174.317,396.385 C160.017,396.384 150.483,386.851 150.483,371.684 Z" id="Shape" fill="#FFFFFF"></path>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 5.5 KiB |
@@ -1,36 +1,94 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
<svg
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
width="503.223px" height="86.323px" viewBox="0 0 503.223 86.323" enable-background="new 0 0 503.223 86.323"
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
xml:space="preserve">
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
<g>
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
<path fill="#213B4D" d="M0,74.103V11.18C0,4.42,3.77,0.52,10.01,0.52h46.932c5.98,0,8.84,2.99,8.84,8.061v0.65
|
id="svg5271"
|
||||||
c0,5.33-2.86,8.06-8.84,8.06H19.24v16.641h27.562c6.24,0,8.84,2.73,8.84,7.41v0.521c0,5.07-2.73,7.8-8.84,7.8H19.24v18.331h38.352
|
version="1.1"
|
||||||
c5.98,0,8.84,2.6,8.84,7.54v0.78c0,5.2-2.86,8.32-8.84,8.32H10.01C3.77,84.633,0,80.862,0,74.103z"/>
|
viewBox="0 0 87.312531 87.312515"
|
||||||
<path fill="#213B4D" d="M119.081,77.353L101.14,54.731h-7.28v21.711c0,5.46-2.86,8.71-8.32,8.71h-2.73c-5.2,0-8.06-3.77-8.06-10.53
|
height="330.00006"
|
||||||
V11.18c0-6.76,3.77-10.66,10.01-10.66h24.831c21.841,0,33.151,9.101,33.151,26.261c0,13.521-7.67,22.621-21.841,24.961
|
width="330.00012">
|
||||||
l21.841,26.392c0.78,0.91-2.86,7.02-11.05,7.02C126.23,85.152,123.11,82.812,119.081,77.353z M93.6,40.691h14.69
|
<defs
|
||||||
c10.271,0,15.21-4.811,15.21-12.61c0-8.19-5.2-12.61-15.601-12.61H93.6V40.691z"/>
|
id="defs5265" />
|
||||||
<path fill="#213B4D" d="M151.707,76.442V11.18c0-6.76,3.771-10.66,10.011-10.66h21.971c22.231,0,34.581,9.881,34.581,28.471
|
<metadata
|
||||||
c0,18.721-11.83,28.342-34.581,28.342h-12.74v19.11c0,5.46-2.86,8.71-8.32,8.71h-2.86
|
id="metadata5268">
|
||||||
C154.697,85.152,151.707,82.163,151.707,76.442z M170.688,42.901h12.741c10.53,0,16.12-4.94,16.12-13.78
|
<rdf:RDF>
|
||||||
c0-8.841-5.59-13.65-16.25-13.65h-12.61V42.901z"/>
|
<cc:Work
|
||||||
<path fill="#213B4D" d="M243.876,76.442V9.49c0-6.11,3.12-9.49,8.32-9.49h2.34c5.07,0,6.76,1.689,9.75,5.46l36.401,50.052V8.71
|
rdf:about="">
|
||||||
c0-5.72,2.73-8.71,8.189-8.71h1.82c5.33,0,8.061,2.99,8.061,8.71v66.952c0,6.24-3.119,9.49-8.189,9.49h-1.561
|
<dc:format>image/svg+xml</dc:format>
|
||||||
c-5.07,0-6.5-1.3-9.23-4.68l-37.832-52.002v47.972c0,5.721-2.73,8.71-8.32,8.71h-1.82
|
<dc:type
|
||||||
C246.606,85.152,243.876,82.163,243.876,76.442z"/>
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
<path fill="#213B4D" d="M326.553,53.432c0-19.371,13.91-33.671,33.152-33.671c18.721,0,31.59,13.13,31.59,31.721v1.3
|
<dc:title></dc:title>
|
||||||
c-0.129,3.25-1.039,5.07-4.42,5.07h-43.811c1.299,9.49,8.58,15.081,18.46,15.081c9.62,0,14.95-4.29,17.94-9.36
|
<cc:license
|
||||||
c0.131-0.26,8.84,0.91,8.84,8.19c0,6.89-9.75,14.561-27.43,14.561C340.204,86.323,326.553,73.452,326.553,53.432z M343.065,47.191
|
rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
|
||||||
h31.201c-0.391-8.84-5.98-14.69-14.821-14.69C350.864,32.501,344.364,38.611,343.065,47.191z"/>
|
</cc:Work>
|
||||||
<path fill="#213B4D" d="M453.825,79.303c0.65,0.91-4.03,6.11-10.531,6.11c-4.16,0-7.539-2.21-9.88-6.631l-10.79-16.9l-10.66,16.9
|
<cc:License
|
||||||
c-2.34,4.29-5.851,6.631-10.141,6.631c-6.11,0-10.92-5.33-10.271-6.11l19.241-26.261l-19.111-26.521
|
rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
|
||||||
c-0.52-0.91,4.16-6.11,10.141-6.11c4.29,0,7.801,1.95,10.27,6.631l10.791,16.9l10.791-16.9c2.6-4.811,6.369-6.631,10.01-6.631
|
<cc:permits
|
||||||
c6.24,0,11.051,5.2,10.4,6.11l-19.371,26.521L453.825,79.303z"/>
|
rdf:resource="http://creativecommons.org/ns#Reproduction" />
|
||||||
<path fill="#213B4D" d="M455.122,29.121v-1.17c0-4.421,2.471-6.761,7.67-6.761h3.121V13.13c0-5.979,3.119-8.84,8.32-8.84h1.56
|
<cc:permits
|
||||||
c4.94,0,8.19,2.08,8.19,8.84v8.061h11.051c5.199,0,7.41,2.21,7.41,6.5v1.04c0,4.42-2.34,6.761-7.541,6.761h-11.311v27.041
|
rdf:resource="http://creativecommons.org/ns#Distribution" />
|
||||||
c0,6.24,2.08,9.36,7.021,9.36c3.77,0,6.24-1.82,8.189-4.29c0.26-0.391,4.42,2.08,4.42,7.149c0,6.371-6.369,11.571-16.77,11.571
|
<cc:requires
|
||||||
c-14.041,0-20.541-7.411-20.541-21.711V35.491h-3.121C457.592,35.491,455.122,33.281,455.122,29.121z"/>
|
rdf:resource="http://creativecommons.org/ns#Notice" />
|
||||||
</g>
|
<cc:requires
|
||||||
</svg>
|
rdf:resource="http://creativecommons.org/ns#Attribution" />
|
||||||
|
<cc:permits
|
||||||
|
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
|
||||||
|
<cc:requires
|
||||||
|
rdf:resource="http://creativecommons.org/ns#ShareAlike" />
|
||||||
|
</cc:License>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
transform="translate(-50.081839,-105.93303)"
|
||||||
|
id="layer1">
|
||||||
|
<g
|
||||||
|
transform="translate(-1596.0827,-463.42076)"
|
||||||
|
id="g1446-4-5">
|
||||||
|
<g
|
||||||
|
style="stroke-width:1.0000006"
|
||||||
|
transform="matrix(0.9999989,0,0,0.99999981,279.19167,438.7826)"
|
||||||
|
id="g1422-7-2">
|
||||||
|
<g
|
||||||
|
style="stroke-width:1.0000006"
|
||||||
|
id="g1418-4-6"
|
||||||
|
transform="translate(-25.731002,-0.1322636)">
|
||||||
|
<g
|
||||||
|
style="stroke-width:1.0000006"
|
||||||
|
transform="translate(-95.250002)"
|
||||||
|
id="g1416-4-9">
|
||||||
|
<path
|
||||||
|
style="opacity:1;vector-effect:none;fill:#7574ff;fill-opacity:1;stroke:none;stroke-width:3.96875262;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
|
||||||
|
d="m 1501.1846,130.70348 h 60.8542 c 7.329,0 13.2292,5.9002 13.2292,13.22916 v 60.85419 c 0,7.32896 -5.9002,13.22917 -13.2292,13.22917 h -60.8542 c -7.3289,0 -13.2292,-5.90021 -13.2292,-13.22917 v -60.85419 c 0,-7.32896 5.9003,-13.22916 13.2292,-13.22916 z"
|
||||||
|
id="path1414-3-4" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="g1420-0-4"
|
||||||
|
transform="matrix(1.0131472,0,0,1.0131472,-144.01349,-2.2905938)"
|
||||||
|
style="stroke-width:0.98702425" />
|
||||||
|
</g>
|
||||||
|
<path
|
||||||
|
id="circle1424-7-6"
|
||||||
|
transform="matrix(0.26458333,0,0,0.26458333,1646.1645,569.35379)"
|
||||||
|
d="M 164.92578 228.00977 A 412.60453 412.60453 0 0 0 0 262.94922 L 0 280 C 0 307.70001 22.30022 330 50 330 L 280 330 C 307.69978 330 330 307.70001 330 280 L 330 262.70508 A 412.60453 412.60453 0 0 0 164.92578 228.00977 z "
|
||||||
|
clip-path="none"
|
||||||
|
style="opacity:1;vector-effect:none;fill:#6564f9;fill-opacity:1;stroke:none;stroke-width:15;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal" />
|
||||||
|
<g
|
||||||
|
style="fill:#4a15c6;fill-opacity:1"
|
||||||
|
transform="translate(2.8144523,0.84784259)"
|
||||||
|
id="g1434-8-0" />
|
||||||
|
<g
|
||||||
|
id="g1444-6-7"
|
||||||
|
transform="translate(3.8727857,-0.32524952)">
|
||||||
|
<path
|
||||||
|
style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:15;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:normal"
|
||||||
|
d="m 3738.9473,951.78516 c -1.0388,0 -2.0511,0.10552 -3.0293,0.30468 -0.9783,0.19916 -1.9225,0.49258 -2.8203,0.8711 -0.449,0.18926 -0.8854,0.40047 -1.3106,0.63086 -0.8503,0.46076 -1.6504,1.00091 -2.3906,1.61132 -3.3312,2.74687 -5.4492,6.90766 -5.4492,11.58204 v 0.91406 133.17378 0.9122 c 0,8.31 6.69,15 15,15 h 104.9082 c 8.31,0 15,-6.69 15,-15 v -0.9122 c 0,-8.31 -6.69,-15 -15,-15 h -88.9942 v -37.3613 h 66.1699 c 8.31,0 15,-6.69 15,-15 v -0.9121 c 0,-8.31 -6.69,-15 -15,-15 h -66.1699 v -34.90038 h 88.9942 c 8.31,0 15,-6.69 15,-15 v -0.91406 c 0,-8.31 -6.69,-15 -15,-15 z"
|
||||||
|
transform="matrix(0.26458334,0,0,0.26458334,682.80626,339.68051)"
|
||||||
|
id="rect1436-8-4" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 4.6 KiB |
BIN
foundation/public/img/favicon.ico
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
@@ -1,16 +1,29 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
<svg width="222px" height="168px" viewBox="0 0 222 168" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
<svg
|
||||||
<!-- Generator: Sketch 42 (36781) - http://www.bohemiancoding.com/sketch -->
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
<title>Group</title>
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
<desc>Created with Sketch.</desc>
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
<defs></defs>
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
<g id="Group" fill-rule="nonzero">
|
id="svg16"
|
||||||
<path d="M39.838,4.703 L85.685,50.55" id="Shape" fill="#FF783D"></path>
|
style="clip-rule:evenodd;fill-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41420996"
|
||||||
<path d="M116.07,167.331 C114.972,167.331 113.892,166.904 113.083,166.099 L37.699,91.15 C36.899,90.355 36.45,89.273 36.45,88.145 L36.45,4.703 C36.45,2.364 38.346,0.468 40.683,0.468 C43.023,0.468 44.919,2.364 44.919,4.703 L44.919,86.385 L111.833,152.913 L111.833,102.073 C111.833,99.735 113.729,97.839 116.067,97.839 C118.407,97.839 120.303,99.735 120.303,102.073 L120.303,163.095 C120.303,164.806 119.274,166.349 117.694,167.006 C117.17,167.225 116.617,167.331 116.07,167.331 Z" id="Shape" fill="#000000"></path>
|
xml:space="preserve"
|
||||||
<path d="M40.684,46.206 L5.109,46.206 C3.423,46.206 1.897,45.208 1.225,43.662 C0.552,42.115 0.862,40.317 2.01,39.085 L27.506,11.723 L36.738,1.816 C38.333,0.105 41.013,0.009 42.724,1.604 C44.435,3.199 44.529,5.878 42.935,7.59 L14.844,37.736 L40.684,37.736 C43.024,37.736 44.92,39.632 44.92,41.972 C44.92,44.311 43.023,46.206 40.684,46.206 Z" id="Shape" fill="#000000"></path>
|
version="1.1"
|
||||||
<path d="M85.685,54.784 C84.588,54.784 83.492,54.362 82.663,53.516 L37.663,7.669 C36.024,5.999 36.05,3.317 37.719,1.68 C39.389,0.041 42.07,0.067 43.708,1.736 L88.708,47.584 C90.347,49.253 90.321,51.934 88.652,53.572 C87.826,54.381 86.756,54.784 85.685,54.784 Z" id="Shape" fill="#000000"></path>
|
viewBox="0 0 233.10893 184.52928"
|
||||||
<path d="M82.015,133.274 C80.802,133.274 79.599,132.756 78.761,131.752 C77.262,129.956 77.504,127.285 79.299,125.787 L205.176,20.796 L127.873,20.796 L43.229,91.397 C41.433,92.895 38.762,92.655 37.263,90.857 C35.765,89.062 36.007,86.39 37.803,84.892 L123.626,13.309 C124.388,12.675 125.347,12.327 126.338,12.327 L216.863,12.327 C218.645,12.327 220.238,13.444 220.844,15.12 C221.451,16.796 220.944,18.673 219.574,19.814 L84.726,132.292 C83.934,132.953 82.971,133.274 82.015,133.274 Z" id="Shape" fill="#000000"></path>
|
height="184.52928"
|
||||||
</g>
|
width="233.10893"><metadata
|
||||||
</g>
|
id="metadata22"><rdf:RDF><cc:Work
|
||||||
</svg>
|
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title><cc:license
|
||||||
|
rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" /></cc:Work><cc:License
|
||||||
|
rdf:about="http://creativecommons.org/licenses/by-sa/4.0/"><cc:permits
|
||||||
|
rdf:resource="http://creativecommons.org/ns#Reproduction" /><cc:permits
|
||||||
|
rdf:resource="http://creativecommons.org/ns#Distribution" /><cc:requires
|
||||||
|
rdf:resource="http://creativecommons.org/ns#Notice" /><cc:requires
|
||||||
|
rdf:resource="http://creativecommons.org/ns#Attribution" /><cc:permits
|
||||||
|
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /><cc:requires
|
||||||
|
rdf:resource="http://creativecommons.org/ns#ShareAlike" /></cc:License></rdf:RDF></metadata><defs
|
||||||
|
id="defs20" /><path
|
||||||
|
style="fill:#29344a;fill-opacity:1;stroke:none;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="M 32.996565,1.9352345e-4 C 32.920595,-0.00190648 32.848004,0.01370352 32.773387,0.01707352 c -0.17861,-0.01013 -0.360732,-0.0068 -0.544372,0.02026 -0.613757,0.08981 -1.242875,0.401518 -1.814563,1.00325498 L 30.016615,1.5709865 0.53497063,40.895016 c -1.327318,1.789981 -0.08137,4.651792 2.59622497,4.349742 L 35.168988,40.67518 42.012044,88.660303 c 0.131003,0.97745 0.647283,1.71644 1.331268,2.17401 0.05571,0.52506 0.274499,1.05866 0.718863,1.53193 l 49.558917,50.417347 c 0.32211,0.31941 0.69614,0.52989 1.08699,0.65779 l 39.526398,40.21036 c 2.00898,1.88759 5.24535,0.54029 5.24485,-2.23509 l 0.65951,-80.71558 92.10383,-90.694028 c 1.85795,-1.7675625 0.48302,-4.6583425 -1.81807,-4.5835565 l -99.81928,-0.807829 c -1.05771,-0.0068 -1.66614,0.53897 -1.90703,0.76944 L 61.387877,71.666093 84.005562,41.49695 c 1.20682,-1.653272 0.51345,-3.515475 -0.6281,-4.375909 L 34.753728,0.60263852 c -0.587859,-0.401348 -1.188043,-0.585901 -1.756994,-0.60193899655 z"
|
||||||
|
id="path846" /></svg>
|
||||||
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.5 KiB |
@@ -1,13 +1,43 @@
|
|||||||
<?xml version="1.0" standalone="no"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
<svg
|
||||||
<svg width="100%" height="100%" viewBox="0 0 260 260" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;">
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
<g>
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
<g>
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
<path d="M65.838,51.703L111.685,97.55" style="fill:rgb(255,120,61);fill-rule:nonzero;"/>
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
<path d="M142.07,214.331C140.972,214.331 139.892,213.904 139.083,213.099L63.699,138.15C62.899,137.355 62.45,136.273 62.45,135.145L62.45,51.703C62.45,49.364 64.346,47.468 66.683,47.468C69.023,47.468 70.919,49.364 70.919,51.703L70.919,133.385L137.833,199.913L137.833,149.073C137.833,146.735 139.729,144.839 142.067,144.839C144.407,144.839 146.303,146.735 146.303,149.073L146.303,210.095C146.303,211.806 145.274,213.349 143.694,214.006C143.17,214.225 142.617,214.331 142.07,214.331Z" style="fill:rgb(141,153,166);fill-rule:nonzero;"/>
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
<path d="M66.684,93.206L31.109,93.206C29.423,93.206 27.897,92.208 27.225,90.662C26.552,89.115 26.862,87.317 28.01,86.085L53.506,58.723L62.738,48.816C64.333,47.105 67.013,47.009 68.724,48.604C70.435,50.199 70.529,52.878 68.935,54.59L40.844,84.736L66.684,84.736C69.024,84.736 70.92,86.632 70.92,88.972C70.92,91.311 69.023,93.206 66.684,93.206Z" style="fill:rgb(141,153,166);fill-rule:nonzero;"/>
|
id="svg16"
|
||||||
<path d="M111.685,101.784C110.588,101.784 109.492,101.362 108.663,100.516L63.663,54.669C62.024,52.999 62.05,50.317 63.719,48.68C65.389,47.041 68.07,47.067 69.708,48.736L114.708,94.584C116.347,96.253 116.321,98.934 114.652,100.572C113.826,101.381 112.756,101.784 111.685,101.784Z" style="fill:rgb(141,153,166);fill-rule:nonzero;"/>
|
style="clip-rule:evenodd;fill-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41420996"
|
||||||
<path d="M108.015,180.274C106.802,180.274 105.599,179.756 104.761,178.752C103.262,176.956 103.504,174.285 105.299,172.787L231.176,67.796L153.873,67.796L69.229,138.397C67.433,139.895 64.762,139.655 63.263,137.857C61.765,136.062 62.007,133.39 63.803,131.892L149.626,60.309C150.388,59.675 151.347,59.327 152.338,59.327L242.863,59.327C244.645,59.327 246.238,60.444 246.844,62.12C247.451,63.796 246.944,65.673 245.574,66.814L110.726,179.292C109.934,179.953 108.971,180.274 108.015,180.274Z" style="fill:rgb(141,153,166);fill-rule:nonzero;"/>
|
xml:space="preserve"
|
||||||
</g>
|
version="1.1"
|
||||||
</g>
|
viewBox="0 0 260 260"
|
||||||
</svg>
|
height="1"
|
||||||
|
width="1"><metadata
|
||||||
|
id="metadata22"><rdf:RDF><cc:Work
|
||||||
|
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title><cc:license
|
||||||
|
rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" /></cc:Work><cc:License
|
||||||
|
rdf:about="http://creativecommons.org/licenses/by-sa/4.0/"><cc:permits
|
||||||
|
rdf:resource="http://creativecommons.org/ns#Reproduction" /><cc:permits
|
||||||
|
rdf:resource="http://creativecommons.org/ns#Distribution" /><cc:requires
|
||||||
|
rdf:resource="http://creativecommons.org/ns#Notice" /><cc:requires
|
||||||
|
rdf:resource="http://creativecommons.org/ns#Attribution" /><cc:permits
|
||||||
|
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /><cc:requires
|
||||||
|
rdf:resource="http://creativecommons.org/ns#ShareAlike" /></cc:License></rdf:RDF></metadata><defs
|
||||||
|
id="defs20" /><g
|
||||||
|
id="g14"><g
|
||||||
|
id="g12"><path
|
||||||
|
id="path2"
|
||||||
|
style="fill:#ff783d;fill-rule:nonzero"
|
||||||
|
d="M 65.838,51.703 111.685,97.55" /><path
|
||||||
|
id="path4"
|
||||||
|
style="fill:#8d99a6;fill-rule:nonzero"
|
||||||
|
d="m 142.07,214.331 c -1.098,0 -2.178,-0.427 -2.987,-1.232 L 63.699,138.15 c -0.8,-0.795 -1.249,-1.877 -1.249,-3.005 V 51.703 c 0,-2.339 1.896,-4.235 4.233,-4.235 2.34,0 4.236,1.896 4.236,4.235 v 81.682 l 66.914,66.528 v -50.84 c 0,-2.338 1.896,-4.234 4.234,-4.234 2.34,0 4.236,1.896 4.236,4.234 v 61.022 c 0,1.711 -1.029,3.254 -2.609,3.911 -0.524,0.219 -1.077,0.325 -1.624,0.325 z" /><path
|
||||||
|
id="path6"
|
||||||
|
style="fill:#8d99a6;fill-rule:nonzero"
|
||||||
|
d="M 66.684,93.206 H 31.109 c -1.686,0 -3.212,-0.998 -3.884,-2.544 -0.673,-1.547 -0.363,-3.345 0.785,-4.577 l 25.496,-27.362 9.232,-9.907 c 1.595,-1.711 4.275,-1.807 5.986,-0.212 1.711,1.595 1.805,4.274 0.211,5.986 L 40.844,84.736 h 25.84 c 2.34,0 4.236,1.896 4.236,4.236 0,2.339 -1.897,4.234 -4.236,4.234 z" /><path
|
||||||
|
id="path8"
|
||||||
|
style="fill:#8d99a6;fill-rule:nonzero"
|
||||||
|
d="m 111.685,101.784 c -1.097,0 -2.193,-0.422 -3.022,-1.268 l -45,-45.847 c -1.639,-1.67 -1.613,-4.352 0.056,-5.989 1.67,-1.639 4.351,-1.613 5.989,0.056 l 45,45.848 c 1.639,1.669 1.613,4.35 -0.056,5.988 -0.826,0.809 -1.896,1.212 -2.967,1.212 z" /><path
|
||||||
|
id="path10"
|
||||||
|
style="fill:#8d99a6;fill-rule:nonzero"
|
||||||
|
d="m 108.015,180.274 c -1.213,0 -2.416,-0.518 -3.254,-1.522 -1.499,-1.796 -1.257,-4.467 0.538,-5.965 L 231.176,67.796 h -77.303 l -84.644,70.601 c -1.796,1.498 -4.467,1.258 -5.966,-0.54 -1.498,-1.795 -1.256,-4.467 0.54,-5.965 l 85.823,-71.583 c 0.762,-0.634 1.721,-0.982 2.712,-0.982 h 90.525 c 1.782,0 3.375,1.117 3.981,2.793 0.607,1.676 0.1,3.553 -1.27,4.694 L 110.726,179.292 c -0.792,0.661 -1.755,0.982 -2.711,0.982 z" /></g></g></svg>
|
||||||
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 3.2 KiB |
BIN
foundation/public/img/healthcare.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 48 KiB |
BIN
foundation/public/img/manufacturing-domain.png
Normal file
|
After Width: | Height: | Size: 8.0 KiB |
BIN
foundation/public/img/non-profit.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
foundation/public/img/retail.png
Normal file
|
After Width: | Height: | Size: 9.9 KiB |
BIN
foundation/public/img/service-providers.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
foundation/public/img/services.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
foundation/public/img/vm-dev-vagrant.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
foundation/public/img/vm-development.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
foundation/public/img/vm-production.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
110
foundation/public/less/base.less
Normal file
@@ -0,0 +1,110 @@
|
|||||||
|
/*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-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-medium {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-small {
|
||||||
|
font-size: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.centered {
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bold {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.list-unstyled {
|
||||||
|
padding: 0;
|
||||||
|
|
||||||
|
li {
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.list-circle {
|
||||||
|
list-style: circle;
|
||||||
|
}
|
||||||
|
|
||||||
|
.border {
|
||||||
|
border: @border;
|
||||||
|
}
|
||||||
|
|
||||||
|
.border-top {
|
||||||
|
border-top: @border;
|
||||||
|
}
|
||||||
|
|
||||||
|
.saturate {
|
||||||
|
filter: grayscale(100%);
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
filter: grayscale(0%);
|
||||||
|
}
|
||||||
|
}
|
||||||
1051
foundation/public/less/erpnext-org-theme.less
Normal file
88
foundation/public/less/indicator.less
Normal file
@@ -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;
|
||||||
|
}
|
||||||
12
foundation/public/less/variables.less
Normal file
@@ -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%);
|
||||||
69
foundation/templates/base.html
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<!-- Built on Frappe. https://frappe.io/ -->
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>{% block title %} {{ title | striptags }} {% endblock %}</title>
|
||||||
|
<meta name="generator" content="frappe">
|
||||||
|
{% block favicon %}
|
||||||
|
<link rel="shortcut icon"
|
||||||
|
href="{{ (favicon or "/assets/frappe/images/favicon.png") | abs_url }}"
|
||||||
|
type="image/x-icon">
|
||||||
|
<link rel="icon"
|
||||||
|
href="{{ (favicon or "/assets/frappe/images/favicon.png") | abs_url }}"
|
||||||
|
type="image/x-icon">
|
||||||
|
{% endblock %}
|
||||||
|
{%- block head -%}
|
||||||
|
{% block meta_block %}{% endblock %}
|
||||||
|
<link href="/assets/foundation/css/erpnext-org-theme.css" rel="stylesheet">
|
||||||
|
{% if path != '' %}
|
||||||
|
<link type="text/css" rel="stylesheet" href="/assets/frappe/css/hljs.css">
|
||||||
|
<link type="text/css" rel="stylesheet" href="/assets/frappe/css/font-awesome.css">
|
||||||
|
<link type="text/css" rel="stylesheet" href="/assets/frappe/css/octicons/octicons.css">
|
||||||
|
{% endif %}
|
||||||
|
{% if path == 'contact' %}
|
||||||
|
<link type="text/css" rel="stylesheet" href="/assets/foundation/css/bootstrap-for-webform.css">
|
||||||
|
{% endif %}
|
||||||
|
{%- endblock -%}
|
||||||
|
{%- block head_include %}{{ head_include or "" }}{% endblock -%}
|
||||||
|
{%- block style %}{%- endblock -%}
|
||||||
|
<script>
|
||||||
|
window.frappe = {};
|
||||||
|
frappe.ready_events = [];
|
||||||
|
frappe.ready = function(fn) {
|
||||||
|
frappe.ready_events.push(fn);
|
||||||
|
}
|
||||||
|
window.dev_server = {{ dev_server }};
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body data-path="{{ path }}">
|
||||||
|
<div class="wrapper">
|
||||||
|
{%- block navbar -%}{% include "templates/includes/navbar/navbar.html" %}{%- endblock -%}
|
||||||
|
{% block content %}
|
||||||
|
{{ content }}
|
||||||
|
{% endblock %}
|
||||||
|
{%- block footer -%}{% include "templates/includes/footer/footer.html" %}{%- endblock -%}
|
||||||
|
</div>
|
||||||
|
{% block base_scripts %}
|
||||||
|
<!-- js should be loaded in body! -->
|
||||||
|
<script type="text/javascript"
|
||||||
|
src="/assets/frappe/js/lib/jquery/jquery.min.js"></script>
|
||||||
|
<script type="text/javascript"
|
||||||
|
src="/assets/js/frappe-web.min.js"></script>
|
||||||
|
{% endblock %}
|
||||||
|
{%- if js_globals is defined %}
|
||||||
|
<script>
|
||||||
|
{%- for key, value in js_globals.iteritems() %}
|
||||||
|
window.{{ key }} = "{{ value[0] }}";
|
||||||
|
{%- endfor -%}
|
||||||
|
</script>
|
||||||
|
{% endif -%}
|
||||||
|
{%- for link in web_include_js %}
|
||||||
|
<script type="text/javascript" src="{{ link|abs_url }}"></script>
|
||||||
|
{%- endfor -%}
|
||||||
|
{%- block script %}{%- endblock %}
|
||||||
|
<!-- csrf_token -->
|
||||||
|
{%- block body_include %}{{ body_include or "" }}{% endblock -%}
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -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;
|
|
||||||
}
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
<ul class="list-unstyled footer-list">
|
|
||||||
<li>
|
|
||||||
<a href="/members">Memberships</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="https://erpnext.com">ERPNext.com</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="https://frappe.io">Frappé</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="https://frappe.io/blog">Blog</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="https://discuss.erpnext.com">Forum</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="https://github.com/frappe">GitHub</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="/about">About</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="/contact">Contact</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<div class="social">
|
|
||||||
<p>Find us on
|
|
||||||
<a class="underline" href="https://twitter.com/erpnext"
|
|
||||||
target="_blank">Twitter</a>,
|
|
||||||
<a class="underline" href="https://www.facebook.com/ERPNext/"
|
|
||||||
target="_blank">Facebook</a>,
|
|
||||||
<a class="underline" href="https://medium.com/frappé-thoughts/"
|
|
||||||
target="_blank">Medium</a>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="copyright">
|
|
||||||
<p>
|
|
||||||
©<span id="year"></span> ERPNext Open Source Software Foundation.
|
|
||||||
Content licensed under
|
|
||||||
<a class="underline" href="https://creativecommons.org/licenses/by-sa/3.0/" target="_blank">
|
|
||||||
CC-BY-SA 3.0</a>. Read the <a href="/terms" class="underline">terms of use</a>.
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
147
foundation/templates/includes/footer/footer.html
Normal file
@@ -0,0 +1,147 @@
|
|||||||
|
<footer class="dark-bg">
|
||||||
|
<div class="footer">
|
||||||
|
<div class="container">
|
||||||
|
<div class="four-column left-aligned clearfix">
|
||||||
|
<div class="columns">
|
||||||
|
<h3 class="footer-title text-white">Domains</h3>
|
||||||
|
<ul class="list-unstyled footer-list">
|
||||||
|
<li>
|
||||||
|
<a class="secondary-link" href="/docs/user/manual/en/manufacturing">Manufacturing</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="secondary-link" href="/docs/user/manual/en/stock">Distribution</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="secondary-link" href="/docs/user/manual/en/projects">Services</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="secondary-link" href="/docs/user/manual/en/accounts/point-of-sale-pos-invoice">Retail</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="secondary-link" href="/docs/user/manual/en/education">Education</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="secondary-link" href="/docs/user/manual/en/healthcare">Healthcare</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="secondary-link" href="/docs/user/manual/en/agriculture">Agriculture</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="secondary-link" href="/docs/user/manual/en/non_profit">Non Profit</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="columns">
|
||||||
|
<h3 class="footer-title text-white">Foundation</h3>
|
||||||
|
<ul class="list-unstyled footer-list">
|
||||||
|
<li>
|
||||||
|
<a class="secondary-link" href="/about">About</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="secondary-link" href="/blog">Blog</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="secondary-link" href="/members">Memberships</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="secondary-link" href="/foundation-fellow">Fellow</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="secondary-link" href="/bounties">Bounties</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="secondary-link" href="/conf">Conferences</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="secondary-link" href="/contact">Contact</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="secondary-link" href="/login">Member Login</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="columns">
|
||||||
|
<h3 class="footer-title text-white">Community</h3>
|
||||||
|
<ul class="list-unstyled footer-list">
|
||||||
|
<li>
|
||||||
|
<a class="secondary-link" href="/chapters">Chapters</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="secondary-link" href="https://discuss.erpnext.com" target="_blank" >Forum</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="secondary-link" href="/service-providers">Service Providers</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="secondary-link" href="/erpnext-jobs">ERPNext Jobs</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="secondary-link" href="/apps">Apps</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="secondary-link" href="https://gitter.im/frappe/erpnext" target="_blank" >Chat (Gitter)</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="secondary-link" href="https://github.com/frappe/erpnext" target="_blank" >GitHub</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a class="secondary-link" href="https://erpnext.com" target="_blank" >ERPNext.com</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="columns">
|
||||||
|
<h3 class="footer-title text-white">Documentation</h3>
|
||||||
|
<ul class="list-unstyled footer-list">
|
||||||
|
<li>
|
||||||
|
<a class="secondary-link" href="/docs/user/manual">Manual</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="secondary-link" href="https://www.youtube.com/c/erpnext" target="_blank" >Video Tutorials</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="secondary-link" href="/docs/current">ERPNext Model & API</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<!--<h3 class="footer-title text-white top-spacer">Localisation</h3>
|
||||||
|
<ul class="list-unstyled footer-list">
|
||||||
|
<li>
|
||||||
|
<a class="secondary-link" href="https://erpnext.com/uae-ksa-vat" target="_blank">UAE/KSA VAT</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="secondary-link" href="https://erpnext.com/india-gst" target="_blank">GST For India</a>
|
||||||
|
</li>
|
||||||
|
</ul>-->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="footer-end dark-bg text-muted">
|
||||||
|
<div class="container">
|
||||||
|
<div class="align-iten-center three-column">
|
||||||
|
<div class="columns">
|
||||||
|
<p><img class="footer-icon" src="/assets/foundation/img/erpnext-logo.svg" alt="ERPnext Icon">
|
||||||
|
© <span id="year"></span> ERPNext Open Source Software Foundation.</p>
|
||||||
|
</div>
|
||||||
|
<div class="columns">
|
||||||
|
<p>Find us on
|
||||||
|
<a class="secondary-link" href="https://twitter.com/erpnext" target="_blank">Twitter</a>,
|
||||||
|
<a class="secondary-link" href="https://www.facebook.com/ERPNext/" target="_blank">Facebook</a> &
|
||||||
|
<a class="secondary-link" href="https://medium.com/frappé-thoughts/" target="_blank">Medium</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="columns">
|
||||||
|
<p>Content licensed under <a class="secondary-link" href="https://creativecommons.org/licenses/by-sa/3.0/" target="_blank"> CC-BY-SA 3.0</a> | <a href="/terms" class="secondary-link">Terms of use</a>.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
frappe.ready(function(){
|
||||||
|
var d = new Date();
|
||||||
|
var currentYear = d.getFullYear();
|
||||||
|
$("#year").text(currentYear);
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
{% macro media(title, content, image, link) %}
|
{% macro media(title, content, image, link) %}
|
||||||
<div class="media with-border {% if link %}clickable{% endif %}"
|
<div class="media centered {% if link %}clickable{% endif %}"
|
||||||
{% if link %}style="cursor: pointer;"{% endif %}
|
{% if link %}style="cursor: pointer;"{% endif %}
|
||||||
{% if link %}onclick="location.href='{{ link }}'"{% endif %}>
|
{% if link %}onclick="location.href='{{ link }}'"{% endif %}>
|
||||||
<div class="media-left">
|
<div class="media-left">
|
||||||
<a href="{{ link or "#" }}">
|
<a href="{{ link or "#" }}">
|
||||||
<img class="media-object"
|
<img class="media-object"
|
||||||
src="{% if image %}{% if not '/' in image %}/assets/foundation/img/{% endif %}{{ image }}{% else %}/assets/foundation/img/frappe-bird-grey.svg{% endif %}"
|
src="{% if image %}{% if not '/' in image %}/assets/foundation/img/{% endif %}{{ image }}{% else %}/assets/foundation/img/frappe-bird-grey.svg{% endif %}"
|
||||||
style="width: 64px; height: 64px; max-width: 64px; {% if image and not '/' in image %}opacity: 0.4{% endif %}">
|
style="{% if image and not '/' in image %}opacity: 0.4{% endif %}">
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="media-body">
|
<div class="media-body">
|
||||||
|
|||||||
24
foundation/templates/includes/navbar/navbar.html
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
<nav class="navbar navbar-default navbar-main" role="navigation">
|
||||||
|
<div class="container">
|
||||||
|
<div class="navbar-header">
|
||||||
|
<div class="left">
|
||||||
|
<a class="navbar-brand" href="{{ url_prefix }}{{ home_page or "/"}}">
|
||||||
|
<span>{{ brand_html or (frappe.get_hooks("brand_html") or ["Home"])[0] }}</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<ul class="menu list-unstyled">
|
||||||
|
<li class="menu-items">
|
||||||
|
<a href="/service-providers" class="menu-links">Services</a>
|
||||||
|
</li>
|
||||||
|
<li class="menu-items">
|
||||||
|
<a href="/blog" class="menu-links">Blog</a>
|
||||||
|
</li>
|
||||||
|
<li class="menu-items">
|
||||||
|
<a href="/about" class="menu-links">About</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
@@ -1,63 +1,35 @@
|
|||||||
<section>
|
<section class="sponsor">
|
||||||
<div>
|
<div class="grid-of-three">
|
||||||
<div class='row'>
|
<div class="box text-center top-spacer" >
|
||||||
|
<a href="https://frappe.io/" class="no-decoration" target="_blank">
|
||||||
<div class="col-sm-4">
|
<img src="/assets/foundation/img/frappe-bird-black.svg" alt="Frappe"/>
|
||||||
<div class='sponsor' >
|
</a>
|
||||||
<a href="https://frappe.io/" class="no-decoration" target="_blank">
|
|
||||||
<img src="/assets/foundation/img/frappe-bird-thin.png" alt="Frappé"
|
|
||||||
style="margin-top: 20px;"/>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
<div class="box text-center top-spacer" >
|
||||||
<div class="col-sm-4">
|
<a href="https://mntechnique.com/" class="no-decoration" target="_blank">
|
||||||
<div class='sponsor' >
|
<img src="/assets/foundation/img/conf/sponsors/mnt-logo.png" alt="MNT"/>
|
||||||
<a href="https://mntechnique.com/" class="no-decoration" target="_blank">
|
</a>
|
||||||
<img src="/assets/foundation/img/conf/sponsors/mnt-logo.png" alt="MNT"
|
|
||||||
style="margin-top: 30px;"/>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
<div class="box text-center top-spacer" >
|
||||||
<div class="col-sm-4">
|
<a href="http://fogliasana.com/" class="no-decoration" target="_blank">
|
||||||
<div class='sponsor' >
|
<img src="/assets/foundation/img/conf/sponsors/shs-logo.png" alt="SHS"/>
|
||||||
<a href="http://fogliasana.com/" class="no-decoration" target="_blank">
|
</a>
|
||||||
<img src="/assets/foundation/img/conf/sponsors/shs-logo.png" alt="SHS"
|
|
||||||
style="margin-top: 36px;"/>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
<div class="box text-center top-spacer" >
|
||||||
<div class="col-sm-4">
|
<a href="https://www.cloude8.com/" class="no-decoration" target="_blank">
|
||||||
<div class='sponsor' >
|
<img src="/assets/foundation/img/conf/sponsors/cloude8.png" alt="Cloude8"/>
|
||||||
<a href="https://www.cloude8.com/" class="no-decoration" target="_blank">
|
</a>
|
||||||
<img src="/assets/foundation/img/conf/sponsors/cloude8.webp" alt="Cloude8"
|
|
||||||
style="margin-top: 33px;"/>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
<div class="box text-center top-spacer" >
|
||||||
<div class="col-sm-4">
|
<a href="https://digithinkit.com/" class="no-decoration" target="_blank">
|
||||||
<div class='sponsor' >
|
<img src="/assets/foundation/img/conf/sponsors/digithinkit.png" alt="DigiThinkIT"/>
|
||||||
<a href="https://digithinkit.com/" class="no-decoration" target="_blank">
|
</a>
|
||||||
<img src="/assets/foundation/img/conf/sponsors/digithinkit.png" alt="DigiThinkIT"
|
|
||||||
style="margin-top: 60px;"/>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
<div class="box text-center top-spacer" >
|
||||||
<div class="col-sm-4">
|
<a href="http://www.indictranstech.com/" class="no-decoration" target="_blank">
|
||||||
<div class='sponsor' >
|
<img src="/assets/foundation/img/conf/sponsors/indictrans.png">
|
||||||
<a href="http://www.indictranstech.com/" class="no-decoration" target="_blank">
|
|
||||||
<img src="/assets/foundation/img/conf/sponsors/indictrans.jpg" alt="Indictrans"
|
|
||||||
style="margin-top: 60px;"/>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-12">
|
<div class="col-sm-12">
|
||||||
<div style="margin-top: 40px;">
|
<div style="margin-top: 40px;">
|
||||||
@@ -67,6 +39,4 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</section>
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|||||||
55
foundation/templates/web.html
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
{% extends base_template_path %}
|
||||||
|
{% block hero %}{% endblock %}
|
||||||
|
{% block content %}
|
||||||
|
<div class="page">
|
||||||
|
<div class="page-container" id="page-{{ name or route }}"
|
||||||
|
data-path="{{ pathname }}" {%- if page_or_generator=="Generator" %} data-doctype="{{ doctype }}"{% endif %}>
|
||||||
|
{% if show_sidebar %}
|
||||||
|
<div class="sidebar-block">
|
||||||
|
{% include "templates/includes/web_sidebar.html" %}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
<div class="{% if show_sidebar %}page-content with-sidebar{% elif doctype == 'Blog Post' %} blog-page {% else %}page-content without-sidebar{% endif %}">
|
||||||
|
<div class="page-content-wrapper">
|
||||||
|
<div class="row page-head">
|
||||||
|
<div class='col-sm-12'>
|
||||||
|
{% if not no_breadcrumbs and parents %}
|
||||||
|
<div class="page-breadcrumbs">
|
||||||
|
{% block breadcrumbs %}
|
||||||
|
{% include 'templates/includes/breadcrumbs.html' %}
|
||||||
|
{% endblock %}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
{% if doctype != 'Blog Post' %}
|
||||||
|
<div class="col-sm-8 col-xs-6">
|
||||||
|
{% block header %}{% endblock %}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
<div class="col-sm-4 col-xs-6">
|
||||||
|
{% if show_search %}
|
||||||
|
<div class="page-search-block">
|
||||||
|
{% block search %}
|
||||||
|
{% include
|
||||||
|
'templates/includes/search_box.html' %}
|
||||||
|
{% endblock %}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if self.header_actions() %}
|
||||||
|
<div class="page-header-actions-block">
|
||||||
|
{% block header_actions %}{% endblock %}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="page_content">
|
||||||
|
{%- block page_content -%}{%- endblock -%}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- sidebar ends -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
52
foundation/website/css/web_form.css
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
.introduction {
|
||||||
|
border-bottom: 1px solid #e1e9f0;
|
||||||
|
padding: 15px;
|
||||||
|
padding-top: 0px;
|
||||||
|
margin-left: -15px;
|
||||||
|
margin-right: -15px;
|
||||||
|
margin-bottom: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-group label {
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type='checkbox'] {
|
||||||
|
margin-top: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.checkbox label {
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.web-form-page, .web-form-page .section {
|
||||||
|
padding: 20px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.web-form-grid-row input, .web-form-grid-row select {
|
||||||
|
border: 0px;
|
||||||
|
padding: 0px;
|
||||||
|
}
|
||||||
|
.web-form-grid-row input:focus, .web-form-grid-row select:focus {
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
.web-form-grid-row .form-group {
|
||||||
|
margin: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slide-progress {
|
||||||
|
/*border-top: 1px solid #d1d8dd;*/
|
||||||
|
margin-top: -10px;
|
||||||
|
}
|
||||||
|
.slide-progress .fa-fw {
|
||||||
|
vertical-align: middle;
|
||||||
|
margin-right: 9px;
|
||||||
|
padding-left: 2px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.slide-progress .icon-circle-blank {
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
.slide-progress .icon-circle {
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
383
foundation/website/doctype/web_form/templates/web_form.html
Normal file
@@ -0,0 +1,383 @@
|
|||||||
|
{% extends "templates/web.html" %}
|
||||||
|
|
||||||
|
{% block title %}{{ _(title) }}{% endblock %}
|
||||||
|
|
||||||
|
{% block header %}
|
||||||
|
<h1>{{ _(title) }}</h1>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block breadcrumbs %}
|
||||||
|
{% if has_header and login_required %}
|
||||||
|
{% include "templates/includes/breadcrumbs.html" %}
|
||||||
|
{% endif %}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block header_actions %}
|
||||||
|
{% if not read_only and has_header %}
|
||||||
|
<div style="padding-bottom: 15px;">
|
||||||
|
{% if login_required -%}
|
||||||
|
<a href="{{ cancel_url or pathname }}" class="btn btn-default btn-sm">
|
||||||
|
{{ _("Cancel") }}</a>
|
||||||
|
{%- endif %}
|
||||||
|
{% if not is_list %}
|
||||||
|
<button type="submit" class="btn btn-primary btn-sm btn-form-submit">
|
||||||
|
{{ _("Save") }}</button>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
{% if is_list %}
|
||||||
|
<div style="padding-bottom: 15px;">
|
||||||
|
<a href="/{{ pathname }}{{ delimeter }}new=1{{ params_from_form_dict}}" class="btn btn-primary btn-new btn-sm">
|
||||||
|
{{ _("New") }}
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
{%- if allow_print and not is_list and not _login_required -%}
|
||||||
|
<div class='text-right'>
|
||||||
|
<a class='text-muted small' href='/printview?doctype={{ doc.doctype}}&name={{ doc.name }}
|
||||||
|
{%- if print_format -%}&format={{ print_format }}{%- endif -%}' target="_blank" rel="noopener noreferrer">
|
||||||
|
<i class='fa fa-print'></i> {{ _("Print") }}</a>
|
||||||
|
</div>
|
||||||
|
{%- endif -%}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block page_content %}
|
||||||
|
<div class="introduction">
|
||||||
|
{% if introduction_text %}
|
||||||
|
<p class="text-muted">{{ _(introduction_text) }}</p>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
<div class="form-message hide"></div>
|
||||||
|
{% if _login_required %}
|
||||||
|
<div class="login-required">
|
||||||
|
<div class="text-muted">
|
||||||
|
{{ _("Please sign-up or login to begin") }}
|
||||||
|
</div>
|
||||||
|
<p>
|
||||||
|
<a href="/login?redirect-to=/{{ pathname }}" class="btn btn-primary">
|
||||||
|
{{ _("Login") }}
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
{% elif is_list %}
|
||||||
|
{% include "templates/includes/list/list.html" %}
|
||||||
|
<script>{% include "templates/includes/list/list.js" %}</script>
|
||||||
|
{% else %}
|
||||||
|
<br>
|
||||||
|
|
||||||
|
{%- macro properties(field) %}
|
||||||
|
name="{{ field.fieldname }}" data-fieldname="{{ field.fieldname }}"
|
||||||
|
{% if field.placeholder -%} placeholder="{{ _(field.placeholder) }}" {%- endif %}
|
||||||
|
data-label="{{ _(field.label) }}" data-fieldtype="{{ field.fieldtype }}"
|
||||||
|
data-doctype="{{ field.parent }}" data-default="{{ field.default or "" }}"
|
||||||
|
{{ field.reqd and "data-reqd=1" or "" }}
|
||||||
|
{{ (read_only or field.read_only) and "disabled" or "" }}
|
||||||
|
{% endmacro -%}
|
||||||
|
|
||||||
|
{%- macro value(field, _doc) -%}
|
||||||
|
{%- if _doc -%}
|
||||||
|
{%- set _value = _doc.get(field.fieldname) or frappe.form_dict.get(field.fieldname) -%}
|
||||||
|
{%- else -%}
|
||||||
|
{%- set _value = frappe.form_dict.get(field.fieldname) or field.default -%}
|
||||||
|
{%- endif -%}
|
||||||
|
{{ "" if _value==None else _value }}
|
||||||
|
{%- endmacro -%}
|
||||||
|
|
||||||
|
{%- macro help(field) -%}
|
||||||
|
{% if field.description -%}
|
||||||
|
<span class="help-block small text-muted">{{ _(field.description) }}</span>
|
||||||
|
{%- endif -%}
|
||||||
|
{%- endmacro %}
|
||||||
|
|
||||||
|
{% macro label(field) %}
|
||||||
|
<label for="{{ field.fieldname }}" class="control-label text-muted small">
|
||||||
|
{{ _(field.label) }}</label>
|
||||||
|
{% endmacro %}
|
||||||
|
|
||||||
|
{% macro render_field(field, _doc=None, with_label=True) %}
|
||||||
|
{% if field.hidden %}
|
||||||
|
<input type="hidden" data-doctype="{{ field.parent }}"
|
||||||
|
name="{{ field.fieldname }}" value="{{ value(field, _doc) }}">
|
||||||
|
{% elif field.fieldtype == "HTML" %}
|
||||||
|
<div class="form-group" data-label="{{ field.label }}">
|
||||||
|
{% if field.options %}{{ field.options }}{% endif %}
|
||||||
|
</div>
|
||||||
|
{% elif field.fieldtype in ("Data", "Date", "Datetime", "Int", "Float") %}
|
||||||
|
<div class="form-group{% if field.reqd %} has-error{% endif %}">
|
||||||
|
{% if with_label %}{{ label(field) }}{% endif %}
|
||||||
|
<input type={{ "number" if field.fieldtype in ("Int", "Float") else "text" }}
|
||||||
|
class="form-control" {{ properties(field) }}
|
||||||
|
value="{{ value(field, _doc) }}"
|
||||||
|
{%- if field.fieldtype=="Int" %} pattern="[0-9]*"{% endif %}
|
||||||
|
{%- if field.max_length %} maxlength={{ field.max_length }}{% endif %}>
|
||||||
|
{{ help(field) }}
|
||||||
|
</div>
|
||||||
|
{% elif field.fieldtype=="Link" %}
|
||||||
|
<div class="form-group{% if field.reqd %} has-error{% endif %}">
|
||||||
|
{% if with_label %}{{ label(field) }}{% endif %}
|
||||||
|
<select class="form-control" {{ properties(field) }}>
|
||||||
|
{% for option in ([{"name":""}] + frappe.get_all(field.options)) -%}
|
||||||
|
<option value="{{ option.name }}"
|
||||||
|
{{ 'selected="selected"' if value(field, _doc)==option.name else '' }}>
|
||||||
|
{{ option.name }}</option>
|
||||||
|
{%- endfor %}
|
||||||
|
</select>
|
||||||
|
{{ help(field) }}
|
||||||
|
</div>
|
||||||
|
{% elif field.fieldtype=="Select" %}
|
||||||
|
<div class="form-group{% if field.reqd %} has-error{% endif %}">
|
||||||
|
{% if with_label %}{{ label(field) }}{% endif %}
|
||||||
|
<select class="form-control" {{ properties(field) }}>
|
||||||
|
{% for option in field.options.split("\n") -%}
|
||||||
|
<option value="{{ option }}"
|
||||||
|
{{ 'selected="selected"' if value(field, _doc)==option else '' }}>
|
||||||
|
{{ _(option) }}</option>
|
||||||
|
{%- endfor %}
|
||||||
|
</select>
|
||||||
|
{{ help(field) }}
|
||||||
|
</div>
|
||||||
|
{% elif field.fieldtype in ("Text", "Small Text") %}
|
||||||
|
<div class="form-group{% if field.reqd %} has-error{% endif %}">
|
||||||
|
{% if with_label %}{{ label(field) }}{% endif %}
|
||||||
|
{{ help(field) }}
|
||||||
|
<textarea class="form-control" style="height: {% if field.fieldtype=="Small Text" %}150px{% else %}300px;{% endif %}"
|
||||||
|
{{ properties(field) }}>{{ value(field, _doc) }}</textarea>
|
||||||
|
</div>
|
||||||
|
{% elif field.fieldtype == "Text Editor" %}
|
||||||
|
<div class="form-group{% if field.reqd %} has-error{% endif %}">
|
||||||
|
{% if with_label %}{{ label(field) }}{% endif %}
|
||||||
|
{{ help(field) }}
|
||||||
|
<div {{ properties(field) }}>{{ value(field, _doc) }}</div>
|
||||||
|
</div>
|
||||||
|
{% elif field.fieldtype=="Attach" %}
|
||||||
|
<div class="form-group">
|
||||||
|
{% if with_label %}{{ label(field) }}{% endif %}
|
||||||
|
{% if value(field, _doc) -%}
|
||||||
|
<p class="small">
|
||||||
|
<a href="{{ doc.get(field.fieldname) }}" target="blank">
|
||||||
|
{{ _doc.get(field.fieldname) }}
|
||||||
|
</a>
|
||||||
|
<br><button class="btn btn-small btn-default btn-xs
|
||||||
|
change-attach" style="margin-top: 5px;">{{ _("Change") }}</button>
|
||||||
|
</p>
|
||||||
|
{%- endif %}
|
||||||
|
<p class="{{ value(field, _doc) and 'hide' or '' }} attach-input-wrap">
|
||||||
|
<input type="file" style="margin-top: 7px;"
|
||||||
|
{{ properties(field) }}
|
||||||
|
{%- if value(field, _doc) -%} data-value="{{ value(field, _doc) }}"{%- endif -%}>
|
||||||
|
<p class='text-muted small' style='margin-bottom: 20px;'>
|
||||||
|
{{ _("Max attachment size is {0}MB").format(max_attachment_size) }}
|
||||||
|
</p>
|
||||||
|
</p>
|
||||||
|
{{ help(field) }}
|
||||||
|
</div>
|
||||||
|
{% elif field.fieldtype=="Check" %}
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="checkbox">
|
||||||
|
{% if with_label %}
|
||||||
|
<label class='text-muted'>
|
||||||
|
<input type="checkbox" id="{{ field.fieldname }}"
|
||||||
|
{{ properties(field) }}
|
||||||
|
name="{{ field.fieldname }}" data-doctype="{{ field.parent }}"
|
||||||
|
{{ _doc and _doc.get(field.fieldname) and 'checked' or '' }}>
|
||||||
|
{{ _(field.label) }}
|
||||||
|
</label>
|
||||||
|
{% endif %}
|
||||||
|
{{ help(field) }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
{% endmacro %}
|
||||||
|
|
||||||
|
{% macro render_row(field, d=None, hidden=False) %}
|
||||||
|
<tr class="web-form-grid-row {% if hidden %}hidden{% endif %}"
|
||||||
|
{% if d != None %}data-name="{{ d.name or "" }}" data-child-row=1{% endif %}>
|
||||||
|
{% for df in frappe.get_meta(field.options).fields %}
|
||||||
|
{% if df.in_list_view %}
|
||||||
|
<{{ 'th' if d==None else 'td' }} style="width: {{ (df.columns or 2) * 8.3333 }}%;">
|
||||||
|
{% if d!=None %}
|
||||||
|
{{ render_field(df, d, False) }}
|
||||||
|
{% else %}
|
||||||
|
<span class='text-muted small'>{{ _(df.label) }}</span>
|
||||||
|
{% endif %}
|
||||||
|
</{{ 'th' if d.name==None else 'td' }}>
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
<td style="width: 8.3333%">
|
||||||
|
{% if d!=None %}
|
||||||
|
<button class='btn btn-default btn-sm btn-remove'><i class='fa fa-remove'></i></button>
|
||||||
|
{% endif %}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
{% endmacro %}
|
||||||
|
|
||||||
|
{% macro render_table(field) %}
|
||||||
|
{{ label(field) }}
|
||||||
|
<div class='web-form-grid'
|
||||||
|
data-fieldname='{{ field.fieldname }}' data-doctype='{{ field.options }}'>
|
||||||
|
<table class='table table-bordered'>
|
||||||
|
<thead>
|
||||||
|
{{ render_row(field) }}
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
{{ render_row(field, {}, True) }}
|
||||||
|
{% if doc and doc.get(field.fieldname) %}
|
||||||
|
{% for d in doc.get(field.fieldname) %}
|
||||||
|
{{ render_row(field, d) }}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<p><button class='btn btn-default btn-sm btn-add-row'
|
||||||
|
data-fieldname='{{ field.fieldname }}'>{{ _("Add Row") }}</button></p>
|
||||||
|
{% endmacro %}
|
||||||
|
|
||||||
|
<!-- pagination -->
|
||||||
|
{% if not frappe.form_dict.new and layout|len > 1 %}
|
||||||
|
<div class="text-center slide-progress text-extra-muted">
|
||||||
|
{% for page in layout %}
|
||||||
|
<i data-idx="{{ loop.index }}" data-toggle="tooltip" data-placement="top"
|
||||||
|
title="{{ _(page.label) or _("Page {0}").format(loop.index) }}" class="fa-fw
|
||||||
|
{% if loop.index==1 %}fa fa-circle{% else %}fa fa-circle-o{% endif %}"></i>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<form role="form"
|
||||||
|
data-web-form="{{ name }}" data-owner="{{ doc.owner }}">
|
||||||
|
{% if frappe.form_dict.name and web_page_link_text %}
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-9">
|
||||||
|
<p class="text-muted">
|
||||||
|
<a class="btn btn-default btn-sm" href="{{ doc.route }}" target="_blank" rel="noopener noreferrer">
|
||||||
|
{{ web_page_link_text }}</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% for page in layout %}
|
||||||
|
{% set last_page = True if loop.index == layout|len else False %}
|
||||||
|
<div class="web-form-page{% if loop.index > 1 %} hidden{% endif %}"
|
||||||
|
data-idx="{{ loop.index }}"
|
||||||
|
data-label="{{ page.label or _("Page {0}").format(loop.index) }}">
|
||||||
|
{% if page.label %}
|
||||||
|
<h2 class='text-center'>{{ _(page.label) }}</h2>
|
||||||
|
{% endif %}
|
||||||
|
{% if page.description %}
|
||||||
|
<p class='text-center text-muted small'>{{ _(page.description) }}</p>
|
||||||
|
<br>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% for section in page.sections %}
|
||||||
|
<div class="section">
|
||||||
|
{% if section.label %}
|
||||||
|
<h5 class='uppercase'>{{ _(section.label) }}</h5>
|
||||||
|
<span class="help-block small text-muted">{{ _(section.description) }}</span>
|
||||||
|
{% endif %}
|
||||||
|
<div class="row">
|
||||||
|
{% for column in section.columns %}
|
||||||
|
<div class="col-sm-{{ (12 / (section.columns|len))|int }}">
|
||||||
|
{% for field in column %}
|
||||||
|
{% if field.fieldtype=='Table' %}
|
||||||
|
{{ render_table(field) }}
|
||||||
|
{% else %}
|
||||||
|
{{ render_field(field, doc) }}
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
{% if last_page and accept_payment %}
|
||||||
|
<div class="well payment-details">
|
||||||
|
{% if not doc.paid %}
|
||||||
|
{% if payment_button_help %}
|
||||||
|
<div class='text-muted' style='padding-bottom: 15px;'>
|
||||||
|
{{ payment_button_help }}</div>
|
||||||
|
{% endif %}
|
||||||
|
<a class="btn btn-primary btn-payment">
|
||||||
|
{{ payment_button_label or "Pay"}}</a>
|
||||||
|
{% else %}
|
||||||
|
<div>{{ _("Payment Complete") }}</div>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
<!-- page footer buttons -->
|
||||||
|
<div>
|
||||||
|
{% if layout|len > 1 %}
|
||||||
|
<p class='text-muted small text-center'>
|
||||||
|
{{ _("Page {0} of {1}").format(loop.index, layout|len) }}</p>
|
||||||
|
{% endif %}
|
||||||
|
<br>
|
||||||
|
<p class='text-right'>
|
||||||
|
{%- if loop.index > 1 -%}
|
||||||
|
<button class='btn btn-sm btn-default btn-change-section'
|
||||||
|
data-idx="{{ loop.index - 1 }}">
|
||||||
|
{{ _("Previous") }}</button>
|
||||||
|
{%- endif -%}
|
||||||
|
<!-- save/next button -->
|
||||||
|
{% if (loop.index == layout|len or frappe.form_dict.new) %}
|
||||||
|
{% if not read_only %}
|
||||||
|
<button type="submit" class="btn btn-primary btn-sm btn-form-submit">
|
||||||
|
{{ _("Save") }}</button>
|
||||||
|
{% endif %}
|
||||||
|
{% elif layout|len > 1 %}
|
||||||
|
<button class="btn btn-primary btn-sm btn-change-section"
|
||||||
|
data-idx="{{ loop.index + 1 }}">
|
||||||
|
{{ _("Next") }}</button>
|
||||||
|
{% endif %}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
|
{% if allow_comments and not frappe.form_dict.new -%}
|
||||||
|
<div class="comments">
|
||||||
|
<br><br>
|
||||||
|
<h3>{{ _("Comments") }}</h3>
|
||||||
|
{% include 'templates/includes/comments/comments.html' %}
|
||||||
|
</div>
|
||||||
|
{%- endif %}
|
||||||
|
{% endif %}
|
||||||
|
<div class="padding"></div>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block script %}
|
||||||
|
|
||||||
|
<script>
|
||||||
|
window.web_form_settings = {
|
||||||
|
allow_incomplete: {{ allow_incomplete or 0 }},
|
||||||
|
success_link: '<p>{{ success_message or _("Your information has been submitted") }}</p><p><a href="{{ success_url or "/" }}" class="btn btn-sm btn-default">{{ _("Continue") }}</a></p>',
|
||||||
|
datepicker_format: "{{ frappe.date_format }}",
|
||||||
|
web_form_doctype: "{{ doc_type }}",
|
||||||
|
web_form_name: "{{ name }}",
|
||||||
|
is_new: {{ 1 if frappe.form_dict.new else 0 }},
|
||||||
|
is_read_only: {{ 1 if read_only else 0 }},
|
||||||
|
doc_name: "{{ frappe.form_dict.name or "" }}",
|
||||||
|
login_required: {{ 1 if login_required else 0 }},
|
||||||
|
max_attachment_size:{{ max_attachment_size }},
|
||||||
|
moment_date_format: "{{ frappe.date_format.upper() }}"
|
||||||
|
}
|
||||||
|
{% if row_template %}web_form_settings.web_form_row_template = "{{ row_template }}";{% endif %}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script type="text/javascript" src="/assets/js/web_form.min.js"></script>
|
||||||
|
<script>
|
||||||
|
{% if script is defined %}
|
||||||
|
{{ script }}
|
||||||
|
{% endif %}
|
||||||
|
</script>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block style %}
|
||||||
|
<link type="text/css" rel="stylesheet" href="/assets/css/web_form.css">
|
||||||
|
<link href="/assets/foundation/css/bootstrap-for-webform.css" rel="stylesheet">
|
||||||
|
<style>
|
||||||
|
{% if style is defined %}{{ style }}{% endif %}
|
||||||
|
</style>
|
||||||
|
{% endblock %}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<div>
|
||||||
|
<a href={{ route }}>{{ title }}</a>
|
||||||
|
</div>
|
||||||
|
<!-- this is a sample default list template -->
|
||||||
@@ -1,19 +1,29 @@
|
|||||||
{% extends "templates/web.html" %}
|
{% extends "templates/base.html" %}
|
||||||
|
|
||||||
{% block title %}About ERPNext Foundation{% endblock %}
|
{% block title %}About ERPNext Foundation{% endblock %}
|
||||||
|
|
||||||
{% from "foundation/templates/includes/macros.html" import media %}
|
{% from "foundation/templates/includes/macros.html" import media %}
|
||||||
|
|
||||||
{% block page_content %}
|
{% block content%}
|
||||||
<section>
|
<div class="page">
|
||||||
{{ doc.company_introduction }}
|
<section class='top-spacer hero text-center about'>
|
||||||
</section>
|
<div class="container">
|
||||||
<section>
|
<img class="about-img bottom-spacer" src="/assets/foundation/img/community-colored.jpg">
|
||||||
<h3>People</h3>
|
<h1 class="header1">ERPNext Foundation</h1>
|
||||||
{% for member in doc.team_members %}
|
<p class="intro-copy text-medium">We are a Non Profit Foundation representing a community of ERPNext Users, Developers and Service Providers. Our goal is to provide a platform for the ERPNext Community to
|
||||||
{{ media(member.full_name, member.bio, member.image_link) }}
|
come together, join hands and build assets to help build and enhance ERPNext around the world.</p><p class="intro-copy text-medium"> ERPNext Foundation aims to be a community driven organization and run in a transparent manner. If you want to be more involved in the ERPNext Community, read the <a href="/faq" class="secondary-link" target="_blank">FAQ</a>.
|
||||||
{% endfor %}
|
</div>
|
||||||
<p><a href="/contact">Want to talk to someone in the foundation? Get in touch</a></p>
|
</section>
|
||||||
|
<div class="page-content">
|
||||||
</section>
|
<section class="container">
|
||||||
|
<hr>
|
||||||
|
<h1>{{ doc.team_members_heading }}</h1>
|
||||||
|
{% for member in doc.team_members %}
|
||||||
|
{{ media(member.full_name, member.bio, member.image_link) }}
|
||||||
|
{% endfor %}
|
||||||
|
<p><a href="/contact">Want to talk to someone in the foundation? Get in touch</a></p>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|||||||
@@ -40,7 +40,6 @@ If perpetual inventory system is enabled, additional costs will be booked in "Ex
|
|||||||
|
|
||||||
<img class="screenshot" alt="Additional Costs General Ledger" src="{{docs_base_url}}/assets/img/stock/additional-costs-general-ledger.png">
|
<img class="screenshot" alt="Additional Costs General Ledger" src="{{docs_base_url}}/assets/img/stock/additional-costs-general-ledger.png">
|
||||||
|
|
||||||
|
|
||||||
> **Note:** To update Stock from a spreadsheet, see [Stock Reconciliation]({{doc_base_url}}/user/manual/en/setting-up/stock-reconciliation-for-non-serialized-item.html).
|
> **Note:** To update Stock from a spreadsheet, see [Stock Reconciliation]({{doc_base_url}}/user/manual/en/setting-up/stock-reconciliation-for-non-serialized-item.html).
|
||||||
|
|
||||||
{next}
|
{next}
|
||||||
|
|||||||
65
foundation/www/get-started.html
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
{% extends "foundation/templates/base.html" %}
|
||||||
|
{% block title %} Get Started - ERPNext Foundation{% endblock %}
|
||||||
|
{% block content %}
|
||||||
|
<section class="feature text-center">
|
||||||
|
<div class="container">
|
||||||
|
<p class="text-center"><a class="">
|
||||||
|
<img class="grid-images" src="/assets/foundation/img/bench-logo.png">
|
||||||
|
</a></p>
|
||||||
|
<h1 class="header-1 text-center">Install ERPNext with Bench</h1>
|
||||||
|
<p class="text-medium text-light text-center">Bench is our in-house tool to install and manage ERPNext.</p>
|
||||||
|
<a class="primary-link text-medium" target="_blank" href="https://github.com/frappe/bench#manual-install">Read the instructions on our wiki</a>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="feature text-center">
|
||||||
|
<div class="container">
|
||||||
|
<p class="text-center"><a class="">
|
||||||
|
<img class="feature-img bottom-spacer" src="/assets/foundation/img/cloud.png">
|
||||||
|
</a></p>
|
||||||
|
<h1 class="header-1">Get ERPNext on cloud</h1>
|
||||||
|
<p class="text-medium intro-copy text-light">Start right away with a free trial account </br>and get priority support.</p>
|
||||||
|
<a class="button button-primary text-center" href="https://erpnext.com/pricing?source=org">Free 30 Day Trial</a></p>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="feature gray-bg">
|
||||||
|
<div class="container">
|
||||||
|
<h1 class="header-1 text-center">Virtual Machine Images</h1>
|
||||||
|
<p class='text-medium text-light text-center bottom-spacer-4'>Download a pre-installed Virtual Box Images</p>
|
||||||
|
<ul class="list-unstyled grid-of-three">
|
||||||
|
<li class="list-items grid-items">
|
||||||
|
<a class="primary-links grid-boxes saturate" href="http://build.erpnext.com/ERPNext-Production.ova">
|
||||||
|
<img class="grid-images" src="/assets/foundation/img/vm-production.png" alt="Download ERPNext Production Image">
|
||||||
|
</a>
|
||||||
|
<h2 class="header-3">Download Production Image</h2>
|
||||||
|
<p class="text-muted">Stable build for Production use<br>(approx 1.5GB) | <a href="http://build.erpnext.com/ERPNext-Production.ova.md5">MD5</a></p>
|
||||||
|
</li>
|
||||||
|
<li class="list-items grid-items">
|
||||||
|
<a class="primary-links grid-boxes saturate" href="http://build.erpnext.com/ERPNext-Dev.ova">
|
||||||
|
<img class="grid-images" src="/assets/foundation/img/vm-development.png" alt="Download ERPNext Development Image">
|
||||||
|
</a>
|
||||||
|
<h2 class="header-3">Download Development Image</h2>
|
||||||
|
<p class="text-muted">Bleeding edge build for development only<br>(approx 1.5GB) | <a href="http://build.erpnext.com/ERPNext-Dev.ova.md5">MD5</a>
|
||||||
|
</p>
|
||||||
|
</li>
|
||||||
|
<li class="list-items grid-items">
|
||||||
|
<a class="primary-links grid-boxes saturate" href="http://build.erpnext.com/ERPNext-Vagrant.box">
|
||||||
|
<img class="grid-images" src="/assets/foundation/img/vm-dev-vagrant.png" alt="Download ERPNext Vagrant Box">
|
||||||
|
</a>
|
||||||
|
<h2 class="header-3">Download Vagrant Box</h2>
|
||||||
|
<p class="text-muted">Bleeding edge Vagrant box for development only<br>(approx 1.5GB) | <a href="http://build.erpnext.com/ERPNext-Vagrant.box.md5">MD5</a>
|
||||||
|
</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="feature text-center">
|
||||||
|
<div class="container">
|
||||||
|
<p class="text-center"><a class="">
|
||||||
|
<img class="feature-img bottom-spacer" src="/assets/foundation/img/service-providers.png">
|
||||||
|
</a></p>
|
||||||
|
<h1 class="header-1">Contact Service Providers</h1>
|
||||||
|
<p class="text-medium intro-copy text-light">For additional customisations, implementation and training requirements.</p>
|
||||||
|
<a class="primary-link text-medium text-center" href="/service-providers">See the list of all Service Providers</a>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
{% endblock %}
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
.page-content {
|
|
||||||
padding-top: 0px;
|
|
||||||
margin-top: -3px;
|
|
||||||
}
|
|
||||||
|
|
||||||
section {
|
|
||||||
padding-bottom: 15px;
|
|
||||||
border-bottom: 1px solid #e1e9f0;
|
|
||||||
}
|
|
||||||
|
|
||||||
section h3 {
|
|
||||||
margin-bottom: 0px;
|
|
||||||
}
|
|
||||||
section p.small {
|
|
||||||
margin-top: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
section:last-child, .hero {
|
|
||||||
border-bottom: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.section-grid .col-sm-4 {
|
|
||||||
padding-top: 10px;
|
|
||||||
padding-bottom: 10px;
|
|
||||||
}
|
|
||||||
@@ -1,192 +1,107 @@
|
|||||||
{% extends "templates/web.html" %}
|
{% extends "foundation/templates/base.html" %}
|
||||||
{% block title %}ERPNext Foundation{% endblock %}
|
{% block title %}ERPNext Foundation{% endblock %}
|
||||||
{% block page_content %}
|
{% block content %}
|
||||||
<section class='hero text-center'>
|
<section class='feature hero text-center'>
|
||||||
<div class='text-center'>
|
<div class="container">
|
||||||
<img src='/assets/foundation/img/hero-illustration-erpnext.png'>
|
<img class="hero-illustration bottom-spacer" src='/assets/foundation/img/hero-illustration-erpnext.png' alt="ERP software for Everybody">
|
||||||
</div>
|
<h1 class="header-1">ERP for Everybody</h1>
|
||||||
<h1>ERP for Everybody</h1>
|
<p class='intro-copy text-medium text-light'>World's leading fully open source ERP software that helps you stay in control of your business</p>
|
||||||
<p class='lead'>Do-It-Yourself Business Management System that will help you stay in control</p>
|
<a class="button button-primary" href="/get-started.html">Get Started</a>
|
||||||
<p class='lead text-muted'>100% Open Source</p>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
<section>
|
<section class="feature gray-bg left-aligned">
|
||||||
<h3>Standard Modules</h3>
|
<div class="container">
|
||||||
<p class='text-muted small'>ERPNext comes with hundreds of features and is very customizable</p>
|
<h2 class="header-1 bottom-spacer-4 text-center">Industries</h1>
|
||||||
<div class='row section-grid'>
|
<ul class="list-unstyled grid-of-four">
|
||||||
<div class=col-sm-4>
|
<li class="list-items grid-items">
|
||||||
<a href="docs/user/manual/en/accounts">Accounting</a>
|
<a class="primary-links grid-boxes" href="/docs/user/manual/en/manufacturing">
|
||||||
</div>
|
<img class="grid-images" src="/assets/foundation/img/manufacturing-domain.png" alt="ERP software for manufacturing"><span>Manufacturing</span>
|
||||||
<div class=col-sm-4>
|
</a>
|
||||||
<a href="/docs/user/manual/en/CRM">CRM</a>
|
</li>
|
||||||
</div>
|
<li class="list-items">
|
||||||
<div class=col-sm-4>
|
<a class="primary-links grid-boxes" href="/docs/user/manual/en/manufacturing">
|
||||||
<a href="/docs/user/manual/en/stock">Inventory</a>
|
<img class="grid-images" src="/assets/foundation/img/services.png" alt="ERP software for Services"><span>Services</span>
|
||||||
</div>
|
</a>
|
||||||
<div class=col-sm-4>
|
</li>
|
||||||
<a href="/docs/user/manual/en/selling">Selling (Sales)</a>
|
<li class="list-items">
|
||||||
</div>
|
<a class="primary-links grid-boxes" href="/docs/user/manual/en/accounts/point-of-sale-pos-invoice">
|
||||||
<div class=col-sm-4>
|
<img class="grid-images" src="/assets/foundation/img/retail.png" alt="ERP software for retail"><span>Retail</span></a>
|
||||||
<a href="/docs/user/manual/en/buying">Buying (Purchasing)</a>
|
</li>
|
||||||
</div>
|
<li class="list-items">
|
||||||
<div class=col-sm-4>
|
<a class="primary-links grid-boxes" href="/docs/user/manual/en/stock">
|
||||||
<a href="/docs/user/manual/en/hr">Human Resources</a>
|
<img class="grid-images" src="/assets/foundation/img/distribution.png" alt="ERP software for Distribution"><span>Distribution</span></a>
|
||||||
</div>
|
</li>
|
||||||
<div class=col-sm-4>
|
<li class="list-items">
|
||||||
<a href="/docs/user/manual/en/website">Website / E-Commerce</a>
|
<a class="primary-links grid-boxes" href="/docs/user/manual/en/education">
|
||||||
</div>
|
<img class="grid-images" src="/assets/foundation/img/education.png" alt="ERP software for Education"><span>Education</span></a>
|
||||||
<div class=col-sm-4>
|
</li>
|
||||||
<a href="/docs/user/manual/en/portal">Customer / Supplier Portal</a>
|
<li class="list-items">
|
||||||
</div>
|
<a class="primary-links grid-boxes" href="/docs/user/manual/en/agriculture">
|
||||||
<div class=col-sm-4>
|
<img class="grid-images" src="/assets/foundation/img/agriculture.png" alt="ERP software for Agriculture"><span>Agriculture</span></a>
|
||||||
<a href="/docs/user/manual/en/support">Customer Support</a>
|
</li>
|
||||||
</div>
|
<li class="list-items">
|
||||||
<div class=col-sm-4>
|
<a class="primary-links grid-boxes" href="/docs/user/manual/en/healthcare">
|
||||||
<a href="/docs/user/manual/en/customize-erpnext">Customization</a>
|
<img class="grid-images" src="/assets/foundation/img/healthcare.png" alt="ERP software for Healthcare"><span>Healthcare</span></a>
|
||||||
</div>
|
</li>
|
||||||
</div>
|
<li class="list-items">
|
||||||
<p></p>
|
<a class="primary-links grid-boxes" href="/docs/user/manual/en/non_profit">
|
||||||
</section>
|
<img class="grid-images" src="/assets/foundation/img/non-profit.png" alt="ERP software for Non-Profits"><span>Non Profit</span></a>
|
||||||
<section>
|
</li>
|
||||||
<h3>Domains</h3>
|
</ul>
|
||||||
<p class='text-muted small'>Ready features for multiple domains that you can start using today</p>
|
|
||||||
<div class='row section-grid'>
|
|
||||||
<div class=col-sm-4>
|
|
||||||
<a href="/docs/user/manual/en/manufacturing">Manufacturing</a>
|
|
||||||
</div>
|
|
||||||
<div class=col-sm-4>
|
|
||||||
<a href="/docs/user/manual/en/projects">Services</a>
|
|
||||||
</div>
|
|
||||||
<div class=col-sm-4>
|
|
||||||
<a href="/docs/user/manual/en/accounts/point-of-sale-pos-invoice">Retail</a>
|
|
||||||
</div>
|
|
||||||
<div class=col-sm-4>
|
|
||||||
<a href="/docs/user/manual/en/stock">Distribution</a>
|
|
||||||
</div>
|
|
||||||
<div class=col-sm-4>
|
|
||||||
<a href="/docs/user/manual/en/schools">Education</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
<section>
|
<section class="feature community-bg text-white">
|
||||||
<h3>Community</h3>
|
<div class="container">
|
||||||
<p class='text-muted small'>Use and build ERPNext with a community of over 5000 strong</p>
|
<div class="text-center">
|
||||||
<div class='row section-grid'>
|
<h1 class="header-1">ERPNext Foundation</h1>
|
||||||
<div class=col-sm-4>
|
<p class="intro-copy text-medium">ERPNext Foundation is a community of ERPNext users, developers and service providers. The goal of the ERPNext Foundation is to provide a platform for the ERPNext Community to come together, join hands and build assets to help build and enhance ERPNext around the world.</p>
|
||||||
<a href="https://discuss.erpnext.com">User Forum</a>
|
<a href="/members/details" class="button button-secondary">Become a Member</a>
|
||||||
</div>
|
</div>
|
||||||
<div class=col-sm-4>
|
</div>
|
||||||
<a href="/service-providers">Service Providers</a>
|
|
||||||
</div>
|
|
||||||
<div class=col-sm-4>
|
|
||||||
<a href="/bounties">Bounties</a>
|
|
||||||
</div>
|
|
||||||
<div class=col-sm-4>
|
|
||||||
<a href="/apps">Apps</a>
|
|
||||||
</div>
|
|
||||||
<div class=col-sm-4>
|
|
||||||
<a href="/erpnext-jobs">ERPNext Jobs</a>
|
|
||||||
</div>
|
|
||||||
<div class=col-sm-4>
|
|
||||||
<a href="https://github.com/frappe/erpnext">GitHub (ERPNext)</a>
|
|
||||||
</div>
|
|
||||||
<div class=col-sm-4>
|
|
||||||
<a href="https://github.com/frappe/frappe">GitHub (Frappé Framework)</a>
|
|
||||||
</div>
|
|
||||||
<div class=col-sm-4>
|
|
||||||
<a href="https://gitter.im/frappe/erpnext">Chat (Gitter)</a>
|
|
||||||
</div>
|
|
||||||
<div class=col-sm-4>
|
|
||||||
<a href="https://twitter.com/erpnext">Twitter (News / Updates)</a>
|
|
||||||
</div>
|
|
||||||
<div class=col-sm-4>
|
|
||||||
<a href="https://frappe.io">Frappé Technologies</a>
|
|
||||||
</div>
|
|
||||||
<div class=col-sm-4>
|
|
||||||
<a href="https://frappe.io/blog">Frappé Blog</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
</section>
|
||||||
|
<section class="feature">
|
||||||
<section>
|
<div class="container">
|
||||||
<h3>Get Started</h3>
|
<div class="three-column left-aligned">
|
||||||
<p class='text-muted small'>Explore or self-implement ERPNext </p>
|
<div class="columns">
|
||||||
<div class='row section-grid'>
|
<h1 class="header-2">Events & Meetups</h1>
|
||||||
<div class=col-sm-4>
|
<ul class="bulleted-list list-circle">
|
||||||
<a href="https://erpnext.com">ERPNext.com (30 day free trial)</a>
|
{# get first three events from portal events doctype #}
|
||||||
</div>
|
{% for e in events[:3] %}
|
||||||
<div class=col-sm-4>
|
<li>
|
||||||
<a href="https://demo.erpnext.com">Live Demo</a>
|
<a href="{{ e.route }}" class="secondary-link"><b>{{ e.event_title }}</b><br>{{ frappe.format_date(e.event_date, "medium") }}</a>
|
||||||
</div>
|
</li>
|
||||||
<div class=col-sm-4>
|
{% endfor %}
|
||||||
<a href="https://erpnext.com/download">Download Virtual Machine</a>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class=col-sm-4>
|
<div class="columns">
|
||||||
<a href="https://github.com/frappe/bench">Bench Install</a>
|
<h1 class="header-2">Help Us Improve</h1>
|
||||||
</div>
|
<ul class="bulleted-list list-circle">
|
||||||
</div>
|
<li>
|
||||||
</section>
|
<a href="https://github.com/frappe/erpnext/tree/develop/erpnext/docs" class="secondary-link">Write Documentation</a>
|
||||||
<section>
|
</li>
|
||||||
<h3>Documentation</h3>
|
<li>
|
||||||
<p class='text-muted small'>Learn to use or develop on ERPNext</p>
|
<a href="https://charts.erpnext.com/" class="secondary-link">Help build Chart of Accounts</a>
|
||||||
<div class='row section-grid'>
|
</li>
|
||||||
<div class=col-sm-4>
|
<li>
|
||||||
<a href="/docs">ERPNext User Manual</a>
|
<a href="https://translate.erpnext.com/" class="secondary-link">Help Us Translate</a>
|
||||||
</div>
|
</li>
|
||||||
<div class=col-sm-4>
|
</ul>
|
||||||
<a href="https://frappe.io/docs/user/">Frappé Framework Tutorial</a>
|
</div>
|
||||||
</div>
|
<div class="columns">
|
||||||
<div class=col-sm-4>
|
<h1 class="header-2">Need Help?</h1>
|
||||||
<a href="https://www.youtube.com/c/erpnext">YouTube</a>
|
<ul class="bulleted-list list-circle">
|
||||||
</div>
|
<li>
|
||||||
<div class=col-sm-4>
|
<a href="/docs/user/manual" class="secondary-link">User Manual</a>
|
||||||
<a href="https://frappe.io/docs/user/en/guides/integration/rest_api">REST API</a>
|
</li>
|
||||||
</div>
|
<li>
|
||||||
<div class=col-sm-4>
|
<a href="https://discuss.erpnext.com/" class="secondary-link">Ask in our forum</a>
|
||||||
<a href="/docs/current">ERPNext Models and API</a>
|
</li>
|
||||||
</div>
|
<!-- <li>
|
||||||
<div class=col-sm-4>
|
<a href="" class="secondary-link">Get Paid Support</a>
|
||||||
<a href="https://frappe.io/docs/current">Frappé Models and API</a>
|
</li>-->
|
||||||
</div>
|
</ul>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</div>
|
||||||
<section>
|
|
||||||
<h3>Localize</h3>
|
|
||||||
<p class='text-muted small'>Help in updating translations and accounting features specific to your country or region</p>
|
|
||||||
<div class='row section-grid'>
|
|
||||||
<div class=col-sm-4>
|
|
||||||
<a href="https://translate.erpnext.com">Translation Portal</a>
|
|
||||||
</div>
|
|
||||||
<div class=col-sm-4>
|
|
||||||
<a href="https://charts.erpnext.com">Chart of Accounts</a>
|
|
||||||
</div>
|
|
||||||
<div class=col-sm-4>
|
|
||||||
<a href="/docs/user/manual/en/regional">Regional Features</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
<section>
|
|
||||||
<h3>Foundation</h3>
|
|
||||||
<p class='text-muted small'>Join the not-for-profit that brings the community together on a common platform</p>
|
|
||||||
<div class='row section-grid'>
|
|
||||||
<div class=col-sm-4>
|
|
||||||
<a href="/members">Memberships</a>
|
|
||||||
</div>
|
|
||||||
<div class=col-sm-4>
|
|
||||||
<a href="/chapters">Chapters</a>
|
|
||||||
</div>
|
|
||||||
<div class=col-sm-4>
|
|
||||||
<a href="/login">Member Login</a>
|
|
||||||
</div>
|
|
||||||
<div class=col-sm-4>
|
|
||||||
<a href="/conf">Conferences</a>
|
|
||||||
</div>
|
|
||||||
<div class=col-sm-4>
|
|
||||||
<a href="/about">About</a>
|
|
||||||
</div>
|
|
||||||
<div class=col-sm-4>
|
|
||||||
<a href="/contact">Contact</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
</section>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
10
foundation/www/index.py
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# See license.txt
|
||||||
|
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
import frappe
|
||||||
|
|
||||||
|
def get_context(context):
|
||||||
|
out = {
|
||||||
|
"events": frappe.get_all("Portal Event", fields=["event_title", "event_date", "details", "route"], filters=[["published", "=", 1]])
|
||||||
|
}
|
||||||
|
return out
|
||||||
@@ -33,4 +33,4 @@
|
|||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -7,12 +7,7 @@
|
|||||||
{% block page_content %}
|
{% block page_content %}
|
||||||
<section>
|
<section>
|
||||||
<h1>Memberships</h1>
|
<h1>Memberships</h1>
|
||||||
<p class='lead'>Be a Part of the ERPNext Foundation</p>
|
<p>Be a Part of the ERPNext Foundation. The ERPNext Foundation aims to be driven by its members. By becoming a members, you get
|
||||||
</section>
|
|
||||||
<section>
|
|
||||||
<h3>Introduction</h3>
|
|
||||||
<p>
|
|
||||||
The ERPNext Foundation aims to be driven by its members. By becoming a members, you get
|
|
||||||
a preferred listing on the ERPNext Job Board and access to incoming requests for implementation
|
a preferred listing on the ERPNext Job Board and access to incoming requests for implementation
|
||||||
and customization jobs<br>
|
and customization jobs<br>
|
||||||
</p>
|
</p>
|
||||||
|
|||||||
@@ -1,9 +0,0 @@
|
|||||||
.page_content {
|
|
||||||
max-width: 700px;
|
|
||||||
font-size: 16px;
|
|
||||||
line-height: 1.8em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.page_content li {
|
|
||||||
margin: 10px 0px;
|
|
||||||
}
|
|
||||||
@@ -1,95 +1,93 @@
|
|||||||
{% extends "templates/web.html" %}
|
{% extends "foundation/templates/web.html" %}
|
||||||
|
|
||||||
{% from "foundation/templates/includes/macros.html" import media %}
|
{% from "foundation/templates/includes/macros.html" import media %}
|
||||||
|
|
||||||
{% macro gold_member(m) %}
|
{% macro gold_member(m) %}
|
||||||
<div class='gold-member'>
|
<div class="media {{ 'text-muted' if m.placeholder else '' }}" style="cursor: pointer;" onclick="location.href='{{ m.route }}'">
|
||||||
<div class="media with-border clickable {{ 'text-muted' if m.placeholder else '' }}" style="cursor: pointer;" onclick="location.href='{{ m.route }}'">
|
|
||||||
<div class="media-left">
|
<div class="media-left">
|
||||||
<a href="{{ m.route }}">
|
<a href="{{ m.route }}">
|
||||||
<img class="media-object" src="{{ m.image or '/assets/foundation/img/gold.png' }}"
|
<img class="thumb-small media-object" src="{{ m.image or '/assets/foundation/img/gold.png' }}">
|
||||||
style="max-width: 72px;">
|
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="media-body">
|
<div class="media-body">
|
||||||
<h4 class="media-heading">{{ m.title }}</h4>
|
<h4 class="media-heading">{{ m.title }}</h4>
|
||||||
<p><span class=label>Gold Member</span></p>
|
|
||||||
{{ m.introduction }}
|
{{ m.introduction }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
{% endmacro %}
|
{% endmacro %}
|
||||||
|
|
||||||
{% macro silver_member(m) %}
|
{% macro silver_member(m) %}
|
||||||
<div class='col-sm-4'>
|
<div class="box clickable {{ 'text-muted' if m.placeholder else '' }}"
|
||||||
<div class="silver-member with-border clickable {{ 'text-muted' if m.placeholder else '' }}"
|
|
||||||
style="cursor: pointer;" onclick="location.href='{{ m.route }}'">
|
style="cursor: pointer;" onclick="location.href='{{ m.route }}'">
|
||||||
<h4>{{ m.title }}</h4>
|
<h4>{{ m.title }}</h4>
|
||||||
<p><span class=label>Silver Member</span></p>
|
<p>{{ m.introduction | truncate(140) }}</p>
|
||||||
<p>{{ m.introduction[:100] }}</p>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
{% endmacro %}
|
{% endmacro %}
|
||||||
|
|
||||||
{% macro show_member(s) %}
|
{% macro show_member(s) %}
|
||||||
<div class='col-sm-4' style='height: 130px; padding-bottom: 30px'>
|
<div class='individual-member columns'>
|
||||||
|
<h3><a class='secondary-link bold' href="/{{ s.route }}">{{ s.title and s.title[:25] }}</a></h3>
|
||||||
<p>
|
<p>
|
||||||
<a class='bold' href="/{{ s.route }}">{{ s.title and s.title[:25] }}</a><br>
|
{{ s.introduction and s.introduction | truncate(140) }}
|
||||||
{{ s.introduction and s.introduction[:100] }}
|
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
{% endmacro %}
|
{% endmacro %}
|
||||||
|
|
||||||
{% block page_content %}
|
{% block page_content %}
|
||||||
<h1 class='media-heading' style='margin-bottom: 30px;'>{{ title }}</h1>
|
|
||||||
{% if form_dict.country %}
|
{% if form_dict.country %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<section>
|
<section class="gold bottom-spacer-4">
|
||||||
|
<h2 class='media-heading'>Gold Members</h2>
|
||||||
{% for m in gold_members %}
|
{% for m in gold_members %}
|
||||||
{{ gold_member(m) }}
|
{{ gold_member(m) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% if has_gold_member %}
|
{% if has_gold_member %}
|
||||||
<p><a class='text-muted' href='/members'>
|
<p class="top-spacer text-center"><a class='text-muted' href='/members'>
|
||||||
Become a Gold Member and get your company featured here</a></p>
|
Become a Gold Member and get your company featured here</a></p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</section>
|
</section>
|
||||||
<section>
|
|
||||||
<div class='row'>
|
<section class="silver bottom-spacer-4">
|
||||||
|
<h2 class='media-heading'>Silver Members</h2>
|
||||||
|
<div class="grid-of-three">
|
||||||
{% for m in silver_members %}
|
{% for m in silver_members %}
|
||||||
{{ silver_member(m) }}
|
{{ silver_member(m) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
|
{% if has_silver_member %}
|
||||||
|
<p class="top-spacer text-center"><a class='text-muted' href='/members'>
|
||||||
|
Become a Silver Member and get your company featured here</a></p>
|
||||||
|
{% endif %}
|
||||||
</section>
|
</section>
|
||||||
<section>
|
<section class="bottom-spacer-4">
|
||||||
<h2>Individual Members</h2>
|
<h2>Individual Members</h2>
|
||||||
<div class='row'>
|
<div class="grid-of-three">
|
||||||
{% for s in individual_members %}
|
{% for s in individual_members %}
|
||||||
{{ show_member(s) }}
|
{{ show_member(s) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
{% if form_dict.country %}
|
{% if form_dict.country %}
|
||||||
<section>
|
<section class="bottom-spacer-4">
|
||||||
<h2>Other Service Providers</h2>
|
<h2>Other Service Providers</h2>
|
||||||
<div class='row'>
|
<div class="grid-of-three">
|
||||||
{% for s in service_providers %}
|
{% for s in service_providers %}
|
||||||
{{ show_member(s) }}
|
{{ show_member(s) }}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
{% else %}
|
{% else %}
|
||||||
<section>
|
<section>
|
||||||
<h2>Select by country</h2>
|
<h2>Select by country</h2>
|
||||||
<div class='row'>
|
<div class='four-column flex-wrap'>
|
||||||
{% for c in countries %}
|
{% for c in countries %}
|
||||||
<div class='col-sm-4'>
|
<div class='countries columns'>
|
||||||
<p>
|
<p>
|
||||||
<a href="/service-providers?country={{ c[0] }}">{{ c[0] }} ({{ c[1] }})</a>
|
<a class="secondary-link" href="/service-providers?country={{ c[0] }}">{{ c[0] }} ({{ c[1] }})</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% endblock %}
|
||||||
{% endblock %}
|
|
||||||
|
|||||||
@@ -38,17 +38,17 @@ def get_context(context):
|
|||||||
context.silver_members = frappe.get_all('Service Provider', 'title, introduction, `image`, route',
|
context.silver_members = frappe.get_all('Service Provider', 'title, introduction, `image`, route',
|
||||||
filters, debug=1)
|
filters, debug=1)
|
||||||
|
|
||||||
# round to 3 columns
|
if context.silver_members:
|
||||||
for i in xrange(3 - (len(context.silver_members) % 3)):
|
context.has_silver_member = 1
|
||||||
|
else:
|
||||||
context.silver_members.append(dict(
|
context.silver_members.append(dict(
|
||||||
title='Your Company',
|
title='Your Company',
|
||||||
introduction='Become a Silver Member today and get your company featured here',
|
introduction='Become a silver Member today and get your company featured here',
|
||||||
image='/assets/foundation/img/silver.png',
|
image='/assets/foundation/img/silver.png',
|
||||||
route='/members',
|
route='/members',
|
||||||
placeholder=True
|
placeholder=True
|
||||||
))
|
))
|
||||||
|
|
||||||
|
|
||||||
context.individual_members = []
|
context.individual_members = []
|
||||||
individual_members = [d.name for d in frappe.get_all('Member',
|
individual_members = [d.name for d in frappe.get_all('Member',
|
||||||
dict(membership_type='Individual'))]
|
dict(membership_type='Individual'))]
|
||||||
|
|||||||
@@ -1,9 +0,0 @@
|
|||||||
.page_content {
|
|
||||||
max-width: 700px;
|
|
||||||
font-size: 16px;
|
|
||||||
line-height: 1.8em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.page_content li {
|
|
||||||
margin: 10px 0px;
|
|
||||||
}
|
|
||||||