update ERPNext - JERP

This commit is contained in:
jingrow 2025-12-23 23:05:39 +08:00
parent da7e0f8f1d
commit 93794fd6c4
41 changed files with 87 additions and 87 deletions

View File

@ -26,7 +26,7 @@ Jcloude is a 100% open-source cloud hosting for the Jingrow stack.
### Motivation
We originally hosted our customer sites on an internal cloud platform called "Central," designed to automate creating and hosting sites when customers signed up on our website. Central was primarily built to host ERPNext, our flagship product. However, as our customers' needs evolved, they began requesting the ability to host custom applications, a feature that was not a priority in Central.
We originally hosted our customer sites on an internal cloud platform called "Central," designed to automate creating and hosting sites when customers signed up on our website. Central was primarily built to host JERP, our flagship product. However, as our customers' needs evolved, they began requesting the ability to host custom applications, a feature that was not a priority in Central.
Additionally, customers lacked full control over their servers—no SSH access, no ability to manage updates, and limited flexibility in interacting with their environment. This led us to launch Jingrow Cloud, to build a self-serve cloud platform that would empower our customers with complete control over their hosting experience.

View File

@ -128,7 +128,7 @@ export default {
'Missing Country Compliance App',
'Apps are too complex to use and setup',
'Jingrow Cloud is complex and difficult to use',
'ERPNext is too complex for my needs',
'JERP is too complex for my needs',
'Unable to migrate to Jingrow Cloud',
'My reason is not listed here',
];

View File

@ -3,7 +3,7 @@
<div class="prose prose-sm max-w-none">
<h1 class="text-2xl font-semibold">Welcome to Jingrow Cloud</h1>
<p>
Jingrow Cloud makes it easy to manage sites and apps like ERPNext in an
Jingrow Cloud makes it easy to manage sites and apps like JERP in an
easy to use dashboard with powerful features like automatic backups,
custom domains, SSL certificates, custom apps, automatic updates and
more.

View File

@ -56,7 +56,7 @@ import { toast } from 'vue-sonner';
const courseTypes = [
{ label: 'Framework', value: 'jingrow-developer-certification' },
{ label: 'ERPNext', value: 'jerp-distribution' },
{ label: 'JERP', value: 'jerp-distribution' },
];
const show = ref(true);

View File

@ -58,7 +58,7 @@ import { toast } from 'vue-sonner';
const courseTypes = [
{ label: 'Framework', value: 'jingrow-developer-certification' },
{ label: 'ERPNext', value: 'jerp-distribution' },
{ label: 'JERP', value: 'jerp-distribution' },
];
const show = ref(true);

View File

@ -60,7 +60,7 @@ export default {
format(value) {
return value == 'jingrow-developer-certification'
? 'Framework'
: 'ERPNext';
: 'JERP';
},
width: 0.6,
},
@ -157,7 +157,7 @@ export default {
type: 'select',
fieldname: 'course',
label: 'Course',
options: ['', 'Framework', 'ERPNext'],
options: ['', 'Framework', 'JERP'],
},
];
},

View File

@ -27,7 +27,7 @@ const partnerMembers = createResource({
course:
d.course == 'jingrow-developer-certification'
? 'Framework'
: 'ERPNext',
: 'JERP',
version: d.version,
};
});

View File

@ -48,7 +48,7 @@ export default {
format(value) {
return value == 'jingrow-developer-certification'
? 'Framework'
: 'ERPNext';
: 'JERP';
},
width: 0.5,
},
@ -117,7 +117,7 @@ export default {
label: 'Course',
options: [
{ label: 'Framework', value: 'jingrow-developer-certification' },
{ label: 'ERPNext', value: 'jerp-distribution' },
{ label: 'JERP', value: 'jerp-distribution' },
],
},
];

View File

