update erpnext to jerp

This commit is contained in:
jingrow 2025-12-23 23:04:51 +08:00
parent 3f6f130113
commit da7e0f8f1d
81 changed files with 283 additions and 283 deletions

View File

@ -170,7 +170,7 @@
"equivs", "equivs",
"erikgeiser", "erikgeiser",
"erpdb", "erpdb",
"erpnext", "jerp",
"erpnextcom", "erpnextcom",
"erpnextsmb", "erpnextsmb",
"errgo", "errgo",

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<svg width="88px" height="88px" viewBox="0 0 88 88" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <svg width="88px" height="88px" viewBox="0 0 88 88" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 56.2 (81672) - https://sketch.com --> <!-- Generator: Sketch 56.2 (81672) - https://sketch.com -->
<title>erpnext-logo</title> <title>jerp-logo</title>
<desc>Created with Sketch.</desc> <desc>Created with Sketch.</desc>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="erpnext-logo" fill-rule="nonzero"> <g id="jerp-logo" fill-rule="nonzero">
<path d="M74.0833425,8.65999998e-07 C81.4123344,8.65999998e-07 87.3125279,5.90019975 87.3125279,13.2291584 L87.3125279,74.0833368 C87.3125279,81.4122954 81.4123344,87.3125043 74.0833425,87.3125043 L13.2292094,87.3125043 C5.90031746,87.3125043 2.3949e-05,81.4122954 2.3949e-05,74.0833368 L2.3949e-05,13.2291584 C2.3949e-05,5.90019975 5.90031746,8.65999998e-07 13.2292094,8.65999998e-07 L74.0833425,8.65999998e-07 Z" id="Box" fill="#5A67D8"></path> <path d="M74.0833425,8.65999998e-07 C81.4123344,8.65999998e-07 87.3125279,5.90019975 87.3125279,13.2291584 L87.3125279,74.0833368 C87.3125279,81.4122954 81.4123344,87.3125043 74.0833425,87.3125043 L13.2292094,87.3125043 C5.90031746,87.3125043 2.3949e-05,81.4122954 2.3949e-05,74.0833368 L2.3949e-05,13.2291584 C2.3949e-05,5.90019975 5.90031746,8.65999998e-07 13.2292094,8.65999998e-07 L74.0833425,8.65999998e-07 Z" id="Box" fill="#5A67D8"></path>
<path d="M29.7776717,21.8279666 C29.5028225,21.8279666 29.2349848,21.8558854 28.9761694,21.9085798 C28.7173275,21.9612743 28.4675079,22.0389083 28.229965,22.1390584 C28.1111671,22.1891334 27.9957029,22.2450161 27.8832021,22.3059734 C27.6582269,22.4278829 27.4465337,22.5707975 27.2506891,22.7323019 C26.3693091,23.4590779 25.8089216,24.5599536 25.8089216,25.7967167 L25.8089216,26.0385617 L25.8089216,61.2741253 L25.8089216,61.5154782 C25.8089216,63.7141657 27.5789842,65.4842283 29.7776717,65.4842283 L57.5346337,65.4842283 C59.7333212,65.4842283 61.5033838,63.7141657 61.5033838,61.5154782 L61.5033838,61.2741253 C61.5033838,59.0754377 59.7333212,57.3053752 57.5346337,57.3053752 L33.988251,57.3053752 L33.988251,47.4201976 L51.4957041,47.4201976 C53.6943917,47.4201976 55.4644542,45.6501351 55.4644542,43.4514475 L55.4644542,43.2101211 C55.4644542,41.0114335 53.6943917,39.241371 51.4957041,39.241371 L33.988251,39.241371 L33.988251,30.0073118 L57.5346337,30.0073118 C59.7333212,30.0073118 61.5033838,28.2372493 61.5033838,26.0385617 L61.5033838,25.7967167 C61.5033838,23.5980291 59.7333212,21.8279666 57.5346337,21.8279666 L29.7776717,21.8279666 Z" id="E" fill="#FFFFFF"></path> <path d="M29.7776717,21.8279666 C29.5028225,21.8279666 29.2349848,21.8558854 28.9761694,21.9085798 C28.7173275,21.9612743 28.4675079,22.0389083 28.229965,22.1390584 C28.1111671,22.1891334 27.9957029,22.2450161 27.8832021,22.3059734 C27.6582269,22.4278829 27.4465337,22.5707975 27.2506891,22.7323019 C26.3693091,23.4590779 25.8089216,24.5599536 25.8089216,25.7967167 L25.8089216,26.0385617 L25.8089216,61.2741253 L25.8089216,61.5154782 C25.8089216,63.7141657 27.5789842,65.4842283 29.7776717,65.4842283 L57.5346337,65.4842283 C59.7333212,65.4842283 61.5033838,63.7141657 61.5033838,61.5154782 L61.5033838,61.2741253 C61.5033838,59.0754377 59.7333212,57.3053752 57.5346337,57.3053752 L33.988251,57.3053752 L33.988251,47.4201976 L51.4957041,47.4201976 C53.6943917,47.4201976 55.4644542,45.6501351 55.4644542,43.4514475 L55.4644542,43.2101211 C55.4644542,41.0114335 53.6943917,39.241371 51.4957041,39.241371 L33.988251,39.241371 L33.988251,30.0073118 L57.5346337,30.0073118 C59.7333212,30.0073118 61.5033838,28.2372493 61.5033838,26.0385617 L61.5033838,25.7967167 C61.5033838,23.5980291 59.7333212,21.8279666 57.5346337,21.8279666 L29.7776717,21.8279666 Z" id="E" fill="#FFFFFF"></path>
</g> </g>

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -83,7 +83,7 @@ export default {
validate() { validate() {
if ( if (
this.amount < this.minimumAmount && this.amount < this.minimumAmount &&
!this.$team.pg.erpnext_partner !this.$team.pg.jerp_partner
) { ) {
throw new DashboardError( throw new DashboardError(
`Amount must be greater than or equal to ${this.minimumAmount}`, `Amount must be greater than or equal to ${this.minimumAmount}`,

View File

@ -79,7 +79,7 @@
</td> </td>
<td class="whitespace-nowrap pb-2 pr-2 pt-4 text-right font-medium"> <td class="whitespace-nowrap pb-2 pr-2 pt-4 text-right font-medium">
{{ {{
$team.pg.erpnext_partner $team.pg.jerp_partner
? formatCurrency(pg.total_discount_amount) ? formatCurrency(pg.total_discount_amount)
: formatCurrency(0) : formatCurrency(0)
}} }}

View File

@ -208,7 +208,7 @@ export default {
icon: () => h(Globe), icon: () => h(Globe),
route: '/partners', route: '/partners',
isActive: routeName === 'Partnership', isActive: routeName === 'Partnership',
condition: Boolean(this.$team.pg.erpnext_partner), condition: Boolean(this.$team.pg.jerp_partner),
disabled: enforce2FA, disabled: enforce2FA,
}, },
{ {

View File

@ -82,7 +82,7 @@ const createPaymentIntent = createResource({
url: 'jcloude.api.billing.create_payment_intent_for_buying_credits', url: 'jcloude.api.billing.create_payment_intent_for_buying_credits',
params: { amount: props.amount }, params: { amount: props.amount },
validate() { validate() {
if (props.amount < props.minimumAmount && !team.pg.erpnext_partner) { if (props.amount < props.minimumAmount && !team.pg.jerp_partner) {
throw new DashboardError( throw new DashboardError(
`Amount must be greater than or equal to ${props.minimumAmount}`, `Amount must be greater than or equal to ${props.minimumAmount}`,
); );

View File

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

View File

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

View File

@ -96,7 +96,7 @@
:disabled="adminAccess" :disabled="adminAccess"
/> />
<Switch <Switch
v-if="$team.pg.erpnext_partner" v-if="$team.pg.jerp_partner"
v-model="allowPartner" v-model="allowPartner"
label="Allow Partner Access" label="Allow Partner Access"
:disabled="adminAccess" :disabled="adminAccess"

View File

@ -57,7 +57,7 @@
type="select" type="select"
size="sm" size="sm"
variant="subtle" variant="subtle"
placeholder="erpnext.jingrow.cloud" placeholder="jerp.jingrow.cloud"
model-value="" model-value=""
:options="resourceOptions" :options="resourceOptions"
@update:model-value=" @update:model-value="

View File

@ -1,6 +1,6 @@
<template> <template>
<Card <Card
v-if="!$team.pg?.erpnext_partner" v-if="!$team.pg?.jerp_partner"
title="Jingrow Partner" title="Jingrow Partner"
subtitle="Jingrow Partner associated with your account" subtitle="Jingrow Partner associated with your account"
class="mx-auto max-w-3xl" class="mx-auto max-w-3xl"

View File

@ -117,7 +117,7 @@ export default {
label: 'Course', label: 'Course',
options: [ options: [
{ label: 'Framework', value: 'jingrow-developer-certification' }, { label: 'Framework', value: 'jingrow-developer-certification' },
{ label: 'ERPNext', value: 'erpnext-distribution' }, { label: 'ERPNext', value: 'jerp-distribution' },
], ],
}, },
]; ];

View File

@ -147,7 +147,7 @@ export default {
return { return {
partnerInput: '', partnerInput: '',
paymentGateway: '', paymentGateway: '',
partnerCommission: this.$team.pg.erpnext_partner ? 10 : 5, partnerCommission: this.$team.pg.jerp_partner ? 10 : 5,
from_date: new Date().toISOString().split('T')[0], from_date: new Date().toISOString().split('T')[0],
to_date: new Date().toISOString().split('T')[0], to_date: new Date().toISOString().split('T')[0],

View File

@ -9,7 +9,7 @@
</div> </div>
<TabsWithRouter <TabsWithRouter
v-if=" v-if="
Boolean(this.$team.pg.erpnext_partner) && $session.hasPartnerAccess Boolean(this.$team.pg.jerp_partner) && $session.hasPartnerAccess
" "
:tabs="tabs" :tabs="tabs"
/> />
@ -45,19 +45,19 @@ export default {
{ {
label: 'Overview', label: 'Overview',
route: { name: 'PartnerOverview' }, route: { name: 'PartnerOverview' },
condition: () => Boolean(this.$team.pg.erpnext_partner), condition: () => Boolean(this.$team.pg.jerp_partner),
}, },
{ {
label: 'Website Details', label: 'Website Details',
route: { name: 'PartnerWebsiteDetails' }, route: { name: 'PartnerWebsiteDetails' },
condition: () => Boolean(this.$team.pg.erpnext_partner), condition: () => Boolean(this.$team.pg.jerp_partner),
}, },
{ {
label: 'Dashboard', label: 'Dashboard',
route: { name: 'PartnerDashboard' }, route: { name: 'PartnerDashboard' },
condition: () => condition: () =>
Boolean( Boolean(
this.$team.pg.erpnext_partner && this.$team.pg.jerp_partner &&
this.$team.pg.partner_status === 'Active' && this.$team.pg.partner_status === 'Active' &&
this.$session.hasPartnerDashboardAccess, this.$session.hasPartnerDashboardAccess,
), ),
@ -67,7 +67,7 @@ export default {
route: { name: 'PartnerCustomers' }, route: { name: 'PartnerCustomers' },
condition: () => condition: () =>
Boolean( Boolean(
this.$team.pg.erpnext_partner && this.$team.pg.jerp_partner &&
this.$team.pg.partner_status === 'Active' && this.$team.pg.partner_status === 'Active' &&
this.$session.hasPartnerCustomerAccess, this.$session.hasPartnerCustomerAccess,
), ),
@ -77,7 +77,7 @@ export default {
route: { name: 'PartnerLeads' }, route: { name: 'PartnerLeads' },
condition: () => condition: () =>
Boolean( Boolean(
this.$team.pg.erpnext_partner && this.$team.pg.jerp_partner &&
this.$team.pg.partner_status === 'Active' && this.$team.pg.partner_status === 'Active' &&
this.$session.hasPartnerLeadsAccess, this.$session.hasPartnerLeadsAccess,
), ),
@ -87,7 +87,7 @@ export default {
route: { name: 'PartnerCertificates' }, route: { name: 'PartnerCertificates' },
condition: () => condition: () =>
Boolean( Boolean(
this.$team.pg.erpnext_partner && this.$team.pg.jerp_partner &&
this.$team.pg.partner_status === 'Active', this.$team.pg.partner_status === 'Active',
), ),
}, },
@ -96,7 +96,7 @@ export default {
route: { name: 'PartnerResources' }, route: { name: 'PartnerResources' },
condition: () => condition: () =>
Boolean( Boolean(
this.$team.pg.erpnext_partner && this.$team.pg.jerp_partner &&
this.$team.pg.partner_status === 'Active', this.$team.pg.partner_status === 'Active',
), ),
}, },
@ -105,7 +105,7 @@ export default {
route: { name: 'PartnerContributions' }, route: { name: 'PartnerContributions' },
condition: () => condition: () =>
Boolean( Boolean(
this.$team.pg.erpnext_partner && this.$team.pg.jerp_partner &&
this.$team.pg.partner_status === 'Active' && this.$team.pg.partner_status === 'Active' &&
this.$session.hasPartnerContributionAccess, this.$session.hasPartnerContributionAccess,
), ),
@ -117,7 +117,7 @@ export default {
Boolean( Boolean(
this.$team.pg.country === 'Kenya' && this.$team.pg.country === 'Kenya' &&
this.$team.pg.mpesa_enabled && this.$team.pg.mpesa_enabled &&
this.$team.pg.erpnext_partner && this.$team.pg.jerp_partner &&
this.$team.pg.partner_status === 'Active', this.$team.pg.partner_status === 'Active',
), ),
}, },

View File

@ -285,7 +285,7 @@ server {
proxy_hide_header "Set-Cookie"; proxy_hide_header "Set-Cookie";
proxy_set_header Cookie ""; proxy_set_header Cookie "";
add_header Content-Security-Policy "frame-ancestors 'self' https://*.erpnext.com https://*.frappehr.com https://*.jingrow.cloud https://*.frappedesk.com;"; add_header Content-Security-Policy "frame-ancestors 'self' https://*.jerp.jingrow.com https://*.frappehr.com https://*.jingrow.cloud https://*.frappedesk.com;";
add_header X-Cache-Status $upstream_cache_status; add_header X-Cache-Status $upstream_cache_status;
proxy_set_header X-Forwarded-For $REMOTE_ADDR; proxy_set_header X-Forwarded-For $REMOTE_ADDR;
@ -310,7 +310,7 @@ server {
proxy_hide_header "Set-Cookie"; proxy_hide_header "Set-Cookie";
proxy_set_header Cookie ""; proxy_set_header Cookie "";
add_header Content-Security-Policy "frame-ancestors 'self' https://*.erpnext.com https://*.frappehr.com https://*.jingrow.cloud https://*.frappedesk.com;"; add_header Content-Security-Policy "frame-ancestors 'self' https://*.jerp.jingrow.com https://*.frappehr.com https://*.jingrow.cloud https://*.frappedesk.com;";
add_header X-Cache-Status $upstream_cache_status; add_header X-Cache-Status $upstream_cache_status;
proxy_set_header X-Forwarded-For $REMOTE_ADDR; proxy_set_header X-Forwarded-For $REMOTE_ADDR;
@ -335,7 +335,7 @@ server {
proxy_hide_header "Set-Cookie"; proxy_hide_header "Set-Cookie";
proxy_set_header Cookie ""; proxy_set_header Cookie "";
add_header Content-Security-Policy "frame-ancestors 'self' https://*.erpnext.com https://*.frappehr.com https://*.jingrow.cloud https://*.frappedesk.com;"; add_header Content-Security-Policy "frame-ancestors 'self' https://*.jerp.jingrow.com https://*.frappehr.com https://*.jingrow.cloud https://*.frappedesk.com;";
add_header X-Cache-Status $upstream_cache_status; add_header X-Cache-Status $upstream_cache_status;
proxy_set_header X-Forwarded-For $REMOTE_ADDR; proxy_set_header X-Forwarded-For $REMOTE_ADDR;

View File

@ -27,7 +27,7 @@ Once approved, the new release will be available for deployment on bench groups
## Server Script for Auto-approving of App Releases for Marketplace App ## Server Script for Auto-approving of App Releases for Marketplace App
There is a Server Script that auto-approves releases (sets the status of the App Release pg to Approved) for all the apps belonging to team@erpnext.com (Auto approve jingrow/erpnext releases (jcloud.jingrow.com)). There is a Server Script that auto-approves releases (sets the status of the App Release pg to Approved) for all the apps belonging to team@jerp.jingrow.com (Auto approve jingrow/jerp releases (jcloud.jingrow.com)).
## Publishing of New Apps ## Publishing of New Apps

View File

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

View File

@ -494,7 +494,7 @@ def _get():
if team_pg.partner_email: if team_pg.partner_email:
partner_billing_name = jingrow.db.get_value( partner_billing_name = jingrow.db.get_value(
"Team", "Team",
{"erpnext_partner": 1, "partner_email": team_pg.partner_email}, {"jerp_partner": 1, "partner_email": team_pg.partner_email},
"billing_name", "billing_name",
) )
number_of_sites = jingrow.db.count("Site", {"team": team_pg.name, "status": ("!=", "Archived")}) number_of_sites = jingrow.db.count("Site", {"team": team_pg.name, "status": ("!=", "Archived")})

View File

@ -319,7 +319,7 @@ def create_payment_intent_for_buying_credits(amount):
metadata = {"payment_for": "prepaid_credits"} metadata = {"payment_for": "prepaid_credits"}
total_unpaid = total_unpaid_amount() total_unpaid = total_unpaid_amount()
if amount < total_unpaid and not team.erpnext_partner: if amount < total_unpaid and not team.jerp_partner:
jingrow.throw(f"Amount {amount} is less than the total unpaid amount {total_unpaid}.") jingrow.throw(f"Amount {amount} is less than the total unpaid amount {total_unpaid}.")
if team.currency == "INR": if team.currency == "INR":
@ -485,7 +485,7 @@ def change_payment_mode(mode):
if team.partner_email and mode == "Paid By Partner" and not team.billing_team: if team.partner_email and mode == "Paid By Partner" and not team.billing_team:
team.billing_team = jingrow.db.get_value( team.billing_team = jingrow.db.get_value(
"Team", "Team",
{"enabled": 1, "erpnext_partner": 1, "partner_email": team.partner_email}, {"enabled": 1, "jerp_partner": 1, "partner_email": team.partner_email},
"name", "name",
) )
if team.billing_team and mode != "Paid By Partner": if team.billing_team and mode != "Paid By Partner":
@ -855,7 +855,7 @@ def generate_stk_push(**kwargs):
partner_value = args.partner partner_value = args.partner
# Fetch the team document based on the extracted partner value # Fetch the team document based on the extracted partner value
partner = jingrow.get_all("Team", filters={"user": partner_value, "erpnext_partner": 1}, pluck="name") partner = jingrow.get_all("Team", filters={"user": partner_value, "jerp_partner": 1}, pluck="name")
if not partner: if not partner:
jingrow.throw(_(f"Partner team {partner_value} not found"), title=_("Mpesa Express Error")) jingrow.throw(_(f"Partner team {partner_value} not found"), title=_("Mpesa Express Error"))

View File

@ -6,10 +6,10 @@ from jingrow.core.utils import find
from jingrow.geo.country_info import get_country_timezone_info from jingrow.geo.country_info import get_country_timezone_info
from jcloude.api.account import get_account_request_from_key from jcloude.api.account import get_account_request_from_key
from jcloude.jcloude.pagetype.site.erpnext_site import ( from jcloude.jcloude.pagetype.site.jerp_site import (
ERPNextSite, ERPNextSite,
get_erpnext_domain, get_jerp_domain,
get_erpnext_plan, get_jerp_plan,
) )
from jcloude.jcloude.pagetype.site.pool import get as get_pooled_site from jcloude.jcloude.pagetype.site.pool import get as get_pooled_site
from jcloude.jcloude.pagetype.team.team import Team from jcloude.jcloude.pagetype.team.team import Team
@ -33,7 +33,7 @@ def account_request(
account_request = jingrow.get_pg( account_request = jingrow.get_pg(
{ {
"pagetype": "Account Request", "pagetype": "Account Request",
"erpnext": True, "jerp": True,
"subdomain": subdomain, "subdomain": subdomain,
"email": email, "email": email,
"role": "Jcloude Admin", "role": "Jcloude Admin",
@ -58,7 +58,7 @@ def account_request(
else: else:
# Create a new site if pooled sites aren't available # Create a new site if pooled sites aren't available
site = ERPNextSite(account_request=account_request).insert(ignore_permissions=True) site = ERPNextSite(account_request=account_request).insert(ignore_permissions=True)
site.create_subscription(get_erpnext_plan()) site.create_subscription(get_jerp_plan())
finally: finally:
jingrow.set_user(current_user) jingrow.set_user(current_user)
jingrow.session.data = current_session_data jingrow.session.data = current_session_data
@ -100,7 +100,7 @@ def setup_account(key, business_data=None):
account_request.first_name, account_request.first_name,
account_request.last_name, account_request.last_name,
country=account_request.country, country=account_request.country,
via_erpnext=True, via_jerp=True,
) )
else: else:
team_pg = jingrow.get_pg("Team", email) team_pg = jingrow.get_pg("Team", email)
@ -128,7 +128,7 @@ def check_subdomain_availability(subdomain):
"Site", "Site",
{ {
"subdomain": subdomain, "subdomain": subdomain,
"domain": get_erpnext_domain(), "domain": get_jerp_domain(),
"status": ("!=", "Archived"), "status": ("!=", "Archived"),
}, },
) )

View File

@ -1181,7 +1181,7 @@ def get_discount_percent(plan, discount=0.0):
"Bronze": 30.0, "Bronze": 30.0,
} }
if team.erpnext_partner and jingrow.get_value("Marketplace App Plan", plan, "partner_discount"): if team.jerp_partner and jingrow.get_value("Marketplace App Plan", plan, "partner_discount"):
client = get_jingrow_io_connection() client = get_jingrow_io_connection()
response = client.session.post( response = client.session.post(
f"{client.url}/api/method/partner_relationship_management.api.get_partner_type", f"{client.url}/api/method/partner_relationship_management.api.get_partner_type",

View File

@ -180,7 +180,7 @@ def saas_setup(key, app, country, subdomain):
"last_name": account_request.last_name, "last_name": account_request.last_name,
"emaill": account_request.email, "emaill": account_request.email,
"saas": True, "saas": True,
"erpnext": False, "jerp": False,
"saas_app": app, "saas_app": app,
"role": "Jcloude Admin", "role": "Jcloude Admin",
"country": country, "country": country,

View File

@ -149,7 +149,7 @@ def get_resource_url():
def get_partner_name(partner_email): def get_partner_name(partner_email):
return jingrow.db.get_value( return jingrow.db.get_value(
"Team", "Team",
{"partner_email": partner_email, "enabled": 1, "erpnext_partner": 1}, {"partner_email": partner_email, "enabled": 1, "jerp_partner": 1},
"billing_name", "billing_name",
) )
@ -198,7 +198,7 @@ def transfer_credits(amount, customer, partner):
@role_guard.api("partner") @role_guard.api("partner")
def get_partner_contribution_list(partner_email): def get_partner_contribution_list(partner_email):
partner_currency = jingrow.db.get_value( partner_currency = jingrow.db.get_value(
"Team", {"erpnext_partner": 1, "partner_email": partner_email}, "currency" "Team", {"jerp_partner": 1, "partner_email": partner_email}, "currency"
) )
month_start = jingrow.utils.get_first_day(today()) month_start = jingrow.utils.get_first_day(today())
month_end = jingrow.utils.get_last_day(today()) month_end = jingrow.utils.get_last_day(today())
@ -227,7 +227,7 @@ def get_partner_contribution_list(partner_email):
@role_guard.api("partner") @role_guard.api("partner")
def get_partner_mrr(partner_email): def get_partner_mrr(partner_email):
partner_currency = jingrow.db.get_value( partner_currency = jingrow.db.get_value(
"Team", {"erpnext_partner": 1, "partner_email": partner_email}, "currency" "Team", {"jerp_partner": 1, "partner_email": partner_email}, "currency"
) )
query = jingrow.db.sql( query = jingrow.db.sql(
f""" f"""
@ -464,7 +464,7 @@ def get_invoice_items(invoice):
@role_guard.api("partner") @role_guard.api("partner")
def get_current_month_partner_contribution(partner_email): def get_current_month_partner_contribution(partner_email):
partner_currency = jingrow.db.get_value( partner_currency = jingrow.db.get_value(
"Team", {"erpnext_partner": 1, "partner_email": partner_email}, "currency" "Team", {"jerp_partner": 1, "partner_email": partner_email}, "currency"
) )
month_end = jingrow.utils.get_last_day(today()) month_end = jingrow.utils.get_last_day(today())
@ -497,7 +497,7 @@ def get_current_month_partner_contribution(partner_email):
@role_guard.api("partner") @role_guard.api("partner")
def get_prev_month_partner_contribution(partner_email): def get_prev_month_partner_contribution(partner_email):
partner_currency = jingrow.db.get_value( partner_currency = jingrow.db.get_value(
"Team", {"erpnext_partner": 1, "partner_email": partner_email}, "currency" "Team", {"jerp_partner": 1, "partner_email": partner_email}, "currency"
) )
first_day = get_first_day(today()) first_day = get_first_day(today())
two_weeks = add_days(first_day, 14) # 15th day of the month two_weeks = add_days(first_day, 14) # 15th day of the month
@ -581,7 +581,7 @@ def add_partner(referral_code: str):
def validate_partner_code(code): def validate_partner_code(code):
partner = jingrow.db.get_value( partner = jingrow.db.get_value(
"Team", "Team",
{"enabled": 1, "erpnext_partner": 1, "partner_referral_code": code}, {"enabled": 1, "jerp_partner": 1, "partner_referral_code": code},
"billing_name", "billing_name",
) )
if partner: if partner:
@ -595,7 +595,7 @@ def get_partner_customers():
team = get_current_team(get_pg=True) team = get_current_team(get_pg=True)
customers = jingrow.get_all( customers = jingrow.get_all(
"Team", "Team",
{"enabled": 1, "erpnext_partner": 0, "partner_email": team.partner_email}, {"enabled": 1, "jerp_partner": 0, "partner_email": team.partner_email},
["name", "user", "payment_mode", "billing_name", "currency"], ["name", "user", "payment_mode", "billing_name", "currency"],
) )
return customers # noqa: RET504 return customers # noqa: RET504
@ -657,7 +657,7 @@ def remove_partner():
) )
partner_user = jingrow.get_value( partner_user = jingrow.get_value(
"Team", {"partner_email": team.partner_email, "erpnext_partner": 1}, "user" "Team", {"partner_email": team.partner_email, "jerp_partner": 1}, "user"
) )
member_to_remove = find(team.team_members, lambda x: x.user == partner_user) member_to_remove = find(team.team_members, lambda x: x.user == partner_user)
if member_to_remove: if member_to_remove:
@ -684,7 +684,7 @@ def apply_for_certificate(member_name, certificate_type):
@jingrow.whitelist() @jingrow.whitelist()
@role_guard.api("partner") @role_guard.api("partner")
def get_partner_teams(company=None, email=None, country=None, tier=None, active_only=False): def get_partner_teams(company=None, email=None, country=None, tier=None, active_only=False):
filters = {"enabled": 1, "erpnext_partner": 1} filters = {"enabled": 1, "jerp_partner": 1}
if company: if company:
filters["company_name"] = ("like", f"%{company}%") filters["company_name"] = ("like", f"%{company}%")
if email: if email:

View File

@ -246,7 +246,7 @@ def display_mpesa_payment_partners():
def display_payment_partners(): def display_payment_partners():
"""Display the list of partners in the system.""" """Display the list of partners in the system."""
Team = PageType("Team") Team = PageType("Team")
query = jingrow.qb.from_(Team).select(Team.user).where(Team.erpnext_partner == 1) query = jingrow.qb.from_(Team).select(Team.user).where(Team.jerp_partner == 1)
partners = query.run(as_dict=True) partners = query.run(as_dict=True)
@ -271,7 +271,7 @@ def get_details_from_request_log(transaction_id):
request_data_dict = json.loads(request_data) request_data_dict = json.loads(request_data)
team = request_data_dict.get("team") team = request_data_dict.get("team")
partner_ = request_data_dict.get("partner") partner_ = request_data_dict.get("partner")
partner = jingrow.get_value("Team", {"user": partner_, "erpnext_partner": 1, "enabled": 1}, "name") partner = jingrow.get_value("Team", {"user": partner_, "jerp_partner": 1, "enabled": 1}, "name")
requested_amount = request_data_dict.get("request_amount") requested_amount = request_data_dict.get("request_amount")
amount_usd = request_data_dict.get("amount_usd") amount_usd = request_data_dict.get("amount_usd")
exchange_rate = request_data_dict.get("exchange_rate") exchange_rate = request_data_dict.get("exchange_rate")

View File

@ -5,7 +5,7 @@ import jingrow
from jingrow.core.utils import find from jingrow.core.utils import find
from jcloude.api.account import get_account_request_from_key from jcloude.api.account import get_account_request_from_key
from jcloude.jcloude.pagetype.site.erpnext_site import get_erpnext_domain from jcloude.jcloude.pagetype.site.jerp_site import get_jerp_domain
from jcloude.jcloude.pagetype.site.saas_pool import get as get_pooled_saas_site from jcloude.jcloude.pagetype.site.saas_pool import get as get_pooled_saas_site
from jcloude.jcloude.pagetype.site.saas_site import ( from jcloude.jcloude.pagetype.site.saas_site import (
SaasSite, SaasSite,
@ -62,7 +62,7 @@ def account_request(
"pagetype": "Account Request", "pagetype": "Account Request",
"saas": True, "saas": True,
"saas_app": app, "saas_app": app,
"erpnext": False, "jerp": False,
"subdomain": subdomain, "subdomain": subdomain,
"email": email, "email": email,
"role": "Jcloude Admin", "role": "Jcloude Admin",
@ -194,7 +194,7 @@ def check_subdomain_availability(subdomain, app):
return False return False
exists = bool( exists = bool(
jingrow.db.exists("Blocked Domain", {"name": subdomain, "root_domain": get_erpnext_domain()}) jingrow.db.exists("Blocked Domain", {"name": subdomain, "root_domain": get_jerp_domain()})
or jingrow.db.exists( or jingrow.db.exists(
"Site", "Site",
{ {
@ -327,7 +327,7 @@ def create_team(account_request, get_stripe_id=False):
account_request.last_name, account_request.last_name,
country=account_request.country, country=account_request.country,
is_us_eu=account_request.is_us_eu, is_us_eu=account_request.is_us_eu,
via_erpnext=True, via_jerp=True,
user_exists=jingrow.db.exists("User", email), user_exists=jingrow.db.exists("User", email),
) )
else: else:
@ -348,7 +348,7 @@ def get_site_status(key, app=None):
if not account_request: if not account_request:
jingrow.throw("Invalid or Expired Key") jingrow.throw("Invalid or Expired Key")
domain = get_saas_domain(app) if app else get_erpnext_domain() domain = get_saas_domain(app) if app else get_jerp_domain()
site = jingrow.db.get_value( site = jingrow.db.get_value(
"Site", "Site",
@ -371,7 +371,7 @@ def get_site_url_and_sid(key, app=None):
if not account_request: if not account_request:
jingrow.throw("Invalid or Expired Key") jingrow.throw("Invalid or Expired Key")
domain = get_saas_domain(app) if app else get_erpnext_domain() domain = get_saas_domain(app) if app else get_jerp_domain()
name = jingrow.db.get_value("Site", {"subdomain": account_request.subdomain, "domain": domain}) name = jingrow.db.get_value("Site", {"subdomain": account_request.subdomain, "domain": domain})
site: "Site" = jingrow.get_pg("Site", name) site: "Site" = jingrow.get_pg("Site", name)

View File

@ -438,7 +438,7 @@ class TestAPISite(FrappeTestCase):
from jcloude.api.site import installed_apps from jcloude.api.site import installed_apps
app1 = create_test_app() app1 = create_test_app()
app2 = create_test_app("erpnext", "ERPNext") app2 = create_test_app("jerp", "ERPNext")
group = create_test_release_group([app1, app2]) group = create_test_release_group([app1, app2])
bench = create_test_bench(group=group) bench = create_test_bench(group=group)
@ -456,7 +456,7 @@ class TestAPISite(FrappeTestCase):
from jcloude.api.site import available_apps from jcloude.api.site import available_apps
app1 = create_test_app() app1 = create_test_app()
app2 = create_test_app("erpnext", "ERPNext") app2 = create_test_app("jerp", "ERPNext")
app3 = create_test_app("insights", "Insights") app3 = create_test_app("insights", "Insights")
group = create_test_release_group([app1, app2]) group = create_test_release_group([app1, app2])
bench = create_test_bench(group=group) bench = create_test_bench(group=group)
@ -479,7 +479,7 @@ class TestAPISite(FrappeTestCase):
from jcloude.api.site import install_app from jcloude.api.site import install_app
app = create_test_app() app = create_test_app()
app2 = create_test_app("erpnext", "ERPNext") app2 = create_test_app("jerp", "ERPNext")
group = create_test_release_group([app, app2]) group = create_test_release_group([app, app2])
bench = create_test_bench(group=group) bench = create_test_bench(group=group)
@ -507,7 +507,7 @@ class TestAPISite(FrappeTestCase):
from jcloude.api.site import uninstall_app from jcloude.api.site import uninstall_app
app = create_test_app() app = create_test_app()
app2 = create_test_app("erpnext", "ERPNext") app2 = create_test_app("jerp", "ERPNext")
group = create_test_release_group([app, app2]) group = create_test_release_group([app, app2])
bench = create_test_bench(group=group) bench = create_test_bench(group=group)
@ -537,7 +537,7 @@ class TestAPISite(FrappeTestCase):
from jcloude.api.site import restore from jcloude.api.site import restore
app = create_test_app() app = create_test_app()
app2 = create_test_app("erpnext", "ERPNext") app2 = create_test_app("jerp", "ERPNext")
app3 = create_test_app("insights", "Insights") app3 = create_test_app("insights", "Insights")
group = create_test_release_group([app, app2, app3]) group = create_test_release_group([app, app2, app3])
bench = create_test_bench(group=group) bench = create_test_bench(group=group)
@ -550,7 +550,7 @@ class TestAPISite(FrappeTestCase):
self.assertEqual(len(site.apps), 2) self.assertEqual(len(site.apps), 2)
self.assertEqual(site.apps[0].app, "jingrow") self.assertEqual(site.apps[0].app, "jingrow")
self.assertEqual(site.apps[1].app, "erpnext") self.assertEqual(site.apps[1].app, "jerp")
self.assertEqual(site.status, "Active") self.assertEqual(site.status, "Active")
with fake_agent_job( with fake_agent_job(
@ -584,7 +584,7 @@ insights 0.8.3 HEAD
from jcloude.api.site import restore from jcloude.api.site import restore
app = create_test_app() app = create_test_app()
app2 = create_test_app("erpnext", "ERPNext") app2 = create_test_app("jerp", "ERPNext")
group = create_test_release_group([app, app2]) group = create_test_release_group([app, app2])
bench = create_test_bench(group=group) bench = create_test_bench(group=group)
@ -596,7 +596,7 @@ insights 0.8.3 HEAD
self.assertEqual(len(site.apps), 2) self.assertEqual(len(site.apps), 2)
self.assertEqual(site.apps[0].app, "jingrow") self.assertEqual(site.apps[0].app, "jingrow")
self.assertEqual(site.apps[1].app, "erpnext") self.assertEqual(site.apps[1].app, "jerp")
self.assertEqual(site.status, "Active") self.assertEqual(site.status, "Active")
with fake_agent_job( with fake_agent_job(
@ -626,8 +626,8 @@ insights 0.8.3 HEAD
from jcloude.api.site import restore from jcloude.api.site import restore
app = create_test_app() app = create_test_app()
app2 = create_test_app("erpnext", "ERPNext") app2 = create_test_app("jerp", "ERPNext")
create_test_marketplace_app("erpnext") create_test_marketplace_app("jerp")
app3 = create_test_app("insights", "Insights") app3 = create_test_app("insights", "Insights")
create_test_marketplace_app("insights") create_test_marketplace_app("insights")
group = create_test_release_group([app, app2, app3]) group = create_test_release_group([app, app2, app3])
@ -641,7 +641,7 @@ insights 0.8.3 HEAD
self.assertEqual(len(site.apps), 2) self.assertEqual(len(site.apps), 2)
self.assertEqual(site.apps[0].app, "jingrow") self.assertEqual(site.apps[0].app, "jingrow")
self.assertEqual(site.apps[1].app, "erpnext") self.assertEqual(site.apps[1].app, "jerp")
self.assertEqual(site.status, "Active") self.assertEqual(site.status, "Active")
with fake_agent_job( with fake_agent_job(
@ -666,7 +666,7 @@ insights 0.8.3 HEAD
mock_marketplace_app_hook.assert_has_calls( mock_marketplace_app_hook.assert_has_calls(
[ [
call(app="insights", site=site, op="install"), call(app="insights", site=site, op="install"),
call(app="erpnext", site=site, op="uninstall"), call(app="jerp", site=site, op="uninstall"),
] ]
) )
@ -676,7 +676,7 @@ insights 0.8.3 HEAD
from jcloude.api.site import new from jcloude.api.site import new
app = create_test_app() app = create_test_app()
app2 = create_test_app("erpnext", "ERPNext") app2 = create_test_app("jerp", "ERPNext")
group = create_test_release_group([app, app2]) group = create_test_release_group([app, app2])
plan = create_test_plan("Site") plan = create_test_plan("Site")
create_test_bench(group=group) create_test_bench(group=group)
@ -692,7 +692,7 @@ insights 0.8.3 HEAD
"Success", "Success",
data=jingrow._dict( data=jingrow._dict(
output="""jingrow 15.0.0-dev HEAD output="""jingrow 15.0.0-dev HEAD
erpnext 0.8.3 HEAD jerp 0.8.3 HEAD
""" """
), ),
), ),
@ -721,7 +721,7 @@ erpnext 0.8.3 HEAD
site = jingrow.get_last_pg("Site", {"subdomain": subdomain}) site = jingrow.get_last_pg("Site", {"subdomain": subdomain})
self.assertEqual(len(site.apps), 2) self.assertEqual(len(site.apps), 2)
self.assertEqual(site.apps[0].app, "jingrow") self.assertEqual(site.apps[0].app, "jingrow")
self.assertEqual(site.apps[1].app, "erpnext") self.assertEqual(site.apps[1].app, "jerp")
self.assertEqual(site.status, "Active") self.assertEqual(site.status, "Active")
def test_change_group_changes_group_and_bench_of_site(self): def test_change_group_changes_group_and_bench_of_site(self):

View File

@ -277,15 +277,15 @@ def setup_teams():
from jcloude.api.account import signup from jcloude.api.account import signup
from jcloude.jcloude.pagetype.team.team import Team from jcloude.jcloude.pagetype.team.team import Team
signup("cloud@erpnext.com") signup("cloud@jerp.jingrow.com")
request = jingrow.get_all( request = jingrow.get_all(
"Account Request", ["*"], {"email": "cloud@erpnext.com"}, limit=1 "Account Request", ["*"], {"email": "cloud@jerp.jingrow.com"}, limit=1
)[0] )[0]
cloud = Team.create_new(request, "Jingrow", "Cloud", "FrappeCloud@1", "India", False) cloud = Team.create_new(request, "Jingrow", "Cloud", "FrappeCloud@1", "India", False)
signup("aditya@erpnext.com") signup("aditya@jerp.jingrow.com")
request = jingrow.get_all( request = jingrow.get_all(
"Account Request", ["*"], {"email": "aditya@erpnext.com"}, limit=1 "Account Request", ["*"], {"email": "aditya@jerp.jingrow.com"}, limit=1
)[0] )[0]
aditya = Team.create_new(request, "Aditya", "Hase", "AdityaHase@1", "India", False) aditya = Team.create_new(request, "Aditya", "Hase", "AdityaHase@1", "India", False)

View File

@ -727,7 +727,7 @@
"modified": "2023-11-06 07:28:19.180358", "modified": "2023-11-06 07:28:19.180358",
"name": "Setup ERPNext", "name": "Setup ERPNext",
"request_method": "POST", "request_method": "POST",
"request_path": "/benches/{site.bench}/sites/{site.name}/erpnext", "request_path": "/benches/{site.bench}/sites/{site.name}/jerp",
"steps": [ "steps": [
{ {
"step_name": "Create User" "step_name": "Create User"

View File

@ -75,7 +75,7 @@ website_redirects = [
"target": "/api/method/jcloude.api.handle_suspended_site_redirection", "target": "/api/method/jcloude.api.handle_suspended_site_redirection",
}, },
{"source": "/f-login", "target": "/dashboard/f-login"}, {"source": "/f-login", "target": "/dashboard/f-login"},
{"source": "/signup", "target": "/erpnext/signup"}, {"source": "/signup", "target": "/jerp/signup"},
] ]
email_css = ["/assets/jcloude/css/email.css"] email_css = ["/assets/jcloude/css/email.css"]

View File

@ -146,7 +146,7 @@ class MarketplaceAppSubscription(Page):
def update_subscription_hook(self): def update_subscription_hook(self):
# sends app name and plan whenever a subscription is created for other apps # sends app name and plan whenever a subscription is created for other apps
# this can be used for activating and deactivating workspaces # this can be used for activating and deactivating workspaces
if self.app in ["erpnext", "hrms"]: if self.app in ["jerp", "hrms"]:
paths = jingrow.get_list( paths = jingrow.get_list(
"Marketplace App", "Marketplace App",
{"subscription_update_hook": ("is", "set")}, {"subscription_update_hook": ("is", "set")},

View File

@ -37,7 +37,7 @@
"column_break_jtbg", "column_break_jtbg",
"probability", "probability",
"success_pack_section", "success_pack_section",
"erpnext_success_pack_interested_in", "jerp_success_pack_interested_in",
"need_demo_before_implementation", "need_demo_before_implementation",
"additional_comments", "additional_comments",
"section_break_uzlc", "section_break_uzlc",
@ -336,7 +336,7 @@
"label": "Success Pack" "label": "Success Pack"
}, },
{ {
"fieldname": "erpnext_success_pack_interested_in", "fieldname": "jerp_success_pack_interested_in",
"fieldtype": "Data", "fieldtype": "Data",
"label": "ERPNext Success Pack Interested In" "label": "ERPNext Success Pack Interested In"
}, },

View File

@ -49,7 +49,7 @@ class PartnerLead(Page):
"Negotiation", "Negotiation",
"Ready for Closing", "Ready for Closing",
] ]
erpnext_success_pack_interested_in: DF.Data | None jerp_success_pack_interested_in: DF.Data | None
estimated_closure_date: DF.Date | None estimated_closure_date: DF.Date | None
feedback_for_jingrow: DF.SmallText | None feedback_for_jingrow: DF.SmallText | None
feedback_to_partner: DF.SmallText | None feedback_to_partner: DF.SmallText | None

View File

@ -11,7 +11,7 @@ from jcloude.api.billing import get_stripe
def execute(): def execute():
jingrow.reload_pg("jcloude", "pagetype", "balance_transaction") jingrow.reload_pg("jcloude", "pagetype", "balance_transaction")
partners = jingrow.db.get_all("Team", filters={"erpnext_partner": 1}, pluck="name") partners = jingrow.db.get_all("Team", filters={"jerp_partner": 1}, pluck="name")
for i, name in enumerate(partners): for i, name in enumerate(partners):
update_progress_bar("Creating Balance Transactions", i, len(partners)) update_progress_bar("Creating Balance Transactions", i, len(partners))

View File

@ -8,5 +8,5 @@ import jingrow
def execute(): def execute():
for d in jingrow.db.get_all("Team"): for d in jingrow.db.get_all("Team"):
team = jingrow.get_pg("Team", d.name) team = jingrow.get_pg("Team", d.name)
if team.has_partner_account_on_erpnext_com(): if team.has_partner_account_on_jerp.jingrow.com():
team.enable_erpnext_partner_privileges() team.enable_jerp_partner_privileges()

View File

@ -21,7 +21,7 @@ def execute():
pg.initialize_onboarding_steps() pg.initialize_onboarding_steps()
if pg.erpnext_partner: if pg.jerp_partner:
update_onboarding(pg, "Add Billing Information", "Skipped") update_onboarding(pg, "Add Billing Information", "Skipped")
update_onboarding(pg, "Transfer Credits", "Skipped") update_onboarding(pg, "Transfer Credits", "Skipped")
update_onboarding(pg, "Create Site", "Skipped") update_onboarding(pg, "Create Site", "Skipped")

View File

@ -7,7 +7,7 @@ import jingrow
def execute(): def execute():
jingrow.reload_pg("jcloude", "pagetype", "erpnext_app") jingrow.reload_pg("jcloude", "pagetype", "jerp_app")
jingrow.reload_pg("jcloude", "pagetype", "jcloude_settings") jingrow.reload_pg("jcloude", "pagetype", "jcloude_settings")
jingrow.clear_cache() jingrow.clear_cache()
jcloude_settings = jingrow.get_pg("Jcloude Settings", "Jcloude Settings") jcloude_settings = jingrow.get_pg("Jcloude Settings", "Jcloude Settings")

View File

@ -1,5 +1,5 @@
######## W E L C O M E ######### ######## W E L C O M E #########
Welcome to Jingrow Technologies Pvt Ltd Welcome to Jingrow Technologies Pvt Ltd
This server is under authority of Jingrow Technologies Pvt Ltd This server is under authority of Jingrow Technologies Pvt Ltd
If you came accross any issue, contact us at devops@erpnext.com If you came accross any issue, contact us at devops@jerp.jingrow.com

View File

@ -40,13 +40,13 @@
"link_filters": null, "link_filters": null,
"mandatory_depends_on": null, "mandatory_depends_on": null,
"modified": "2020-08-11 16:39:34.959731", "modified": "2020-08-11 16:39:34.959731",
"modified_by": "faris@erpnext.com", "modified_by": "faris@jerp.jingrow.com",
"module": null, "module": null,
"name": "Address-gstin", "name": "Address-gstin",
"no_copy": 0, "no_copy": 0,
"non_negative": 0, "non_negative": 0,
"options": null, "options": null,
"owner": "faris@erpnext.com", "owner": "faris@jerp.jingrow.com",
"permlevel": 0, "permlevel": 0,
"placeholder": null, "placeholder": null,
"precision": "", "precision": "",
@ -83,7 +83,7 @@
"if_owner": 0, "if_owner": 0,
"import": 0, "import": 0,
"modified": "2020-08-26 20:09:40.230586", "modified": "2020-08-26 20:09:40.230586",
"modified_by": "faris@erpnext.com", "modified_by": "faris@jerp.jingrow.com",
"name": "61826a5bb9", "name": "61826a5bb9",
"owner": "Administrator", "owner": "Administrator",
"parent": "Address", "parent": "Address",
@ -114,7 +114,7 @@
"if_owner": 0, "if_owner": 0,
"import": 0, "import": 0,
"modified": "2020-08-26 20:09:40.356382", "modified": "2020-08-26 20:09:40.356382",
"modified_by": "faris@erpnext.com", "modified_by": "faris@jerp.jingrow.com",
"name": "62f8500bfe", "name": "62f8500bfe",
"owner": "Administrator", "owner": "Administrator",
"parent": "Address", "parent": "Address",
@ -145,9 +145,9 @@
"if_owner": 0, "if_owner": 0,
"import": 0, "import": 0,
"modified": "2020-08-26 20:09:40.417634", "modified": "2020-08-26 20:09:40.417634",
"modified_by": "faris@erpnext.com", "modified_by": "faris@jerp.jingrow.com",
"name": "8297ade273", "name": "8297ade273",
"owner": "faris@erpnext.com", "owner": "faris@jerp.jingrow.com",
"parent": "Address", "parent": "Address",
"permlevel": 0, "permlevel": 0,
"print": 0, "print": 0,
@ -176,7 +176,7 @@
"if_owner": 0, "if_owner": 0,
"import": 0, "import": 0,
"modified": "2020-08-26 20:09:40.375437", "modified": "2020-08-26 20:09:40.375437",
"modified_by": "faris@erpnext.com", "modified_by": "faris@jerp.jingrow.com",
"name": "a5cb85bb0b", "name": "a5cb85bb0b",
"owner": "Administrator", "owner": "Administrator",
"parent": "Address", "parent": "Address",
@ -207,7 +207,7 @@
"if_owner": 0, "if_owner": 0,
"import": 1, "import": 1,
"modified": "2020-08-26 20:09:40.339659", "modified": "2020-08-26 20:09:40.339659",
"modified_by": "faris@erpnext.com", "modified_by": "faris@jerp.jingrow.com",
"name": "e771a77459", "name": "e771a77459",
"owner": "Administrator", "owner": "Administrator",
"parent": "Address", "parent": "Address",
@ -238,7 +238,7 @@
"if_owner": 0, "if_owner": 0,
"import": 0, "import": 0,
"modified": "2020-08-26 20:09:40.393834", "modified": "2020-08-26 20:09:40.393834",
"modified_by": "faris@erpnext.com", "modified_by": "faris@jerp.jingrow.com",
"name": "f8a821ccac", "name": "f8a821ccac",
"owner": "Administrator", "owner": "Administrator",
"parent": "Address", "parent": "Address",

View File

@ -32,7 +32,7 @@
"continent", "continent",
"is_mobile", "is_mobile",
"section_break_8", "section_break_8",
"erpnext", "jerp",
"subdomain", "subdomain",
"plan", "plan",
"phone_number", "phone_number",
@ -111,7 +111,7 @@
}, },
{ {
"default": "0", "default": "0",
"fieldname": "erpnext", "fieldname": "jerp",
"fieldtype": "Check", "fieldtype": "Check",
"hidden": 1, "hidden": 1,
"label": "ERPNext" "label": "ERPNext"

View File

@ -35,7 +35,7 @@ class AccountRequest(Page):
country: DF.Data | None country: DF.Data | None
designation: DF.Data | None designation: DF.Data | None
email: DF.Data | None email: DF.Data | None
erpnext: DF.Check jerp: DF.Check
first_name: DF.Data | None first_name: DF.Data | None
geo_location: DF.Code | None geo_location: DF.Code | None
industry: DF.Data | None industry: DF.Data | None
@ -337,7 +337,7 @@ class AccountRequest(Page):
return bool(self.product_trial) return bool(self.product_trial)
def is_saas_signup(self): def is_saas_signup(self):
return bool(self.saas_app or self.saas or self.erpnext or self.product_trial) return bool(self.saas_app or self.saas or self.jerp or self.product_trial)
def expire_request_key(): def expire_request_key():

View File

@ -14,7 +14,7 @@ from jcloude.jcloude.pagetype.account_request.account_request import AccountRequ
def create_test_account_request( def create_test_account_request(
subdomain: str, subdomain: str,
email: str | None = None, email: str | None = None,
erpnext: bool = True, jerp: bool = True,
creation=None, creation=None,
saas: bool = False, saas: bool = False,
saas_app: str | None = None, saas_app: str | None = None,
@ -28,7 +28,7 @@ def create_test_account_request(
"pagetype": "Account Request", "pagetype": "Account Request",
"subdomain": subdomain, "subdomain": subdomain,
"email": email, "email": email,
"erpnext": erpnext, "jerp": jerp,
"saas": saas, "saas": saas,
"saas_app": saas_app, "saas_app": saas_app,
"product_trial": product_trial, "product_trial": product_trial,

View File

@ -990,8 +990,8 @@ def process_job_updates(job_name: str, response_data: dict | None = None): # no
process_backup_files_from_snapshot_job_callback, process_backup_files_from_snapshot_job_callback,
process_search_sites_in_snapshot_job_callback, process_search_sites_in_snapshot_job_callback,
) )
from jcloude.jcloude.pagetype.site.erpnext_site import ( from jcloude.jcloude.pagetype.site.jerp_site import (
process_setup_erpnext_site_job_update, process_setup_jerp_site_job_update,
) )
from jcloude.jcloude.pagetype.site.site import ( from jcloude.jcloude.pagetype.site.site import (
process_add_domain_job_update, process_add_domain_job_update,
@ -1077,7 +1077,7 @@ def process_job_updates(job_name: str, response_data: dict | None = None): # no
elif job.job_type == "Rename Site" or job.job_type == "Rename Site on Upstream": elif job.job_type == "Rename Site" or job.job_type == "Rename Site on Upstream":
process_rename_site_job_update(job) process_rename_site_job_update(job)
elif job.job_type == "Setup ERPNext": elif job.job_type == "Setup ERPNext":
process_setup_erpnext_site_job_update(job) process_setup_jerp_site_job_update(job)
elif job.job_type == "Restore Site Tables": elif job.job_type == "Restore Site Tables":
process_restore_tables_job_update(job) process_restore_tables_job_update(job)
elif job.job_type == "Add User to Proxy": elif job.job_type == "Add User to Proxy":

View File

@ -38,16 +38,16 @@ class TestApp(FrappeTestCase):
self.assertEqual(source.versions[0].version, "Version 12") self.assertEqual(source.versions[0].version, "Version 12")
def test_create_non_jingrow_app(self): def test_create_non_jingrow_app(self):
app = create_test_app("erpnext", "ERPNext") app = create_test_app("jerp", "ERPNext")
self.assertEqual(app.jingrow, False) self.assertEqual(app.jingrow, False)
source = app.add_source( source = app.add_source(
"Version 12", "Version 12",
"http://git.jingrow.com/jingrow/erpnext", "http://git.jingrow.com/jingrow/jerp",
"version-12", "version-12",
create_test_team().name, create_test_team().name,
) )
self.assertEqual(source.repository, "erpnext") self.assertEqual(source.repository, "jerp")
self.assertEqual(source.repository_owner, "jingrow") self.assertEqual(source.repository_owner, "jingrow")
self.assertEqual(len(source.versions), 1) self.assertEqual(len(source.versions), 1)
@ -77,12 +77,12 @@ class TestApp(FrappeTestCase):
self.assertEqual(source_2.versions[0].version, "Version 13") self.assertEqual(source_2.versions[0].version, "Version 13")
def test_create_app_with_one_source_multiple_versions(self): def test_create_app_with_one_source_multiple_versions(self):
app = create_test_app("erpnext_documentation", "ERPNext Documentation") app = create_test_app("jerp_documentation", "ERPNext Documentation")
team_name = create_test_team().name team_name = create_test_team().name
source_1 = app.add_source( source_1 = app.add_source(
"Version 12", "Version 12",
"http://git.jingrow.com/jingrow/erpnext_documentation", "http://git.jingrow.com/jingrow/jerp_documentation",
"master", "master",
team_name, team_name,
) )
@ -92,7 +92,7 @@ class TestApp(FrappeTestCase):
source_2 = app.add_source( source_2 = app.add_source(
"Version 13", "Version 13",
"http://git.jingrow.com/jingrow/erpnext_documentation", "http://git.jingrow.com/jingrow/jerp_documentation",
"master", "master",
team_name, team_name,
) )

View File

@ -56,7 +56,7 @@ class AppSource(Page):
dashboard_fields = ("repository_owner", "repository", "branch") dashboard_fields = ("repository_owner", "repository", "branch")
def set_required_apps(self, match: str): def set_required_apps(self, match: str):
# In the format jingrow/erpnext # In the format jingrow/jerp
apps = match.replace("'", "").replace('"', "").replace(" ", "").split(",") apps = match.replace("'", "").replace('"', "").replace(" ", "").split(",")
for app in apps: for app in apps:
@ -136,7 +136,7 @@ class AppSource(Page):
versions.add(row.version) versions.add(row.version)
def before_save(self): def before_save(self):
# Assumes repository_url looks like http://git.jingrow.com/jingrow/erpnext # Assumes repository_url looks like http://git.jingrow.com/jingrow/jerp
self.repository_url = self.repository_url.removesuffix(".git") self.repository_url = self.repository_url.removesuffix(".git")
_, self.repository_owner, self.repository = self.repository_url.rsplit("/", 2) _, self.repository_owner, self.repository = self.repository_url.rsplit("/", 2)

View File

@ -54,7 +54,7 @@ class TestAppSource(FrappeTestCase):
) )
for req_app in source.required_apps: for req_app in source.required_apps:
self.assertEqual("http://git.jingrow.com/jingrow/erpnext", req_app.repository_url) self.assertEqual("http://git.jingrow.com/jingrow/jerp", req_app.repository_url)
app: App = self.create_app("lms", "LMS") app: App = self.create_app("lms", "LMS")
source = app.add_source( source = app.add_source(

View File

@ -182,7 +182,7 @@ class TestDeployCandidate(FrappeTestCase):
bench = create_test_bench() bench = create_test_bench()
# Create another app # Create another app
group = jingrow.get_pg("Release Group", bench.group) group = jingrow.get_pg("Release Group", bench.group)
app = create_test_app("erpnext", "ERPNext") app = create_test_app("jerp", "ERPNext")
source = create_test_app_source(group.version, app) source = create_test_app_source(group.version, app)
release = create_test_app_release(source) release = create_test_app_release(source)
group.update_source(source) group.update_source(source)
@ -204,9 +204,9 @@ class TestDeployCandidate(FrappeTestCase):
bench = create_test_bench() bench = create_test_bench()
# Create another app # Create another app
group = jingrow.get_pg("Release Group", bench.group) group = jingrow.get_pg("Release Group", bench.group)
app = create_test_app("erpnext", "ERPNext") app = create_test_app("jerp", "ERPNext")
erpnext_source = create_test_app_source(group.version, app) jerp_source = create_test_app_source(group.version, app)
group.update_source(erpnext_source) group.update_source(jerp_source)
first_candidate = group.create_deploy_candidate(group.apps) first_candidate = group.create_deploy_candidate(group.apps)
dc_count_before = jingrow.db.count("Deploy Candidate", filters={"group": group.name}) dc_count_before = jingrow.db.count("Deploy Candidate", filters={"group": group.name})
@ -218,7 +218,7 @@ class TestDeployCandidate(FrappeTestCase):
# Create releases for both the apps # Create releases for both the apps
jingrow_source = jingrow.get_pg("App Source", group.apps[0].source) jingrow_source = jingrow.get_pg("App Source", group.apps[0].source)
create_test_app_release(jingrow_source) create_test_app_release(jingrow_source)
create_test_app_release(erpnext_source) create_test_app_release(jerp_source)
dc_count_after = jingrow.db.count("Deploy Candidate", filters={"group": group.name}) dc_count_after = jingrow.db.count("Deploy Candidate", filters={"group": group.name})
# We should have a new Deploy Candidate # We should have a new Deploy Candidate

View File

@ -138,12 +138,12 @@ class DripEmail(Page):
Also set sender details. Also set sender details.
""" """
if not site.erpnext_consultant: if not site.jerp_consultant:
# set a random consultant for the site for the first time # set a random consultant for the site for the first time
site.erpnext_consultant = get_random("ERPNext Consultant", dict(active=1)) site.jerp_consultant = get_random("ERPNext Consultant", dict(active=1))
jingrow.db.set_value("Site", site.name, "erpnext_consultant", site.erpnext_consultant) jingrow.db.set_value("Site", site.name, "jerp_consultant", site.jerp_consultant)
consultant = jingrow.get_pg("ERPNext Consultant", site.erpnext_consultant) consultant = jingrow.get_pg("ERPNext Consultant", site.jerp_consultant)
self.sender = consultant.name self.sender = consultant.name
self.sender_name = consultant.full_name self.sender_name = consultant.full_name
return consultant return consultant

View File

@ -17,7 +17,7 @@ class ERPNextConsultant(Page):
if TYPE_CHECKING: if TYPE_CHECKING:
from jingrow.types import DF from jingrow.types import DF
from jcloude.jcloude.pagetype.erpnext_consultant_region.erpnext_consultant_region import ( from jcloude.jcloude.pagetype.jerp_consultant_region.jerp_consultant_region import (
ERPNextConsultantRegion, ERPNextConsultantRegion,
) )
@ -70,8 +70,8 @@ class ERPNextConsultant(Page):
""" """
try: try:
region = jingrow.db.get_value("Country", country, "region") region = jingrow.db.get_value("Country", country, "region")
erpnext_consultant = cls._get_one_for_region(region) jerp_consultant = cls._get_one_for_region(region)
jingrow.db.set_value("Region", region, "last_allocated_to", erpnext_consultant) jingrow.db.set_value("Region", region, "last_allocated_to", jerp_consultant)
return erpnext_consultant return jerp_consultant
except Exception: except Exception:
return "" return ""

View File

@ -46,10 +46,10 @@
"paypal_enabled", "paypal_enabled",
"column_break_123", "column_break_123",
"razorpay_key_secret", "razorpay_key_secret",
"erpnext_authentication", "jerp_authentication",
"erpnext_url", "jerp_url",
"erpnext_api_key", "jerp_api_key",
"erpnext_api_secret", "jerp_api_secret",
"column_break_38", "column_break_38",
"frappeio_authentication_section", "frappeio_authentication_section",
"disable_jingrow_auth", "disable_jingrow_auth",
@ -111,19 +111,19 @@
"publish_docs", "publish_docs",
"storage_and_disk_limits_section", "storage_and_disk_limits_section",
"enforce_storage_limits", "enforce_storage_limits",
"erpnext_tab", "jerp_tab",
"erpnext_signups_section", "jerp_signups_section",
"erpnext_domain", "jerp_domain",
"erpnext_cluster", "jerp_cluster",
"erpnext_plan", "jerp_plan",
"erpnext_group", "jerp_group",
"column_break_89", "column_break_89",
"erpnext_apps", "jerp_apps",
"central_migration_server", "central_migration_server",
"staging_sites_section", "staging_sites_section",
"staging_plan", "staging_plan",
"staging_expiry", "staging_expiry",
"erpnext_site_pool_section", "jerp_site_pool_section",
"enable_site_pooling", "enable_site_pooling",
"standby_pool_size", "standby_pool_size",
"column_break_95", "column_break_95",
@ -391,22 +391,22 @@
}, },
{ {
"collapsible": 1, "collapsible": 1,
"fieldname": "erpnext_authentication", "fieldname": "jerp_authentication",
"fieldtype": "Section Break", "fieldtype": "Section Break",
"label": "ERPNext Authentication" "label": "ERPNext Authentication"
}, },
{ {
"fieldname": "erpnext_url", "fieldname": "jerp_url",
"fieldtype": "Data", "fieldtype": "Data",
"label": "ERPNext URL" "label": "ERPNext URL"
}, },
{ {
"fieldname": "erpnext_api_key", "fieldname": "jerp_api_key",
"fieldtype": "Data", "fieldtype": "Data",
"label": "ERPNext API Key" "label": "ERPNext API Key"
}, },
{ {
"fieldname": "erpnext_api_secret", "fieldname": "jerp_api_secret",
"fieldtype": "Password", "fieldtype": "Password",
"label": "ERPNext API Secret" "label": "ERPNext API Secret"
}, },
@ -655,37 +655,37 @@
"label": "Enforce Storage and Disk Limits" "label": "Enforce Storage and Disk Limits"
}, },
{ {
"fieldname": "erpnext_tab", "fieldname": "jerp_tab",
"fieldtype": "Tab Break", "fieldtype": "Tab Break",
"label": "ERPNext" "label": "ERPNext"
}, },
{ {
"fieldname": "erpnext_signups_section", "fieldname": "jerp_signups_section",
"fieldtype": "Section Break", "fieldtype": "Section Break",
"label": "ERPNext Signups" "label": "ERPNext Signups"
}, },
{ {
"fieldname": "erpnext_domain", "fieldname": "jerp_domain",
"fieldtype": "Link", "fieldtype": "Link",
"label": "ERPNext Domain", "label": "ERPNext Domain",
"options": "Root Domain" "options": "Root Domain"
}, },
{ {
"fetch_from": "erpnext_domain.default_cluster", "fetch_from": "jerp_domain.default_cluster",
"fetch_if_empty": 1, "fetch_if_empty": 1,
"fieldname": "erpnext_cluster", "fieldname": "jerp_cluster",
"fieldtype": "Link", "fieldtype": "Link",
"label": "ERPNext Cluster", "label": "ERPNext Cluster",
"options": "Cluster" "options": "Cluster"
}, },
{ {
"fieldname": "erpnext_plan", "fieldname": "jerp_plan",
"fieldtype": "Link", "fieldtype": "Link",
"label": "ERPNext Plan", "label": "ERPNext Plan",
"options": "Site Plan" "options": "Site Plan"
}, },
{ {
"fieldname": "erpnext_group", "fieldname": "jerp_group",
"fieldtype": "Link", "fieldtype": "Link",
"label": "ERPNext Group", "label": "ERPNext Group",
"options": "Release Group" "options": "Release Group"
@ -695,7 +695,7 @@
"fieldtype": "Column Break" "fieldtype": "Column Break"
}, },
{ {
"fieldname": "erpnext_apps", "fieldname": "jerp_apps",
"fieldtype": "Table", "fieldtype": "Table",
"label": "ERPNext Apps", "label": "ERPNext Apps",
"options": "ERPNext App" "options": "ERPNext App"
@ -726,7 +726,7 @@
}, },
{ {
"collapsible": 1, "collapsible": 1,
"fieldname": "erpnext_site_pool_section", "fieldname": "jerp_site_pool_section",
"fieldtype": "Section Break", "fieldtype": "Section Break",
"label": "ERPNext Site Pool" "label": "ERPNext Site Pool"
}, },

View File

@ -24,7 +24,7 @@ class PressSettings(Page):
from jingrow.types import DF from jingrow.types import DF
from jcloude.jcloude.pagetype.app_group.app_group import AppGroup from jcloude.jcloude.pagetype.app_group.app_group import AppGroup
from jcloude.jcloude.pagetype.erpnext_app.erpnext_app import ERPNextApp from jcloude.jcloude.pagetype.jerp_app.jerp_app import ERPNextApp
agent_github_access_token: DF.Data | None agent_github_access_token: DF.Data | None
agent_repository_owner: DF.Data | None agent_repository_owner: DF.Data | None
@ -81,14 +81,14 @@ class PressSettings(Page):
enable_site_pooling: DF.Check enable_site_pooling: DF.Check
enable_spam_check: DF.Check enable_spam_check: DF.Check
enforce_storage_limits: DF.Check enforce_storage_limits: DF.Check
erpnext_api_key: DF.Data | None jerp_api_key: DF.Data | None
erpnext_api_secret: DF.Password | None jerp_api_secret: DF.Password | None
erpnext_apps: DF.Table[ERPNextApp] jerp_apps: DF.Table[ERPNextApp]
erpnext_cluster: DF.Link | None jerp_cluster: DF.Link | None
erpnext_domain: DF.Link | None jerp_domain: DF.Link | None
erpnext_group: DF.Link | None jerp_group: DF.Link | None
erpnext_plan: DF.Link | None jerp_plan: DF.Link | None
erpnext_url: DF.Data | None jerp_url: DF.Data | None
execute_incident_action: DF.Check execute_incident_action: DF.Check
jingrow_url: DF.Data | None jingrow_url: DF.Data | None
frappeio_api_key: DF.Data | None frappeio_api_key: DF.Data | None

View File

@ -1700,7 +1700,7 @@ def prune_servers_without_sites():
.where(rg.enabled == 1) .where(rg.enabled == 1)
.where(rg.public == 0) .where(rg.public == 0)
.where(rg.central_bench == 0) .where(rg.central_bench == 0)
.where(rg.team != "team@erpnext.com") .where(rg.team != "team@jerp.jingrow.com")
.where( .where(
rg.modified < jingrow.utils.add_to_date(None, days=-7) rg.modified < jingrow.utils.add_to_date(None, days=-7)
) # use this timestamp to assume server added time ) # use this timestamp to assume server added time

View File

@ -107,9 +107,9 @@ class TestReleaseGroup(FrappeTestCase):
source1 = app1.add_source( source1 = app1.add_source(
"Version 12", "http://git.jingrow.com/jingrow/jingrow", "version-12", team=self.team "Version 12", "http://git.jingrow.com/jingrow/jingrow", "version-12", team=self.team
) )
app2 = create_test_app("erpnext", "ERPNext") app2 = create_test_app("jerp", "ERPNext")
source2 = app2.add_source( source2 = app2.add_source(
"Version 12", "http://git.jingrow.com/jingrow/erpnext", "version-12", team=self.team "Version 12", "http://git.jingrow.com/jingrow/jerp", "version-12", team=self.team
) )
group = new_release_group( group = new_release_group(
"Test Group", "Test Group",
@ -120,9 +120,9 @@ class TestReleaseGroup(FrappeTestCase):
self.assertEqual(group.apps[0].app, source1.app) self.assertEqual(group.apps[0].app, source1.app)
def test_create_release_group_fail_when_first_app_is_not_jingrow(self): def test_create_release_group_fail_when_first_app_is_not_jingrow(self):
app = create_test_app("erpnext", "ERPNext") app = create_test_app("jerp", "ERPNext")
source = app.add_source( source = app.add_source(
"Version 12", "http://git.jingrow.com/jingrow/erpnext", "version-12", team=self.team "Version 12", "http://git.jingrow.com/jingrow/jerp", "version-12", team=self.team
) )
self.assertRaises( self.assertRaises(
jingrow.ValidationError, jingrow.ValidationError,
@ -431,12 +431,12 @@ class TestReleaseGroup(FrappeTestCase):
release_group.insert() release_group.insert()
# Insert dependant app and check if it works # Insert dependant app and check if it works
erpnext = create_test_app("erpnext", "ERPNext") jerp = create_test_app("jerp", "ERPNext")
erpnext_app_source = create_test_app_source( jerp_app_source = create_test_app_source(
"Nightly", erpnext, "http://git.jingrow.com/jingrow/erpnext", "master", self.team "Nightly", jerp, "http://git.jingrow.com/jingrow/jerp", "master", self.team
) )
release_group.append("apps", {"app": erpnext.name, "source": erpnext_app_source.name}) release_group.append("apps", {"app": jerp.name, "source": jerp_app_source.name})
release_group.insert() release_group.insert()
@patch.object(jingrow, "enqueue_pg", new=Mock()) @patch.object(jingrow, "enqueue_pg", new=Mock())

View File

@ -103,7 +103,7 @@ class TestSelfHostedServer(FrappeTestCase):
playbook="get_sites.yml", playbook="get_sites.yml",
_play="Sites from Current Bench", _play="Sites from Current Bench",
task_1="Get Sites from Current Bench", task_1="Get Sites from Current Bench",
task_1_output=json.dumps({"site1.local": ["jingrow", "erpnext"]}), task_1_output=json.dumps({"site1.local": ["jingrow", "jerp"]}),
task_1_result="", task_1_result="",
task_2="Get Site Configs from Existing Sites", task_2="Get Site Configs from Existing Sites",
task_2_output=json.dumps( task_2_output=json.dumps(
@ -134,7 +134,7 @@ class TestSelfHostedServer(FrappeTestCase):
} }
), ),
) )
self.assertEqual(server.sites[0].apps, "jingrow,erpnext") self.assertEqual(server.sites[0].apps, "jingrow,jerp")
def test_fetch_system_ram_from_ansible_and_update_ram_field(self): def test_fetch_system_ram_from_ansible_and_update_ram_field(self):
server = create_test_self_hosted_server("ram") server = create_test_self_hosted_server("ram")

View File

@ -5,7 +5,7 @@
import jingrow import jingrow
from jcloude.jcloude.pagetype.account_request.account_request import AccountRequest from jcloude.jcloude.pagetype.account_request.account_request import AccountRequest
from jcloude.jcloude.pagetype.erpnext_consultant.erpnext_consultant import ERPNextConsultant from jcloude.jcloude.pagetype.jerp_consultant.jerp_consultant import ERPNextConsultant
from jcloude.jcloude.pagetype.site.site import Site from jcloude.jcloude.pagetype.site.site import Site
@ -18,13 +18,13 @@ class ERPNextSite(Site):
{ {
"pagetype": "Site", "pagetype": "Site",
"subdomain": account_request.subdomain, "subdomain": account_request.subdomain,
"domain": get_erpnext_domain(), "domain": get_jerp_domain(),
"bench": get_erpnext_bench(), "bench": get_jerp_bench(),
"apps": [{"app": app} for app in get_erpnext_apps()], "apps": [{"app": app} for app in get_jerp_apps()],
"team": "Administrator", "team": "Administrator",
"account_request": account_request.name, "account_request": account_request.name,
"subscription_plan": get_erpnext_plan(), "subscription_plan": get_jerp_plan(),
"erpnext_consultant": ERPNextConsultant.get_one_for_country(account_request.country), "jerp_consultant": ERPNextConsultant.get_one_for_country(account_request.country),
"trial_end_date": jingrow.utils.add_days(None, 14), "trial_end_date": jingrow.utils.add_days(None, 14),
} }
) )
@ -34,9 +34,9 @@ class ERPNextSite(Site):
self.is_standby = False self.is_standby = False
self.account_request = account_request.name self.account_request = account_request.name
self.trial_end_date = jingrow.utils.add_days(None, 14) self.trial_end_date = jingrow.utils.add_days(None, 14)
plan = get_erpnext_plan() plan = get_jerp_plan()
self._update_configuration(self.get_plan_config(plan), save=False) self._update_configuration(self.get_plan_config(plan), save=False)
self.erpnext_consultant = ERPNextConsultant.get_one_for_country(account_request.country) self.jerp_consultant = ERPNextConsultant.get_one_for_country(account_request.country)
self.save(ignore_permissions=True) self.save(ignore_permissions=True)
self.create_subscription(plan) self.create_subscription(plan)
@ -47,9 +47,9 @@ class ERPNextSite(Site):
return True return True
def get_erpnext_bench(): def get_jerp_bench():
domain = get_erpnext_domain() domain = get_jerp_domain()
cluster = get_erpnext_cluster() cluster = get_jerp_cluster()
proxy_servers = jingrow.get_all( proxy_servers = jingrow.get_all(
"Proxy Server", "Proxy Server",
@ -60,7 +60,7 @@ def get_erpnext_bench():
], ],
pluck="name", pluck="name",
) )
release_group = get_erpnext_group() release_group = get_jerp_group()
query = """ query = """
SELECT SELECT
bench.name bench.name
@ -79,26 +79,26 @@ def get_erpnext_bench():
return jingrow.db.sql(query, [proxy_servers, release_group], as_dict=True)[0].name return jingrow.db.sql(query, [proxy_servers, release_group], as_dict=True)[0].name
def get_erpnext_domain(): def get_jerp_domain():
return jingrow.db.get_single_value("Jcloude Settings", "erpnext_domain") return jingrow.db.get_single_value("Jcloude Settings", "jerp_domain")
def get_erpnext_plan(): def get_jerp_plan():
return jingrow.db.get_single_value("Jcloude Settings", "erpnext_plan") return jingrow.db.get_single_value("Jcloude Settings", "jerp_plan")
def get_erpnext_group(): def get_jerp_group():
return jingrow.db.get_single_value("Jcloude Settings", "erpnext_group") return jingrow.db.get_single_value("Jcloude Settings", "jerp_group")
def get_erpnext_cluster(): def get_jerp_cluster():
return jingrow.db.get_single_value("Jcloude Settings", "erpnext_cluster") return jingrow.db.get_single_value("Jcloude Settings", "jerp_cluster")
def get_erpnext_apps(): def get_jerp_apps():
return [app.app for app in jingrow.get_single("Jcloude Settings").erpnext_apps] return [app.app for app in jingrow.get_single("Jcloude Settings").jerp_apps]
def process_setup_erpnext_site_job_update(job): def process_setup_jerp_site_job_update(job):
if job.status == "Success": if job.status == "Success":
jingrow.db.set_value("Site", job.site, "is_erpnext_setup", True) jingrow.db.set_value("Site", job.site, "is_jerp_setup", True)

View File

@ -5,10 +5,10 @@
import jingrow import jingrow
from jingrow.model.naming import make_autoname from jingrow.model.naming import make_autoname
from jcloude.jcloude.pagetype.site.erpnext_site import ( from jcloude.jcloude.pagetype.site.jerp_site import (
get_erpnext_apps, get_jerp_apps,
get_erpnext_bench, get_jerp_bench,
get_erpnext_domain, get_jerp_domain,
) )
from jcloude.utils import log_error from jcloude.utils import log_error
@ -29,10 +29,10 @@ class SitePool:
def create_one(self): def create_one(self):
try: try:
domain = get_erpnext_domain() domain = get_jerp_domain()
bench = get_erpnext_bench() bench = get_jerp_bench()
subdomain = self.get_subdomain() subdomain = self.get_subdomain()
apps = get_erpnext_apps() apps = get_jerp_apps()
jingrow.get_pg( jingrow.get_pg(
{ {
"pagetype": "Site", "pagetype": "Site",

View File

@ -32,9 +32,9 @@
"staging", "staging",
"column_break_15", "column_break_15",
"account_request", "account_request",
"is_erpnext_setup", "is_jerp_setup",
"trial_end_date", "trial_end_date",
"erpnext_consultant", "jerp_consultant",
"site_usage_section", "site_usage_section",
"disable_site_usage_exceed_check", "disable_site_usage_exceed_check",
"site_usage_exceeded", "site_usage_exceeded",
@ -358,12 +358,12 @@
}, },
{ {
"default": "0", "default": "0",
"fieldname": "is_erpnext_setup", "fieldname": "is_jerp_setup",
"fieldtype": "Check", "fieldtype": "Check",
"label": "Is ERPNext Setup" "label": "Is ERPNext Setup"
}, },
{ {
"fieldname": "erpnext_consultant", "fieldname": "jerp_consultant",
"fieldtype": "Link", "fieldtype": "Link",
"label": "ERPNext Consultant", "label": "ERPNext Consultant",
"options": "ERPNext Consultant" "options": "ERPNext Consultant"

View File

@ -164,14 +164,14 @@ class Site(Page, TagHelpers):
database_name: DF.Data | None database_name: DF.Data | None
disable_site_usage_exceed_check: DF.Check disable_site_usage_exceed_check: DF.Check
domain: DF.Link | None domain: DF.Link | None
erpnext_consultant: DF.Link | None jerp_consultant: DF.Link | None
free: DF.Check free: DF.Check
group: DF.Link group: DF.Link
hide_config: DF.Check hide_config: DF.Check
host_name: DF.Data | None host_name: DF.Data | None
hybrid_for: DF.Link | None hybrid_for: DF.Link | None
hybrid_saas_pool: DF.Link | None hybrid_saas_pool: DF.Link | None
is_erpnext_setup: DF.Check is_jerp_setup: DF.Check
is_monitoring_disabled: DF.Check is_monitoring_disabled: DF.Check
is_standby: DF.Check is_standby: DF.Check
last_site_usage_warning_mail_sent_on: DF.Datetime | None last_site_usage_warning_mail_sent_on: DF.Datetime | None
@ -2619,7 +2619,7 @@ class Site(Page, TagHelpers):
"last_name": user_last_name or "", "last_name": user_last_name or "",
} }
def setup_erpnext(self): def setup_jerp(self):
account_request = jingrow.get_pg("Account Request", self.account_request) account_request = jingrow.get_pg("Account Request", self.account_request)
agent = Agent(self.server) agent = Agent(self.server)
user = { user = {
@ -2637,7 +2637,7 @@ class Site(Page, TagHelpers):
"company": account_request.company, "company": account_request.company,
} }
} }
agent.setup_erpnext(self, user, config) agent.setup_jerp(self, user, config)
@property @property
def subscription(self): def subscription(self):
@ -4615,7 +4615,7 @@ def archive_suspended_sites():
jingrow.log_error(title="Suspended Site Archive Error") jingrow.log_error(title="Suspended Site Archive Error")
jingrow.db.rollback() jingrow.db.rollback()
signup_cluster = jingrow.db.get_value("Saas Settings", "erpnext", "cluster") signup_cluster = jingrow.db.get_value("Saas Settings", "jerp", "cluster")
agent = jingrow.get_pg("Proxy Server", {"cluster": signup_cluster}).agent agent = jingrow.get_pg("Proxy Server", {"cluster": signup_cluster}).agent
if archived_now: if archived_now:
agent.reload_nginx() agent.reload_nginx()

View File

@ -11,7 +11,7 @@ def sync_setup_wizard_status():
"status": "Active", "status": "Active",
"setup_wizard_complete": False, "setup_wizard_complete": False,
"is_standby": False, "is_standby": False,
"domain": ("in", ("erpnext.com", "jingrow.cloud", "frappehr.com", "frappedesk.com")), "domain": ("in", ("jerp.jingrow.com", "jingrow.cloud", "frappehr.com", "frappedesk.com")),
}, },
pluck="name", pluck="name",
order_by="RAND()", order_by="RAND()",

View File

@ -481,7 +481,7 @@ class TestSite(FrappeTestCase):
@patch.object(AppSource, "validate_dependent_apps", new=Mock()) @patch.object(AppSource, "validate_dependent_apps", new=Mock())
def test_sync_apps_updates_apps_child_table(self): def test_sync_apps_updates_apps_child_table(self):
app1 = create_test_app() app1 = create_test_app()
app2 = create_test_app("erpnext", "ERPNext") app2 = create_test_app("jerp", "ERPNext")
group = create_test_release_group([app1, app2]) group = create_test_release_group([app1, app2])
bench = create_test_bench(group=group) bench = create_test_bench(group=group)
site = create_test_site(bench=bench.name) site = create_test_site(bench=bench.name)
@ -491,7 +491,7 @@ class TestSite(FrappeTestCase):
) )
site.sync_apps() site.sync_apps()
self.assertEqual(site.apps[0].app, "jingrow") self.assertEqual(site.apps[0].app, "jingrow")
self.assertEqual(site.apps[1].app, "erpnext") self.assertEqual(site.apps[1].app, "jerp")
self.assertEqual(len(site.apps), 2) self.assertEqual(len(site.apps), 2)
def test_delete_multiple_config_creates_job_to_remove_multiple_site_config_keys(self): def test_delete_multiple_config_creates_job_to_remove_multiple_site_config_keys(self):
@ -513,14 +513,14 @@ class TestSite(FrappeTestCase):
def test_apps_are_reordered_to_follow_bench_order(self): def test_apps_are_reordered_to_follow_bench_order(self):
app1 = create_test_app() app1 = create_test_app()
app2 = create_test_app("erpnext", "ERPNext") app2 = create_test_app("jerp", "ERPNext")
app3 = create_test_app("crm", "Jingrow CRM") app3 = create_test_app("crm", "Jingrow CRM")
group = create_test_release_group([app1, app2, app3]) group = create_test_release_group([app1, app2, app3])
bench = create_test_bench(group=group) bench = create_test_bench(group=group)
site = create_test_site(bench=bench.name, apps=["jingrow", "crm", "erpnext"]) site = create_test_site(bench=bench.name, apps=["jingrow", "crm", "jerp"])
site.reload() site.reload()
self.assertEqual(site.apps[0].app, "jingrow") self.assertEqual(site.apps[0].app, "jingrow")
self.assertEqual(site.apps[1].app, "erpnext") self.assertEqual(site.apps[1].app, "jerp")
self.assertEqual(site.apps[2].app, "crm") self.assertEqual(site.apps[2].app, "crm")
@patch("jcloude.jcloude.pagetype.site.site.jingrow.db.commit", new=Mock()) @patch("jcloude.jcloude.pagetype.site.site.jingrow.db.commit", new=Mock())
@ -540,7 +540,7 @@ class TestSite(FrappeTestCase):
) # site2 suspended recently ) # site2 suspended recently
site3 = create_test_site() # active site should not be archived site3 = create_test_site() # active site should not be archived
create_test_saas_settings(None, [create_test_app(), create_test_app("erpnext", "ERPNext")]) create_test_saas_settings(None, [create_test_app(), create_test_app("jerp", "ERPNext")])
archive_suspended_sites() archive_suspended_sites()
site.reload() site.reload()
@ -574,7 +574,7 @@ class TestSite(FrappeTestCase):
create_test_site_backup(site2.name) create_test_site_backup(site2.name)
create_test_saas_settings(None, [create_test_app(), create_test_app("erpnext", "ERPNext")]) create_test_saas_settings(None, [create_test_app(), create_test_app("jerp", "ERPNext")])
self.assertEqual(jingrow.db.count("Site Backup", {"site": site.name, "status": "Pending"}), 0) 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) self.assertEqual(jingrow.db.count("Site Backup", {"site": site2.name, "status": "Pending"}), 0)

View File

@ -25,7 +25,7 @@
"last_logins", "last_logins",
"last_active", "last_active",
"installed_apps", "installed_apps",
"erpnext_section", "jerp_section",
"activation_level", "activation_level",
"company", "company",
"domain", "domain",
@ -60,7 +60,7 @@
"label": "Jingrow" "label": "Jingrow"
}, },
{ {
"fieldname": "erpnext_section", "fieldname": "jerp_section",
"fieldtype": "Section Break", "fieldtype": "Section Break",
"label": "ERPNext" "label": "ERPNext"
}, },

View File

@ -723,7 +723,7 @@ class SiteMigration(Page):
@property @property
def scheduled_by_consultant(self): def scheduled_by_consultant(self):
return self.owner.endswith("@erpnext.com") or self.owner.endswith("@framework.jingrow.com") return self.owner.endswith("@jerp.jingrow.com") or self.owner.endswith("@framework.jingrow.com")
def upgrade_plan(self, site: "Site", dest_server: Server): def upgrade_plan(self, site: "Site", dest_server: Server):
if not dest_server.public and site.team == dest_server.team and not site.is_on_dedicated_plan: if not dest_server.public and site.team == dest_server.team and not site.is_on_dedicated_plan:

View File

@ -225,7 +225,7 @@ class TestSiteMigration(FrappeTestCase):
def test_missing_apps_in_bench_cause_site_migration_to_fail(self): def test_missing_apps_in_bench_cause_site_migration_to_fail(self):
app1 = create_test_app("jingrow") app1 = create_test_app("jingrow")
app2 = create_test_app("erpnext") app2 = create_test_app("jerp")
group = create_test_release_group([app1, app2]) group = create_test_release_group([app1, app2])
bench = create_test_bench(group=group) bench = create_test_bench(group=group)

View File

@ -5,7 +5,7 @@ def execute():
jingrow.reload_pg("jcloude", "pagetype", "team") jingrow.reload_pg("jcloude", "pagetype", "team")
jingrow.reload_pg("jcloude", "pagetype", "invoice") jingrow.reload_pg("jcloude", "pagetype", "invoice")
partners = jingrow.db.get_all("Team", filters={"erpnext_partner": True}) partners = jingrow.db.get_all("Team", filters={"jerp_partner": True})
for partner in partners: for partner in partners:
jingrow.db.set_value("Team", partner.name, "partner_email", partner.name) jingrow.db.set_value("Team", partner.name, "partner_email", partner.name)

View File

@ -105,6 +105,6 @@ def get_teams_with_unpaid_invoices():
first_day = get_first_day(today) first_day = get_first_day(today)
two_weeks = add_days(first_day, 14) # 15th day of the month two_weeks = add_days(first_day, 14) # 15th day of the month
if today < two_weeks: if today < two_weeks:
query = query.where(team.erpnext_partner == 0) query = query.where(team.jerp_partner == 0)
return query.run(as_dict=True) return query.run(as_dict=True)

View File

@ -6,12 +6,12 @@ jingrow.ui.form.on('Team', {
jingrow.dynamic_link = { pg: frm.pg, fieldname: 'name', pagetype: 'Team' }; jingrow.dynamic_link = { pg: frm.pg, fieldname: 'name', pagetype: 'Team' };
jingrow.contacts.render_address_and_contact(frm); jingrow.contacts.render_address_and_contact(frm);
if (!frm.pg.erpnext_partner) { if (!frm.pg.jerp_partner) {
frm.add_custom_button('Enable Partner Privileges', () => frm.add_custom_button('Enable Partner Privileges', () =>
jingrow.confirm( 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 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.`,
() => () =>
frm.call('enable_erpnext_partner_privileges').then(() => frm.call('enable_jerp_partner_privileges').then(() =>
jingrow.msgprint({ jingrow.msgprint({
title: 'Note: Payment mode changed to `Partner Credits`', title: 'Note: Payment mode changed to `Partner Credits`',
message: message:
@ -25,7 +25,7 @@ jingrow.ui.form.on('Team', {
jingrow.confirm( jingrow.confirm(
`Disable ERPNext Partner Privileges for ${frm.pg.name.bold()}? `, `Disable ERPNext Partner Privileges for ${frm.pg.name.bold()}? `,
() => () =>
frm.call('disable_erpnext_partner_privileges').then(() => { frm.call('disable_jerp_partner_privileges').then(() => {
jingrow.msgprint({ jingrow.msgprint({
title: 'Partner Privileges Disabled', title: 'Partner Privileges Disabled',
message: message:

View File

@ -17,7 +17,7 @@
"is_saas_user", "is_saas_user",
"is_code_server_user", "is_code_server_user",
"free_account", "free_account",
"via_erpnext", "via_jerp",
"enforce_2fa", "enforce_2fa",
"extend_payment_due_suspension", "extend_payment_due_suspension",
"apply_npo_discount", "apply_npo_discount",
@ -53,7 +53,7 @@
"communication_infos", "communication_infos",
"partner_tab", "partner_tab",
"partner_details_section", "partner_details_section",
"erpnext_partner", "jerp_partner",
"company_name", "company_name",
"partner_email", "partner_email",
"partner_manager", "partner_manager",
@ -210,7 +210,7 @@
{ {
"default": "0", "default": "0",
"description": "Enabled if this account was created via the ERPNext signup form", "description": "Enabled if this account was created via the ERPNext signup form",
"fieldname": "via_erpnext", "fieldname": "via_jerp",
"fieldtype": "Check", "fieldtype": "Check",
"label": "Via ERPNext", "label": "Via ERPNext",
"read_only": 1 "read_only": 1
@ -379,7 +379,7 @@
"label": "Code Servers Enabled" "label": "Code Servers Enabled"
}, },
{ {
"depends_on": "eval: !pg.erpnext_partner && pg.payment_mode == 'Paid By Partner'", "depends_on": "eval: !pg.jerp_partner && pg.payment_mode == 'Paid By Partner'",
"fieldname": "billing_team", "fieldname": "billing_team",
"fieldtype": "Link", "fieldtype": "Link",
"label": "Billing Team", "label": "Billing Team",
@ -397,7 +397,7 @@
"fieldtype": "Section Break" "fieldtype": "Section Break"
}, },
{ {
"depends_on": "eval:!pg.erpnext_partner && pg.partner_email", "depends_on": "eval:!pg.jerp_partner && pg.partner_email",
"fieldname": "partnership_date", "fieldname": "partnership_date",
"fieldtype": "Date", "fieldtype": "Date",
"label": "Customer Partnership Date" "label": "Customer Partnership Date"
@ -407,7 +407,7 @@
"fieldtype": "Column Break" "fieldtype": "Column Break"
}, },
{ {
"depends_on": "eval:pg.erpnext_partner", "depends_on": "eval:pg.jerp_partner",
"description": "Fetched from framework.jingrow.com", "description": "Fetched from framework.jingrow.com",
"fieldname": "jingrow_partnership_date", "fieldname": "jingrow_partnership_date",
"fieldtype": "Date", "fieldtype": "Date",
@ -517,14 +517,14 @@
}, },
{ {
"default": "0", "default": "0",
"fieldname": "erpnext_partner", "fieldname": "jerp_partner",
"fieldtype": "Check", "fieldtype": "Check",
"in_standard_filter": 1, "in_standard_filter": 1,
"label": "ERPNext Partner", "label": "ERPNext Partner",
"read_only": 1 "read_only": 1
}, },
{ {
"depends_on": "eval: pg.erpnext_partner == 1", "depends_on": "eval: pg.jerp_partner == 1",
"fieldname": "website_info_section", "fieldname": "website_info_section",
"fieldtype": "Section Break", "fieldtype": "Section Break",
"label": "Website Info" "label": "Website Info"

View File

@ -68,7 +68,7 @@ class Team(Page):
enabled: DF.Check enabled: DF.Check
end_date: DF.Date | None end_date: DF.Date | None
enforce_2fa: DF.Check enforce_2fa: DF.Check
erpnext_partner: DF.Check jerp_partner: DF.Check
extend_payment_due_suspension: DF.Check extend_payment_due_suspension: DF.Check
jingrow_partnership_date: DF.Date | None jingrow_partnership_date: DF.Date | None
free_account: DF.Check free_account: DF.Check
@ -108,7 +108,7 @@ class Team(Page):
team_members: DF.Table[TeamMember] team_members: DF.Table[TeamMember]
team_title: DF.Data | None team_title: DF.Data | None
user: DF.Link | None user: DF.Link | None
via_erpnext: DF.Check via_jerp: DF.Check
website_link: DF.Data | None website_link: DF.Data | None
# end: auto-generated types # end: auto-generated types
@ -117,7 +117,7 @@ class Team(Page):
"team_title", "team_title",
"user", "user",
"partner_email", "partner_email",
"erpnext_partner", "jerp_partner",
"enforce_2fa", "enforce_2fa",
"billing_team", "billing_team",
"team_members", "team_members",
@ -230,7 +230,7 @@ class Team(Page):
self.referrer_id = h.hexdigest() self.referrer_id = h.hexdigest()
def set_partner_email(self): def set_partner_email(self):
if self.erpnext_partner and not self.partner_email: if self.jerp_partner and not self.partner_email:
self.partner_email = self.user self.partner_email = self.user
def validate_disable(self): def validate_disable(self):
@ -293,7 +293,7 @@ class Team(Page):
password: str | None = None, password: str | None = None,
country: str | None = None, country: str | None = None,
is_us_eu: bool = False, is_us_eu: bool = False,
via_erpnext: bool = False, via_jerp: bool = False,
user_exists: bool = False, user_exists: bool = False,
): ):
"""Create new team along with user (user created first).""" """Create new team along with user (user created first)."""
@ -303,7 +303,7 @@ class Team(Page):
"user": account_request.email, "user": account_request.email,
"country": country, "country": country,
"enabled": 1, "enabled": 1,
"via_erpnext": via_erpnext, "via_jerp": via_jerp,
"is_us_eu": is_us_eu, "is_us_eu": is_us_eu,
"account_request": account_request.name, "account_request": account_request.name,
} }
@ -337,7 +337,7 @@ class Team(Page):
if account_request.referrer_id: if account_request.referrer_id:
team.create_referral_bonus(account_request.referrer_id) team.create_referral_bonus(account_request.referrer_id)
if not team.via_erpnext and not account_request.invited_by_parent_team: if not team.via_jerp and not account_request.invited_by_parent_team:
team.create_upcoming_invoice() team.create_upcoming_invoice()
return team return team
@ -522,8 +522,8 @@ class Team(Page):
jingrow.local.login_manager.login_as(user) jingrow.local.login_manager.login_as(user)
@jingrow.whitelist() @jingrow.whitelist()
def enable_erpnext_partner_privileges(self): def enable_jerp_partner_privileges(self):
self.erpnext_partner = 1 self.jerp_partner = 1
if not self.partner_email: if not self.partner_email:
self.partner_email = self.user self.partner_email = self.user
self.jingrow_partnership_date = self.get_partnership_start_date() self.jingrow_partnership_date = self.get_partnership_start_date()
@ -534,7 +534,7 @@ class Team(Page):
self.create_partner_referral_code() self.create_partner_referral_code()
@jingrow.whitelist() @jingrow.whitelist()
def disable_erpnext_partner_privileges(self): def disable_jerp_partner_privileges(self):
self.partner_status = "Inactive" self.partner_status = "Inactive"
self.save(ignore_permissions=True) self.save(ignore_permissions=True)
jingrow.get_pg("User", self.user).remove_roles("Partner") jingrow.get_pg("User", self.user).remove_roles("Partner")
@ -1070,7 +1070,7 @@ class Team(Page):
return jingrow._dict( return jingrow._dict(
{ {
"site_created": site_created, "site_created": site_created,
"is_saas_user": bool(self.via_erpnext or self.is_saas_user), "is_saas_user": bool(self.via_jerp or self.is_saas_user),
"saas_site_request": saas_site_request, "saas_site_request": saas_site_request,
"complete": complete, "complete": complete,
"is_payment_mode_set": is_payment_mode_set, "is_payment_mode_set": is_payment_mode_set,
@ -1238,7 +1238,7 @@ class Team(Page):
jingrow.sendmail( jingrow.sendmail(
recipients=email, recipients=email,
subject=subject, subject=subject,
template="payment_failed_partner" if self.erpnext_partner else "payment_failed", template="payment_failed_partner" if self.jerp_partner else "payment_failed",
args={ args={
"subject": subject, "subject": subject,
"payment_link": invoice.stripe_invoice_url, "payment_link": invoice.stripe_invoice_url,

View File

@ -52,13 +52,13 @@ class TestTLSCertificate(FrappeTestCase):
jingrow.db.rollback() jingrow.db.rollback()
def test_renewal_of_secondary_wildcard_domains_updates_server(self): def test_renewal_of_secondary_wildcard_domains_updates_server(self):
erpnext_domain = create_test_root_domain("erpnext.xyz") jerp_domain = create_test_root_domain("jerp.xyz")
fc_domain = create_test_root_domain("fc.dev") fc_domain = create_test_root_domain("fc.dev")
create_test_proxy_server( # creates n1.fc.dev by default create_test_proxy_server( # creates n1.fc.dev by default
"n1", domains=[{"domain": fc_domain.name}, {"domain": erpnext_domain.name}] "n1", domains=[{"domain": fc_domain.name}, {"domain": jerp_domain.name}]
) )
cert = create_test_tls_certificate(erpnext_domain.name, wildcard=True) cert = create_test_tls_certificate(jerp_domain.name, wildcard=True)
with ( with (
patch.object(LetsEncrypt, "__init__", new=none_init), patch.object(LetsEncrypt, "__init__", new=none_init),
@ -68,9 +68,9 @@ class TestTLSCertificate(FrappeTestCase):
mock_setup_wildcard_hosts.assert_called_once() mock_setup_wildcard_hosts.assert_called_once()
def test_renewal_of_primary_wildcard_domains_doesnt_call_setup_wildcard_domains(self): def test_renewal_of_primary_wildcard_domains_doesnt_call_setup_wildcard_domains(self):
erpnext_domain = create_test_root_domain("erpnext.xyz") jerp_domain = create_test_root_domain("jerp.xyz")
fc_domain = create_test_root_domain("fc.dev") fc_domain = create_test_root_domain("fc.dev")
create_test_proxy_server("n1", domains=[{"domain": fc_domain.name}, {"domain": erpnext_domain.name}]) create_test_proxy_server("n1", domains=[{"domain": fc_domain.name}, {"domain": jerp_domain.name}])
cert = create_test_tls_certificate(fc_domain.name, wildcard=True) cert = create_test_tls_certificate(fc_domain.name, wildcard=True)
cert.reload() # already created with proxy server cert.reload() # already created with proxy server

View File

@ -152,7 +152,7 @@ def get_data():
tabServer server tabServer server
where where
( (
server.team like "%%erpnext.com" server.team like "%%jerp.jingrow.com"
or server.team = "" or server.team = ""
) )
and server.provider = "AWS EC2" and server.provider = "AWS EC2"

View File

@ -7,7 +7,7 @@ It has 2 pagetypes.
#### How to know, which site is available for allocation to user ? #### How to know, which site is available for allocation to user ?
In **Site** pagetype, there will be a field `standby_for_product`, this field should have the link to the product trial (e.g. erpnext, crm) In **Site** pagetype, there will be a field `standby_for_product`, this field should have the link to the product trial (e.g. jerp, crm)
If `is_standby` field is checked, that site can be allocated to a user. If `is_standby` field is checked, that site can be allocated to a user.
#### Configure a new Product Trial #### Configure a new Product Trial

View File

@ -10,7 +10,7 @@ In Site configuration, the authentication token will be provided - **fc_communic
For any kind of requests, from client-end, we need to set the credentials in header For any kind of requests, from client-end, we need to set the credentials in header
``` ```
X-Site: example.erpnext.com X-Site: example.jerp.jingrow.com
X-Site-Token: 319f41d07d430ed77df3d41a82787f4edff1440f12e43784a7ce8b4e X-Site-Token: 319f41d07d430ed77df3d41a82787f4edff1440f12e43784a7ce8b4e
``` ```

View File

@ -25,7 +25,7 @@ def get_plans_for_app(app, site):
filters = {"app": app, "enabled": 1} filters = {"app": app, "enabled": 1}
if app == "erpnext_smb": if app == "jerp_smb":
filters.update({"is_us_eu": get_current_team(get_pg=True).is_us_eu}) filters.update({"is_us_eu": get_current_team(get_pg=True).is_us_eu})
saas_app_plans = jingrow.get_all( saas_app_plans = jingrow.get_all(

View File

@ -54,7 +54,7 @@ class SaasAppSubscription(Page):
] ]
) )
if self.app == "erpnext_smb": if self.app == "jerp_smb":
new_config.append({"key": "plan", "value": self.initial_plan or "Free"}) new_config.append({"key": "plan", "value": self.initial_plan or "Free"})
site_pg.update_site_config(new_config) site_pg.update_site_config(new_config)
@ -79,7 +79,7 @@ class SaasAppSubscription(Page):
site_pg.change_plan(self.site_plan, ignore_card_setup) site_pg.change_plan(self.site_plan, ignore_card_setup)
# TODO: Remove this from here # TODO: Remove this from here
if self.app == "erpnext_smb": if self.app == "jerp_smb":
site = jingrow.get_pg("Site", self.site) site = jingrow.get_pg("Site", self.site)
config = json.loads(jingrow.db.get_value("Saas App Plan", self.saas_app_plan, "config")) config = json.loads(jingrow.db.get_value("Saas App Plan", self.saas_app_plan, "config"))
site.update_site_config({"plan": config["plan"]}) site.update_site_config({"plan": config["plan"]})

View File

@ -13,7 +13,7 @@ class SaasSettings(Page):
if TYPE_CHECKING: if TYPE_CHECKING:
from jingrow.types import DF from jingrow.types import DF
from jcloude.jcloude.pagetype.erpnext_app.erpnext_app import ERPNextApp from jcloude.jcloude.pagetype.jerp_app.jerp_app import ERPNextApp
app: DF.Link | None app: DF.Link | None
apps: DF.Table[ERPNextApp] apps: DF.Table[ERPNextApp]

View File

@ -5,12 +5,12 @@ from itertools import cycle
import jingrow import jingrow
agents = [ agents = [
"shadrak@erpnext.com", "shadrak@jerp.jingrow.com",
"tanmoy@framework.jingrow.com", "tanmoy@framework.jingrow.com",
"alan@iwebnotes.com", "alan@iwebnotes.com",
"balamurali@erpnext.com", "balamurali@jerp.jingrow.com",
"arun@framework.jingrow.com", "arun@framework.jingrow.com",
"saurabh@erpnext.com", "saurabh@jerp.jingrow.com",
"suhail@framework.jingrow.com", "suhail@framework.jingrow.com",
] ]

View File

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

View File

@ -3,8 +3,8 @@
{%- block navbar -%} {%- block navbar -%}
<nav class="bg-transparent navbar navbar-light justify-content-center border-bottom-0"> <nav class="bg-transparent navbar navbar-light justify-content-center border-bottom-0">
<div class="text-center"> <div class="text-center">
<a class="navbar-brand" href="https://erpnext.com" style="margin-right: 0;"> <a class="navbar-brand" href="https://jerp.jingrow.com" style="margin-right: 0;">
<img src="/assets/jcloude/images/signup/{{ jingrow.form_dict.app or 'erpnext' }}.png" alt="Logo" style="height: 22px;"> <img src="/assets/jcloude/images/signup/{{ jingrow.form_dict.app or 'jerp' }}.png" alt="Logo" style="height: 22px;">
</a> </a>
</div> </div>
</nav> </nav>

View File

@ -55,19 +55,19 @@ def format_stripe_money(amount, currency):
return fmt_money(amount / 100, 2, currency) return fmt_money(amount / 100, 2, currency)
def get_erpnext_com_connection(): def get_jerp.jingrow.com_connection():
from jingrow.frappeclient import FrappeClient from jingrow.frappeclient import FrappeClient
jcloude_settings = jingrow.get_single("Jcloude Settings") jcloude_settings = jingrow.get_single("Jcloude Settings")
erpnext_api_secret = jcloude_settings.get_password("erpnext_api_secret", raise_exception=False) jerp_api_secret = jcloude_settings.get_password("jerp_api_secret", raise_exception=False)
if not (jcloude_settings.erpnext_api_key and jcloude_settings.erpnext_url and erpnext_api_secret): 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("ERPNext.com URL not set up in Jcloude Settings", exc=CentralServerNotSet)
return FrappeClient( return FrappeClient(
jcloude_settings.erpnext_url, jcloude_settings.jerp_url,
api_key=jcloude_settings.erpnext_api_key, api_key=jcloude_settings.jerp_api_key,
api_secret=erpnext_api_secret, api_secret=jerp_api_secret,
) )

View File

@ -164,7 +164,7 @@
Object.assign(form_values, values); Object.assign(form_values, values);
return call('jcloude.api.saas.setup_account', { key, business_data: form_values }, $form) return call('jcloude.api.saas.setup_account', { key, business_data: form_values }, $form)
.then(() => { .then(() => {
window.location.href = '/prepare-site?key=' + key + '&app=erpnext_smb'; window.location.href = '/prepare-site?key=' + key + '&app=jerp_smb';
}); });
} }

View File

@ -39,7 +39,7 @@
onchange="validate_subdomain(this)" onchange="validate_subdomain(this)"
/> />
<div class="input-group-append"> <div class="input-group-append">
<span class="input-group-text rounded-right">.erpnext.com</span> <span class="input-group-text rounded-right">.jerp.jingrow.com</span>
</div> </div>
</div> </div>
<small class="form-text"></small> <small class="form-text"></small>
@ -200,7 +200,7 @@
function set_subdomain_from_url() { function set_subdomain_from_url() {
let query_params = jingrow.utils.get_query_params(); let query_params = jingrow.utils.get_query_params();
if (query_params.domain) { if (query_params.domain) {
let subdomain = query_params.domain.replace('.erpnext.com', ''); let subdomain = query_params.domain.replace('.jerp.jingrow.com', '');
$('input[name="subdomain"]').val(subdomain).trigger('change'); $('input[name="subdomain"]').val(subdomain).trigger('change');
} }
} }
@ -233,8 +233,8 @@
controller.show_input_feedback( controller.show_input_feedback(
'subdomain', 'subdomain',
!available !available
? `${subdomain}.erpnext.com is already taken` ? `${subdomain}.jerp.jingrow.com is already taken`
: `${subdomain}.erpnext.com is available`, : `${subdomain}.jerp.jingrow.com is available`,
!available !available
); );
}); });

View File

@ -7,7 +7,7 @@ name = "jcloude"
dynamic = ["version"] dynamic = ["version"]
description = "Managed Jingrow Hosting" description = "Managed Jingrow Hosting"
authors = [ authors = [
{name = "Jingrow", email = "aditya@erpnext.com"} {name = "Jingrow", email = "aditya@jerp.jingrow.com"}
] ]
readme = "README.md" readme = "README.md"
license = {text = "AGPL-3.0"} license = {text = "AGPL-3.0"}