first commit

This commit is contained in:
Rushabh Mehta
2017-02-28 18:42:09 +05:30
commit 6a8e3b6a45
78 changed files with 2768 additions and 0 deletions

View File

29
foundation/www/about.html Normal file
View File

@@ -0,0 +1,29 @@
{% extends "templates/web.html" %}
{% block title %}About ERPNext Foundation{% endblock %}
{% from "foundation/templates/includes/macros.html" import media %}
{% block content %}
<section>
<h1>About ERPNext Foundation</h1>
<p class='lead'>Community of ERPNext Users, Developers and Service Providers</p>
</section>
<section>
<h3>Goals</h3>
<p>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. ERPNext Foundation aims to be a community driven organization and run in a transparent</p>
</section>
<section>
<h3>People</h3>
{{ media("Jay Ram, CEO",
"Jay is a Mechanical Engineer with an MBA (PGDM) from IIM, Bangalore and has worked in Information Security and Risk areas for large enterprises. He is passionate about helping small and medium businesses overcome thier challenges to grow and thinks ERPNext and his skills and interests are a perfect alignment for what what he wants to do with the rest of his life. In his spare time he plays golf, rides (Bicycling and motorbiking) and travels and would like to combine all his interests on his trips - ERPNext, riding and golf.",
"https://discuss.erpnext.com/user_avatar/discuss.erpnext.com/jayram/240/6872_1.png") }}
{{ media("Rushabh Mehta, Director", "Rushabh is the CEO of Frappé Technologies Private Limited and one of the original creators of Frappé Framework and ERPNext. He built ERPNext for his family's business and then later published it as an open source project. Rushabh is an Industrial Engineer by training but a software developer by profession. In his free time, he likes to read and spend time relaxing at home.",
"https://discuss.erpnext.com/user_avatar/discuss.erpnext.com/rmehta/240/4147_1.png") }}
{{ media("Nabin Hait, Director", "Nabin is the Chief Operating Officer of Frappé Technologies Private Limited and the lead developer at ERPNext. Nabin is responsible for managing the ERPNext project and managing the team at Frappé. Nabin is a great cook and likes cooking and watching movies in his free time.",
"https://discuss.erpnext.com/user_avatar/discuss.erpnext.com/nabinhait/240/7_1.png") }}
{{ media("Prakash Hodage, Administrative Officer", "Prakash is the accountant and administrative officer of Frappé Technologies Private Limited. He is the person responsible for getting the foundation registered. Prakash has extensive experience in managing accounting and administration and is an expert ERPNext user, also handling user support from time to time. In his free time, Prakash loves to read and help people around him.",
"https://discuss.erpnext.com/user_avatar/discuss.erpnext.com/prakash/240/2703_1.png") }}
</section>
{% endblock %}

41
foundation/www/index.html Normal file
View File

@@ -0,0 +1,41 @@
{% extends "templates/web.html" %}
{% block title %}ERPNext Foundation{% endblock %}
{% block content %}
<div class='row-full'>
<img src="/assets/foundation/img/community.png" class='img-responsive'>
</div>
<section>
<h1>ERPNext Foundation</h1>
<p class='lead'>Free and Open Source Business Software for Millions of Entrepreneurs Worldwide</p>
</section>
<section>
<h3>What is ERPNext?</h3>
<p>ERPNext is a modern, fully featured open source Enterprise Resource Planning (ERP) system that is designed for small and medium sized businesses.
<ul>
<li>ERPNext includes modules to help you manage Financial Accounting, Sales and CRM, Billing, Manufacturing, Inventory, HR and Payroll, Projects, E-Commerce and much more.
<li>ERPNext is designed to be <i>web-first</i> and is built for entreprenuers who want modern, clean design and great usablity. It is deeply integrated with email and other services and is designed to be deployed and managed on any remote server.
<li>ERPNext is <i>100% free and open source</i> (there are no paid modules) and is available under the GNU General Public License.
</ul>
</section>
<section>
<h3>What is the ERPNext Foundation?</h3>
<p>ERPNext Foundation is a not-for-profit company registered with the objective of building and enhancing ERPNext as an open source project. The ERPNext Foundation is funded by annual memberships of individuals and companies who use ERPNext or support it.</p>
</section>
<section>
<h3>How do I Get Started?</h3>
<p>If you are looking to self host ERPNext, you should start with a remote Virtual Machine (VM) and install ERPNext using the Easy Install Script.</p>
<p>Alternatively you can download the Virtual Machine and run it on your desktop</p>
<p>You can also sign up for a free one user account on ERPNext hosting services like erpnext.com</p>
</section>
<section>
<h3>Get Involved</h3>
<p>ERPNext is built by feedback and contributions of hundreds of companies and developers and is backed by an active community. Be a part of the community that shapes ERPNext and help millions of small businesses get the software they deserve.</p>
<p><a href="/members" class="button green-btn">Become A Member</a></p>
</section>
{% endblock %}