@ -119,7 +119,7 @@ In some cases, it may be so that multiple partners are working on features for a
>
>
### Central/ERPNext.com Sites
### Central/JERP.com Sites
* These sites are the ones migrated from central to Frappecloud.
* They are all under common team i.e *central@jcloud.jingrow.com* and common plan i.e *Central Site*
@ -129,7 +129,7 @@ In some cases, it may be so that multiple partners are working on features for a
* In the Site's desk page, click Subscription -> **Extend Trial**
### Update limits/expiry of Central/ERPNext Site
### Update limits/expiry of Central/JERP Site
* Open the **Support Profile** pg on `framework.jingrow.com`
@ -204,9 +204,9 @@ DEL <db_name>|rate-limit-counter-XXXXX
1. From Site pg, go to Subscription > Change Team and select the team you want to move the account to
2. From Site pg, go to Subscription > Change Plan and select desired plan
3. From dashboard page of site config, remove `limits` key and values
4. Uninstall Journeys app and ERPNext Support app
4. Uninstall Journeys app and JERP Support app
5. Uncheck free site checkbox if checked (Billing Section)
6. Move them to a non ERPNext Release Group (`bench-0001`, `bench-0020`) so they dont get free emails and other things in `common_site_config` (You may skip this step for now)
6. Move them to a non JERP Release Group (`bench-0001`, `bench-0020`) so they dont get free emails and other things in `common_site_config` (You may skip this step for now)
### Replicate a Site

View File

@ -321,7 +321,7 @@ class Agent:
def setup_jerp(self, site, user, config):
data = {"user": user, "config": config}
return self.create_agent_job(
"Setup ERPNext",
"Setup JERP",
f"benches/{site.bench}/sites/{site.name}/jerp",
data,
bench=site.bench,

View File

@ -184,7 +184,7 @@ def check_subdomain_availability(subdomain, app):
"""
Checks if subdomain is available to create a new site
"""
# Only for ERPNext domains
# Only for JERP domains
if len(subdomain) <= 4:
return False

View File

@ -438,7 +438,7 @@ class TestAPISite(FrappeTestCase):
from jcloude.api.site import installed_apps
app1 = create_test_app()
app2 = create_test_app("jerp", "ERPNext")
app2 = create_test_app("jerp", "JERP")
group = create_test_release_group([app1, app2])
bench = create_test_bench(group=group)
@ -456,7 +456,7 @@ class TestAPISite(FrappeTestCase):
from jcloude.api.site import available_apps
app1 = create_test_app()
app2 = create_test_app("jerp", "ERPNext")
app2 = create_test_app("jerp", "JERP")
app3 = create_test_app("insights", "Insights")
group = create_test_release_group([app1, app2])
bench = create_test_bench(group=group)
@ -479,7 +479,7 @@ class TestAPISite(FrappeTestCase):
from jcloude.api.site import install_app
app = create_test_app()
app2 = create_test_app("jerp", "ERPNext")
app2 = create_test_app("jerp", "JERP")
group = create_test_release_group([app, app2])
bench = create_test_bench(group=group)
@ -507,7 +507,7 @@ class TestAPISite(FrappeTestCase):
from jcloude.api.site import uninstall_app
app = create_test_app()
app2 = create_test_app("jerp", "ERPNext")
app2 = create_test_app("jerp", "JERP")
group = create_test_release_group([app, app2])
bench = create_test_bench(group=group)
@ -537,7 +537,7 @@ class TestAPISite(FrappeTestCase):
from jcloude.api.site import restore
app = create_test_app()
app2 = create_test_app("jerp", "ERPNext")
app2 = create_test_app("jerp", "JERP")
app3 = create_test_app("insights", "Insights")
group = create_test_release_group([app, app2, app3])
bench = create_test_bench(group=group)
@ -584,7 +584,7 @@ insights 0.8.3 HEAD
from jcloude.api.site import restore
app = create_test_app()
app2 = create_test_app("jerp", "ERPNext")
app2 = create_test_app("jerp", "JERP")
group = create_test_release_group([app, app2])
bench = create_test_bench(group=group)
@ -626,7 +626,7 @@ insights 0.8.3 HEAD
from jcloude.api.site import restore
app = create_test_app()
app2 = create_test_app("jerp", "ERPNext")
app2 = create_test_app("jerp", "JERP")
create_test_marketplace_app("jerp")
app3 = create_test_app("insights", "Insights")
create_test_marketplace_app("insights")
@ -676,7 +676,7 @@ insights 0.8.3 HEAD
from jcloude.api.site import new
app = create_test_app()
app2 = create_test_app("jerp", "ERPNext")
app2 = create_test_app("jerp", "JERP")
group = create_test_release_group([app, app2])
plan = create_test_plan("Site")
create_test_bench(group=group)

View File

@ -725,7 +725,7 @@
"pagetype": "Agent Job Type",
"max_retry_count": 6,
"modified": "2023-11-06 07:28:19.180358",
"name": "Setup ERPNext",
"name": "Setup JERP",
"request_method": "POST",
"request_path": "/benches/{site.bench}/sites/{site.name}/jerp",
"steps": [
@ -733,7 +733,7 @@
"step_name": "Create User"
},
{
"step_name": "Update ERPNext Configuration"
"step_name": "Update JERP Configuration"
}
]
},