View File

@@ -0,0 +1,35 @@
{% extends "templates/web.html" %}
{% block title %}ERPNext Foundation - Memberships{% endblock %}
{% from "foundation/templates/includes/macros.html" import media %}
{% block content %}
<section>
<h1>Memberships</h1>
<p class='lead'>Be a Part of the ERPNext Foundation</p>
</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
and customization jobs
</p>
</section>
<section>
<h3>Membership Types</h3>
{{ media("Gold Member",
"By becoming a Gold Member, you show your leadership and a premium positioning for your brand. As a Gold Member, you have priority on all the ERPNext Listings.",
"gold.png") }}
{{ media("Silver Member",
"Silver members also get priority listing on the Service Provider board after the Gold Members. Becoming a silver member will give you increased visibility in the ERPNext Community.",
"silver.png") }}
{{ media("Individual Member",
"As individual membership is ideal for users and freelancers who want to show their solidarity to the project and community. Individual members get listed above those with a free listing.",
"medal.png") }}
</section>
<section>
<p><a href="/members" class="button green-btn">Become A Member</a></p>
</section>
{% endblock %}

View File

@@ -0,0 +1,43 @@
{% extends "templates/web.html" %}
{% block title %}ERPNext Resources{% endblock %}
{% from "foundation/templates/includes/macros.html" import media %}
{% block content %}
<section>
<h1>Resources</h1>
<p class='lead'>Information to help you get started on ERPNext</p>
</section>
<section>
<h3>User Resources</h3>
{{ media("User Manual", "Deep dive into ERPNext functionality with the ERPNext manual. Covers all issues regarding setup, operations and customizations",
"manual.png", "https://frappe.github.io/erpnext/user") }}
{{ media("User Fourm", "Get help from the 3000 strong user community. Remember to introduce yourself and search before posting a query",
"forum.png", "https://discuss.erpnext.com") }}
{{ media("Help Videos", "More than 50 videos explaining features, using ERPNext, detailed webinar recordings, tutorials and much more",
"video.png", "https://youtube.com") }}
</section>
<section>
<h3>Developer Resources</h3>
<p>ERPNext is built on the Frappé Framework, a full stack web framework built in Python, Javascript on top of MariaDB, Node and Redis. To contribute fixes or built modules, it is recommended you go through the tutorial of Frappé Framework and make yourself familiar with its concepts.</p>
{{ media("Source Code", "All of ERPNext and Frappe code is actively maintained on GitHub. Star the repo, fork it, report issues and contribute using pull requests",
"repo.png", "https://github.com/frappe/erpnext") }}
{{ media("Frappé Framework", "ERPNext is built on the Frappé Framework, a full stack web application framework built on Python, JS, MariaDB, Redis and Node. Frappé allows you to extend ERPNext and build nifty extensions",
"frappe-bird-black.svg", "https://github.com/frappe/frappe") }}
{{ media("Frappé Tutorial", "This step by step tutorial will help you build a simple application using Frappé, helping you explore its structure and meta-data driven modeling", "manual.png", "https://frappe.github.io/frappe/") }}
</section>
<section>
<h3>Tools</h3>
<ol>
<li><a href="https://translate.erpnext.com">Contribute Translations</a></li>
<li><a href="https://charts.erpnext.com/">Contribute Chart of Accounts for your Company</a></li>
</ol>
</section>
{% endblock %}

View File

@@ -0,0 +1,83 @@
{% extends "templates/web.html" %}
{% from "foundation/templates/includes/macros.html" import media %}
{% macro gold_member(m) %}
<div class='gold-member'>
{{ media(m.title, m.introduction, m.image, m.route) }}
</div>
{% endmacro %}
{% macro silver_member(m) %}
<div class='col-sm-4'>
<h4>{{ m.title }}</h4>
<p>{{ m.introduction[:100] }}</p>
<p><a class='btn btn-default btn-sm' href='{{ m.route }}'>Details</a></p>
</div>
{% endmacro %}
{% macro show_member(s) %}
<div class='col-sm-4'>
<p>
<a class='bold' href="/{{ s.route }}">{{ s.title.title()[:25] }}</a><br>
<div class='small'>{{ s.introduction[:100] }}</div>
</p>
</div>
{% endmacro %}
{% block page_content %}
<h1>{{ title }}</h1>
{% if form_dict.country %}
<p><a href="/service-providers">All Serivce Providers</a></p>
{% endif %}
<section>
<h2>Gold Members</h2>
{% for m in gold_members %}
{{ gold_member(m) }}
{% endfor %}
{% if has_gold_member %}
<p><a class='text-muted' href='/members'>
Become a Gold Member and get your company featured here</a></p>
{% endif %}
</section>
<section>
<h2>Silver Members</h2>
<div class='row'>
{% for m in silver_members %}
{{ silver_member(m) }}
{% endfor %}
</div>
</section>
{% if form_dict.country %}
<section>
<h2>ERPNext Foundation Members</h2>
<div class='row'>
{% for s in individual_members %}
{{ show_member(s) }}
{% endfor %}
</div>
</section>
<section>
<h2>Other Service Providers</h2>
<div class='row'>
{% for s in service_providers %}
{{ show_member(s) }}
{% endfor %}
</div>
</section>
{% else %}
<section>
<h2>Select by country</h2>
<div class='row'>
{% for c in countries %}
<div class='col-sm-4'>
<p>
<a href="/service-providers?country={{ c[0] }}">{{ c[0] }} ({{ c[1] }})</a>
</p>
</div>
{% endfor %}
</div>
</section>
{% endif %}
{% endblock %}

View File

@@ -0,0 +1,74 @@
import frappe
def get_context(context):
context.form_dict = frappe.form_dict
context.title = 'Service Providers'
context.gold_members = []
filters = dict()
if frappe.form_dict.country:
filters['country'] = frappe.form_dict.country
gold_members = [d.name for d in frappe.get_all('Member', dict(membership_type='Gold'))]
if gold_members:
filters['member'] = ('in', gold_members)
context.gold_members = frappe.get_all('Service Provider', 'title, introduction, `image`, route',
filters)
if context.gold_members:
context.has_gold_member = 1
else:
context.gold_members.append(dict(
title='Gold Member',
introduction='Become a Gold Member today and get your company featured here',
image='/assets/foundation/img/gold.png',
route='/members'
))
context.silver_members = []
silver_members = [d.name for d in frappe.get_all('Member', dict(membership_type='Silver'))]
if silver_members:
filters['member'] = ('in', gold_members)
context.silver_members = frappe.get_all('Service Provider', 'title, introduction, `image`, route',
filters, debug=1)
# round to 3 columns
for i in xrange(3 - (len(context.silver_members) % 3)):
context.silver_members.append(dict(
title='Silver Member',
introduction='Become a Silver Member today and get your company featured here',
image='/assets/foundation/img/silver.png',
route='/members'
))
if context.form_dict.country:
context.title = 'ERPNext Service Providers in {0}'.format(context.form_dict.country)
context.individual_members = []
individual_members = [d.name for d in frappe.get_all('Member', dict(membership_type='Individual'))]
if individual_members:
filters['member'] = ('in', individual_members)
context.individual_members = frappe.get_all('Service Provider', 'title, introduction, `image`, route', filters)
else:
context.individual_members = [dict(
title='Individual Member',
introduction='Become an invidual member to list here',
route='/members'
)]
context.service_providers = [d for d in frappe.get_all('Service Provider', 'name, title, introduction, `image`, route',
dict(country=frappe.form_dict.country, show_in_website=1), order_by='name') if d.name not in individual_members]
else:
# countries
context.countries = frappe.db.sql('''select
distinct country, count(*)
from
`tabService Provider`
where
show_in_website = 1
group by
country
order by
country''')