View File

@ -338,7 +338,7 @@
{
"fieldname": "jerp_success_pack_interested_in",
"fieldtype": "Data",
"label": "ERPNext Success Pack Interested In"
"label": "JERP Success Pack Interested In"
},
{
"default": "0",

View File

@ -114,7 +114,7 @@
"fieldname": "jerp",
"fieldtype": "Check",
"hidden": 1,
"label": "ERPNext"
"label": "JERP"
},
{
"fieldname": "company",
@ -140,7 +140,7 @@
"collapsible": 1,
"fieldname": "section_break_8",
"fieldtype": "Section Break",
"label": "ERPNext Sign Up"
"label": "JERP Sign Up"
},
{
"fieldname": "column_break_14",

View File

@ -1076,7 +1076,7 @@ def process_job_updates(job_name: str, response_data: dict | None = None): # no
process_update_site_recover_job_update(job)
elif job.job_type == "Rename Site" or job.job_type == "Rename Site on Upstream":
process_rename_site_job_update(job)
elif job.job_type == "Setup ERPNext":
elif job.job_type == "Setup JERP":
process_setup_jerp_site_job_update(job)
elif job.job_type == "Restore Site Tables":
process_restore_tables_job_update(job)

View File

@ -38,7 +38,7 @@ class TestApp(FrappeTestCase):
self.assertEqual(source.versions[0].version, "Version 12")
def test_create_non_jingrow_app(self):
app = create_test_app("jerp", "ERPNext")
app = create_test_app("jerp", "JERP")
self.assertEqual(app.jingrow, False)
source = app.add_source(
@ -77,7 +77,7 @@ class TestApp(FrappeTestCase):
self.assertEqual(source_2.versions[0].version, "Version 13")
def test_create_app_with_one_source_multiple_versions(self):
app = create_test_app("jerp_documentation", "ERPNext Documentation")
app = create_test_app("jerp_documentation", "JERP Documentation")
team_name = create_test_team().name
source_1 = app.add_source(

View File

@ -182,7 +182,7 @@ class TestDeployCandidate(FrappeTestCase):
bench = create_test_bench()
# Create another app
group = jingrow.get_pg("Release Group", bench.group)
app = create_test_app("jerp", "ERPNext")
app = create_test_app("jerp", "JERP")
source = create_test_app_source(group.version, app)
release = create_test_app_release(source)
group.update_source(source)
@ -204,14 +204,14 @@ class TestDeployCandidate(FrappeTestCase):
bench = create_test_bench()
# Create another app
group = jingrow.get_pg("Release Group", bench.group)
app = create_test_app("jerp", "ERPNext")
app = create_test_app("jerp", "JERP")
jerp_source = create_test_app_source(group.version, app)
group.update_source(jerp_source)
first_candidate = group.create_deploy_candidate(group.apps)
dc_count_before = jingrow.db.count("Deploy Candidate", filters={"group": group.name})
# Enable auto deploy on ERPNext app
# Enable auto deploy on JERP app
group.apps[1].enable_auto_deploy = True
group.save()

View File

@ -134,16 +134,16 @@ class DripEmail(Page):
def select_consultant(self, site) -> str:
"""
Select random ERPNext Consultant to send email.
Select random JERP Consultant to send email.
Also set sender details.
"""
if not site.jerp_consultant:
# set a random consultant for the site for the first time
site.jerp_consultant = get_random("ERPNext Consultant", dict(active=1))
site.jerp_consultant = get_random("JERP Consultant", dict(active=1))
jingrow.db.set_value("Site", site.name, "jerp_consultant", site.jerp_consultant)
consultant = jingrow.get_pg("ERPNext Consultant", site.jerp_consultant)
consultant = jingrow.get_pg("JERP Consultant", site.jerp_consultant)
self.sender = consultant.name
self.sender_name = consultant.full_name
return consultant

View File

@ -23,7 +23,7 @@
"modified": "2021-03-31 11:08:26.860569",
"modified_by": "Administrator",
"module": "Jcloude",
"name": "ERPNext App",
"name": "JERP App",
"owner": "Administrator",
"permissions": [],
"sort_field": "modified",

View File

@ -1,6 +1,6 @@
// Copyright (c) 2019, JINGROW
// For license information, please see license.txt
jingrow.ui.form.on('ERPNext Consultant', {
jingrow.ui.form.on('JERP Consultant', {
refresh: function (frm) {},
});

View File

@ -27,7 +27,7 @@
"fieldname": "territories",
"fieldtype": "Table MultiSelect",
"label": "Territories",
"options": "ERPNext Consultant Region"
"options": "JERP Consultant Region"
},
{
"fieldname": "user",
@ -43,7 +43,7 @@
"modified": "2021-04-21 18:08:19.750497",
"modified_by": "Administrator",
"module": "Jcloude",
"name": "ERPNext Consultant",
"name": "JERP Consultant",
"owner": "Administrator",
"permissions": [
{

View File

@ -23,7 +23,7 @@
"modified": "2021-04-29 20:25:56.246263",
"modified_by": "Administrator",
"module": "Jcloude",
"name": "ERPNext Consultant Region",
"name": "JERP Consultant Region",
"owner": "Administrator",
"permissions": [],
"sort_field": "modified",

View File

@ -1,7 +1,7 @@
// Copyright (c) 2022, JINGROW
// For license information, please see license.txt
jingrow.ui.form.on('ERPNext Site Settings', {
jingrow.ui.form.on('JERP Site Settings', {
refresh: function (frm) {
frm.add_custom_button(__('Open Site'), () => {
window.open(`https://jcloud.jingrow.com/dashboard/sites/${frm.pg.site}`);

View File

@ -77,7 +77,7 @@
"modified": "2022-06-20 06:58:05.388164",
"modified_by": "Administrator",
"module": "Jcloude",
"name": "ERPNext Site Settings",
"name": "JERP Site Settings",
"naming_rule": "By fieldname",
"owner": "Administrator",
"permissions": [

View File

@ -393,22 +393,22 @@
"collapsible": 1,
"fieldname": "jerp_authentication",
"fieldtype": "Section Break",
"label": "ERPNext Authentication"
"label": "JERP Authentication"
},
{
"fieldname": "jerp_url",
"fieldtype": "Data",
"label": "ERPNext URL"
"label": "JERP URL"
},
{
"fieldname": "jerp_api_key",
"fieldtype": "Data",
"label": "ERPNext API Key"
"label": "JERP API Key"
},
{
"fieldname": "jerp_api_secret",
"fieldtype": "Password",
"label": "ERPNext API Secret"
"label": "JERP API Secret"
},
{
"fieldname": "column_break_38",
@ -657,17 +657,17 @@
{
"fieldname": "jerp_tab",
"fieldtype": "Tab Break",
"label": "ERPNext"
"label": "JERP"
},
{
"fieldname": "jerp_signups_section",
"fieldtype": "Section Break",
"label": "ERPNext Signups"
"label": "JERP Signups"
},
{
"fieldname": "jerp_domain",
"fieldtype": "Link",
"label": "ERPNext Domain",
"label": "JERP Domain",
"options": "Root Domain"
},
{
@ -675,19 +675,19 @@
"fetch_if_empty": 1,
"fieldname": "jerp_cluster",
"fieldtype": "Link",
"label": "ERPNext Cluster",
"label": "JERP Cluster",
"options": "Cluster"
},
{
"fieldname": "jerp_plan",
"fieldtype": "Link",
"label": "ERPNext Plan",
"label": "JERP Plan",
"options": "Site Plan"
},
{
"fieldname": "jerp_group",
"fieldtype": "Link",
"label": "ERPNext Group",
"label": "JERP Group",
"options": "Release Group"
},
{
@ -697,8 +697,8 @@
{
"fieldname": "jerp_apps",
"fieldtype": "Table",
"label": "ERPNext Apps",
"options": "ERPNext App"
"label": "JERP Apps",
"options": "JERP App"
},
{
"fieldname": "central_migration_server",
@ -728,7 +728,7 @@
"collapsible": 1,
"fieldname": "jerp_site_pool_section",
"fieldtype": "Section Break",
"label": "ERPNext Site Pool"
"label": "JERP Site Pool"
},
{
"default": "0",

View File

@ -23,7 +23,7 @@
"fieldname": "last_allocated_to",
"fieldtype": "Link",
"label": "Last Allocated To",
"options": "ERPNext Consultant",
"options": "JERP Consultant",
"read_only": 1
}
],

View File

@ -107,7 +107,7 @@ class TestReleaseGroup(FrappeTestCase):
source1 = app1.add_source(
"Version 12", "http://git.jingrow.com/jingrow/jingrow", "version-12", team=self.team
)
app2 = create_test_app("jerp", "ERPNext")
app2 = create_test_app("jerp", "JERP")
source2 = app2.add_source(
"Version 12", "http://git.jingrow.com/jingrow/jerp", "version-12", team=self.team
)
@ -120,7 +120,7 @@ class TestReleaseGroup(FrappeTestCase):
self.assertEqual(group.apps[0].app, source1.app)
def test_create_release_group_fail_when_first_app_is_not_jingrow(self):
app = create_test_app("jerp", "ERPNext")
app = create_test_app("jerp", "JERP")
source = app.add_source(
"Version 12", "http://git.jingrow.com/jingrow/jerp", "version-12", team=self.team
)
@ -431,7 +431,7 @@ class TestReleaseGroup(FrappeTestCase):
release_group.insert()
# Insert dependant app and check if it works
jerp = create_test_app("jerp", "ERPNext")
jerp = create_test_app("jerp", "JERP")
jerp_app_source = create_test_app_source(
"Nightly", jerp, "http://git.jingrow.com/jingrow/jerp", "master", self.team
)

View File

@ -360,13 +360,13 @@
"default": "0",
"fieldname": "is_jerp_setup",
"fieldtype": "Check",
"label": "Is ERPNext Setup"
"label": "Is JERP Setup"
},
{
"fieldname": "jerp_consultant",
"fieldtype": "Link",
"label": "ERPNext Consultant",
"options": "ERPNext Consultant"
"label": "JERP Consultant",
"options": "JERP Consultant"
},
{
"fieldname": "plan",
@ -785,7 +785,7 @@
},
{
"group": "Related Documents",
"link_pagetype": "ERPNext Site Settings",
"link_pagetype": "JERP Site Settings",
"link_fieldname": "site"
},
{

View File

@ -4594,7 +4594,7 @@ def archive_suspended_sites():
filters = [
["status", "=", "Suspended"],
["trial_end_date", "is", "not set"],
["plan", "!=", "ERPNext Trial"],
["plan", "!=", "JERP Trial"],
]
sites = jingrow.db.get_all(

View File

@ -481,7 +481,7 @@ class TestSite(FrappeTestCase):
@patch.object(AppSource, "validate_dependent_apps", new=Mock())
def test_sync_apps_updates_apps_child_table(self):
app1 = create_test_app()
app2 = create_test_app("jerp", "ERPNext")
app2 = create_test_app("jerp", "JERP")
group = create_test_release_group([app1, app2])
bench = create_test_bench(group=group)
site = create_test_site(bench=bench.name)
@ -513,7 +513,7 @@ class TestSite(FrappeTestCase):
def test_apps_are_reordered_to_follow_bench_order(self):
app1 = create_test_app()
app2 = create_test_app("jerp", "ERPNext")
app2 = create_test_app("jerp", "JERP")
app3 = create_test_app("crm", "Jingrow CRM")
group = create_test_release_group([app1, app2, app3])
bench = create_test_bench(group=group)
@ -540,7 +540,7 @@ class TestSite(FrappeTestCase):
) # site2 suspended recently
site3 = create_test_site() # active site should not be archived
create_test_saas_settings(None, [create_test_app(), create_test_app("jerp", "ERPNext")])
create_test_saas_settings(None, [create_test_app(), create_test_app("jerp", "JERP")])
archive_suspended_sites()
site.reload()
@ -574,7 +574,7 @@ class TestSite(FrappeTestCase):
create_test_site_backup(site2.name)
create_test_saas_settings(None, [create_test_app(), create_test_app("jerp", "ERPNext")])
create_test_saas_settings(None, [create_test_app(), create_test_app("jerp", "JERP")])
self.assertEqual(jingrow.db.count("Site Backup", {"site": site.name, "status": "Pending"}), 0)
self.assertEqual(jingrow.db.count("Site Backup", {"site": site2.name, "status": "Pending"}), 0)

View File

@ -62,7 +62,7 @@
{
"fieldname": "jerp_section",
"fieldtype": "Section Break",
"label": "ERPNext"
"label": "JERP"
},
{
"fieldname": "country",

View File

@ -9,7 +9,7 @@ jingrow.ui.form.on('Team', {
if (!frm.pg.jerp_partner) {
frm.add_custom_button('Enable Partner Privileges', () =>
jingrow.confirm(
`Enable ERPNext Partner Privileges for ${frm.pg.name.bold()}? They will be allowed to create sites without adding a card and can use Partner Credits to pay for invoices.`,
`Enable JERP Partner Privileges for ${frm.pg.name.bold()}? They will be allowed to create sites without adding a card and can use Partner Credits to pay for invoices.`,
() =>
frm.call('enable_jerp_partner_privileges').then(() =>
jingrow.msgprint({
@ -23,7 +23,7 @@ jingrow.ui.form.on('Team', {
} else {
frm.add_custom_button('Disable Partner Privileges', () =>
jingrow.confirm(
`Disable ERPNext Partner Privileges for ${frm.pg.name.bold()}? `,
`Disable JERP Partner Privileges for ${frm.pg.name.bold()}? `,
() =>
frm.call('disable_jerp_partner_privileges').then(() => {
jingrow.msgprint({

View File

@ -209,10 +209,10 @@
},
{
"default": "0",
"description": "Enabled if this account was created via the ERPNext signup form",
"description": "Enabled if this account was created via the JERP signup form",
"fieldname": "via_jerp",
"fieldtype": "Check",
"label": "Via ERPNext",
"label": "Via JERP",
"read_only": 1
},
{
@ -520,7 +520,7 @@
"fieldname": "jerp_partner",
"fieldtype": "Check",
"in_standard_filter": 1,
"label": "ERPNext Partner",
"label": "JERP Partner",
"read_only": 1
},
{

View File

@ -203,7 +203,7 @@ class ProductTrialRequest(Page):
"language": "en",
"currency": team_details.currency,
# setup wizard will override currency anyway
# but adding this since ERPNext will throw an error otherwise
# but adding this since JERP will throw an error otherwise
}
)
except Exception as e:

View File

@ -88,7 +88,7 @@
"fieldname": "apps",
"fieldtype": "Table",
"label": "Apps",
"options": "ERPNext App"
"options": "JERP App"
},
{
"fieldname": "site_plan",
@ -121,7 +121,7 @@
"fieldname": "whitelisted_apps",
"fieldtype": "Table",
"label": "Whitelisted Apps",
"options": "ERPNext App"
"options": "JERP App"
},
{
"default": "0",

View File

@ -7,7 +7,7 @@
<div class="p-8 bg-white from-markdown">
<p>Hello,</p>
<strong>
Thanks for signing up for ERPNext!
Thanks for signing up for JERP!
</strong>
<p>
Please confirm your email address by clicking the button below:
@ -16,7 +16,7 @@
{{ utils.separator() }}
<p class="m-0">
Thanks,<br>
Team ERPNext
Team JERP
</p>
</div>
</td>

View File

@ -15,7 +15,7 @@
<a class="mr-4 text-lg text-[#4C5A67] leading-8 font-medium" href="https://framework.jingrow.com"
rel="noreferrer">Jingrow</a>
<a class="mr-4 text-lg text-[#4C5A67] leading-8 font-medium" href="https://jerp.jingrow.com"
rel="noreferrer">ERPNext</a>
rel="noreferrer">JERP</a>
<a class="mr-4 text-lg text-[#4C5A67] leading-8 font-medium" href="https://jingrow.school"
rel="noreferrer">Jingrow
School</a>

View File

@ -62,7 +62,7 @@ def get_jerp.jingrow.com_connection():
jerp_api_secret = jcloude_settings.get_password("jerp_api_secret", raise_exception=False)
if not (jcloude_settings.jerp_api_key and jcloude_settings.jerp_url and jerp_api_secret):
jingrow.throw("ERPNext.com URL not set up in Jcloude Settings", exc=CentralServerNotSet)
jingrow.throw("JERP.com URL not set up in Jcloude Settings", exc=CentralServerNotSet)
return FrappeClient(
jcloude_settings.jerp_url,

View File

@ -70,13 +70,13 @@
</div>
</div>
<div class="form-group">
<label for="source">Where did you hear about ERPNext?</label>
<label for="source">Where did you hear about JERP?</label>
<select id="source" class="custom-select" name="referral_source">
<option></option>
<option>Social media</option>
<option>Google Search</option>
<option>Recommended by a friend/colleague</option>
<option>ERPNext Blog</option>
<option>JERP Blog</option>
<option>Online reviews (like Capterra/G2)</option>
</select>
</div>

View File

@ -25,7 +25,7 @@
data-step="1"
data-action="submit_account_request"
>
<h1 class="step-1">Signup for ERPNext SMB</h1>
<h1 class="step-1">Signup for JERP SMB</h1>
<div class="form-group">
<label for="subdomain">Site Name</label>
<div class="input-group">