update frappe to jingrow
This commit is contained in:
parent
93794fd6c4
commit
e2c89138d2
@ -197,8 +197,8 @@
|
|||||||
"filippo",
|
"filippo",
|
||||||
"Fmbeo",
|
"Fmbeo",
|
||||||
"Fpww",
|
"Fpww",
|
||||||
"frappeclient",
|
"jingrowclient",
|
||||||
"frappehr",
|
"jingrowhr",
|
||||||
"Frappeio",
|
"Frappeio",
|
||||||
"jingrowui",
|
"jingrowui",
|
||||||
"fremovexattr",
|
"fremovexattr",
|
||||||
|
|||||||
@ -79,7 +79,7 @@ pre-commit install
|
|||||||
```
|
```
|
||||||
## Learn and connect
|
## Learn and connect
|
||||||
|
|
||||||
- [Telegram Public Group](https://t.me/frappecloud)
|
- [Telegram Public Group](https://t.me/jingrowcloud)
|
||||||
- [Discuss Forum](https://discuss.framework.jingrow.com/c/jingrow-cloud/77)
|
- [Discuss Forum](https://discuss.framework.jingrow.com/c/jingrow-cloud/77)
|
||||||
- [Documentation](https://docs.framework.jingrow.com/cloud)
|
- [Documentation](https://docs.framework.jingrow.com/cloud)
|
||||||
|
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
<span class="font-semibold">
|
<span class="font-semibold">
|
||||||
<router-link :to="{ name: 'Site List' }">
|
<router-link :to="{ name: 'Site List' }">
|
||||||
<img
|
<img
|
||||||
:src="`/assets/jcloude/images/frappecloud-logo.png`"
|
:src="`/assets/jcloude/images/jingrowcloud-logo.png`"
|
||||||
class="h-7 w-7 shrink-0"
|
class="h-7 w-7 shrink-0"
|
||||||
alt="Jingrow Cloud Logo"
|
alt="Jingrow Cloud Logo"
|
||||||
/>
|
/>
|
||||||
|
|||||||
@ -70,7 +70,7 @@
|
|||||||
<script>
|
<script>
|
||||||
import { toast } from 'vue-sonner';
|
import { toast } from 'vue-sonner';
|
||||||
import { DashboardError } from '../../../utils/error';
|
import { DashboardError } from '../../../utils/error';
|
||||||
import { frappeRequest, ErrorMessage } from 'jingrow-ui';
|
import { jingrowRequest, ErrorMessage } from 'jingrow-ui';
|
||||||
export default {
|
export default {
|
||||||
name: 'BuyPrepaidCreditsMpesa',
|
name: 'BuyPrepaidCreditsMpesa',
|
||||||
props: {
|
props: {
|
||||||
@ -187,7 +187,7 @@ export default {
|
|||||||
},
|
},
|
||||||
async fetchTeams() {
|
async fetchTeams() {
|
||||||
try {
|
try {
|
||||||
const response = await frappeRequest({
|
const response = await jingrowRequest({
|
||||||
url: '/api/method/jcloude.api.regional_payments.mpesa.utils.display_mpesa_payment_partners',
|
url: '/api/method/jcloude.api.regional_payments.mpesa.utils.display_mpesa_payment_partners',
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
});
|
});
|
||||||
@ -207,7 +207,7 @@ export default {
|
|||||||
},
|
},
|
||||||
async fetchTaxPercentage() {
|
async fetchTaxPercentage() {
|
||||||
try {
|
try {
|
||||||
const taxPercentage = await frappeRequest({
|
const taxPercentage = await jingrowRequest({
|
||||||
url: '/api/method/jcloude.api.regional_payments.mpesa.utils.get_tax_percentage',
|
url: '/api/method/jcloude.api.regional_payments.mpesa.utils.get_tax_percentage',
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
params: {
|
params: {
|
||||||
|
|||||||
@ -98,7 +98,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { toast } from 'vue-sonner';
|
import { toast } from 'vue-sonner';
|
||||||
import { frappeRequest } from 'jingrow-ui';
|
import { jingrowRequest } from 'jingrow-ui';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'PartnerPaymentPayout',
|
name: 'PartnerPaymentPayout',
|
||||||
@ -150,7 +150,7 @@ export default {
|
|||||||
async fetchPayments() {
|
async fetchPayments() {
|
||||||
try {
|
try {
|
||||||
this.fetchAttempted = true;
|
this.fetchAttempted = true;
|
||||||
const response = await frappeRequest({
|
const response = await jingrowRequest({
|
||||||
url: 'jcloude.api.regional_payments.mpesa.utils.fetch_payments',
|
url: 'jcloude.api.regional_payments.mpesa.utils.fetch_payments',
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
params: {
|
params: {
|
||||||
@ -171,7 +171,7 @@ export default {
|
|||||||
},
|
},
|
||||||
async fetchPartners() {
|
async fetchPartners() {
|
||||||
try {
|
try {
|
||||||
const response = await frappeRequest({
|
const response = await jingrowRequest({
|
||||||
url: '/api/method/jcloude.api.regional_payments.mpesa.utils.display_payment_partners',
|
url: '/api/method/jcloude.api.regional_payments.mpesa.utils.display_payment_partners',
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
});
|
});
|
||||||
@ -187,7 +187,7 @@ export default {
|
|||||||
|
|
||||||
async fetchPaymentGateway() {
|
async fetchPaymentGateway() {
|
||||||
try {
|
try {
|
||||||
const response = await frappeRequest({
|
const response = await jingrowRequest({
|
||||||
url: '/api/method/jcloude.api.regional_payments.mpesa.utils.display_payment_gateway',
|
url: '/api/method/jcloude.api.regional_payments.mpesa.utils.display_payment_gateway',
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
});
|
});
|
||||||
|
|||||||
@ -51,7 +51,7 @@
|
|||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { defineEmits, ref } from 'vue';
|
import { defineEmits, ref } from 'vue';
|
||||||
import { createResource, frappeRequest, debounce } from 'jingrow-ui';
|
import { createResource, jingrowRequest, debounce } from 'jingrow-ui';
|
||||||
import { toast } from 'vue-sonner';
|
import { toast } from 'vue-sonner';
|
||||||
|
|
||||||
const courseTypes = [
|
const courseTypes = [
|
||||||
@ -89,7 +89,7 @@ const certCount = ref(0);
|
|||||||
const certExist = ref(false);
|
const certExist = ref(false);
|
||||||
const emailChange = debounce(async () => {
|
const emailChange = debounce(async () => {
|
||||||
if (!userEmail.value) return;
|
if (!userEmail.value) return;
|
||||||
let response = await frappeRequest({
|
let response = await jingrowRequest({
|
||||||
url: 'jcloude.api.partner.check_certificate_exists',
|
url: 'jcloude.api.partner.check_certificate_exists',
|
||||||
params: {
|
params: {
|
||||||
email: userEmail.value,
|
email: userEmail.value,
|
||||||
|
|||||||
@ -104,7 +104,7 @@
|
|||||||
</Card>
|
</Card>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { Card, FormControl, frappeRequest, debounce } from 'jingrow-ui';
|
import { Card, FormControl, jingrowRequest, debounce } from 'jingrow-ui';
|
||||||
import { DashboardError } from '../../../utils/error';
|
import { DashboardError } from '../../../utils/error';
|
||||||
import { toast } from 'vue-sonner';
|
import { toast } from 'vue-sonner';
|
||||||
export default {
|
export default {
|
||||||
@ -172,7 +172,7 @@ export default {
|
|||||||
let code = e.target.value;
|
let code = e.target.value;
|
||||||
this.partnerExists = false;
|
this.partnerExists = false;
|
||||||
|
|
||||||
let result = await frappeRequest({
|
let result = await jingrowRequest({
|
||||||
url: 'jcloude.api.partner.validate_partner_code',
|
url: 'jcloude.api.partner.validate_partner_code',
|
||||||
params: { code: code },
|
params: { code: code },
|
||||||
});
|
});
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import { createDocumentResource, frappeRequest } from 'jingrow-ui';
|
import { createDocumentResource, jingrowRequest } from 'jingrow-ui';
|
||||||
import { clear } from 'idb-keyval';
|
import { clear } from 'idb-keyval';
|
||||||
|
|
||||||
let team;
|
let team;
|
||||||
@ -41,7 +41,7 @@ function getCurrentTeam() {
|
|||||||
export async function switchToTeam(team) {
|
export async function switchToTeam(team) {
|
||||||
let canSwitch = false;
|
let canSwitch = false;
|
||||||
try {
|
try {
|
||||||
canSwitch = await frappeRequest({
|
canSwitch = await jingrowRequest({
|
||||||
url: '/api/method/jcloude.api.account.can_switch_to_team',
|
url: '/api/method/jcloude.api.account.can_switch_to_team',
|
||||||
params: { team },
|
params: { team },
|
||||||
});
|
});
|
||||||
@ -61,7 +61,7 @@ export async function switchToTeam(team) {
|
|||||||
|
|
||||||
export async function isLastSite(team) {
|
export async function isLastSite(team) {
|
||||||
let count = 0;
|
let count = 0;
|
||||||
count = await frappeRequest({
|
count = await jingrowRequest({
|
||||||
url: '/api/method/jcloude.api.account.get_site_count',
|
url: '/api/method/jcloude.api.account.get_site_count',
|
||||||
params: { team },
|
params: { team },
|
||||||
});
|
});
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
import { createApp } from 'vue';
|
import { createApp } from 'vue';
|
||||||
import {
|
import {
|
||||||
setConfig,
|
setConfig,
|
||||||
frappeRequest,
|
jingrowRequest,
|
||||||
pageMetaPlugin,
|
pageMetaPlugin,
|
||||||
resourcesPlugin,
|
resourcesPlugin,
|
||||||
} from 'jingrow-ui';
|
} from 'jingrow-ui';
|
||||||
@ -24,7 +24,7 @@ const request = (options) => {
|
|||||||
if (currentTeam) {
|
if (currentTeam) {
|
||||||
_options.headers['X-Jcloude-Team'] = currentTeam;
|
_options.headers['X-Jcloude-Team'] = currentTeam;
|
||||||
}
|
}
|
||||||
return frappeRequest(_options);
|
return jingrowRequest(_options);
|
||||||
};
|
};
|
||||||
setConfig('resourceFetcher', request);
|
setConfig('resourceFetcher', request);
|
||||||
setConfig('defaultListUrl', 'jcloude.api.client.get_list');
|
setConfig('defaultListUrl', 'jcloude.api.client.get_list');
|
||||||
@ -163,7 +163,7 @@ getInitialData().then(() => {
|
|||||||
|
|
||||||
function getInitialData() {
|
function getInitialData() {
|
||||||
if (import.meta.env.DEV) {
|
if (import.meta.env.DEV) {
|
||||||
return frappeRequest({
|
return jingrowRequest({
|
||||||
url: '/api/method/jcloude.www.dashboard.get_context_for_dev',
|
url: '/api/method/jcloude.www.dashboard.get_context_for_dev',
|
||||||
}).then((values) => Object.assign(window, values));
|
}).then((values) => Object.assign(window, values));
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -2,7 +2,7 @@ import { h } from 'vue';
|
|||||||
import router from '../router';
|
import router from '../router';
|
||||||
import { getDocResource } from '../utils/resource';
|
import { getDocResource } from '../utils/resource';
|
||||||
import { unreadNotificationsCount } from '../data/notifications';
|
import { unreadNotificationsCount } from '../data/notifications';
|
||||||
import { Tooltip, frappeRequest } from 'jingrow-ui';
|
import { Tooltip, jingrowRequest } from 'jingrow-ui';
|
||||||
import { icon } from '../utils/components';
|
import { icon } from '../utils/components';
|
||||||
import { getTeam } from '../data/team';
|
import { getTeam } from '../data/team';
|
||||||
import { toast } from 'vue-sonner';
|
import { toast } from 'vue-sonner';
|
||||||
@ -65,7 +65,7 @@ export default {
|
|||||||
},
|
},
|
||||||
async onClick() {
|
async onClick() {
|
||||||
toast.promise(
|
toast.promise(
|
||||||
frappeRequest({
|
jingrowRequest({
|
||||||
url: '/api/method/jcloude.api.notifications.mark_all_notifications_as_read',
|
url: '/api/method/jcloude.api.notifications.mark_all_notifications_as_read',
|
||||||
}),
|
}),
|
||||||
{
|
{
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { frappeRequest } from 'jingrow-ui';
|
import { jingrowRequest } from 'jingrow-ui';
|
||||||
import ObjectList from '../components/ObjectList.vue';
|
import ObjectList from '../components/ObjectList.vue';
|
||||||
import { icon } from '../utils/components';
|
import { icon } from '../utils/components';
|
||||||
|
|
||||||
@ -25,7 +25,7 @@ export default {
|
|||||||
async fetchInvoices() {
|
async fetchInvoices() {
|
||||||
this.loading = true;
|
this.loading = true;
|
||||||
try {
|
try {
|
||||||
const response = await frappeRequest({
|
const response = await jingrowRequest({
|
||||||
url: '/api/method/jcloude.api.regional_payments.mpesa.utils.display_invoices_by_partner',
|
url: '/api/method/jcloude.api.regional_payments.mpesa.utils.display_invoices_by_partner',
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
});
|
});
|
||||||
|
|||||||
@ -40,7 +40,7 @@
|
|||||||
import AddressForm from '../components/AddressForm.vue';
|
import AddressForm from '../components/AddressForm.vue';
|
||||||
import StripeLogo from '@/components/StripeLogo.vue';
|
import StripeLogo from '@/components/StripeLogo.vue';
|
||||||
import { loadStripe } from '@stripe/stripe-js';
|
import { loadStripe } from '@stripe/stripe-js';
|
||||||
import { frappeRequest } from 'jingrow-ui';
|
import { jingrowRequest } from 'jingrow-ui';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'StripeCard',
|
name: 'StripeCard',
|
||||||
@ -74,7 +74,7 @@ export default {
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
async setupCard() {
|
async setupCard() {
|
||||||
let result = await frappeRequest({
|
let result = await jingrowRequest({
|
||||||
url: 'jcloude.api.developer.marketplace.get_publishable_key_and_setup_intent',
|
url: 'jcloude.api.developer.marketplace.get_publishable_key_and_setup_intent',
|
||||||
params: { secret_key: this.secretKey },
|
params: { secret_key: this.secretKey },
|
||||||
});
|
});
|
||||||
@ -160,7 +160,7 @@ export default {
|
|||||||
} else {
|
} else {
|
||||||
if (setupIntent.status === 'succeeded') {
|
if (setupIntent.status === 'succeeded') {
|
||||||
try {
|
try {
|
||||||
const { payment_method_name } = await frappeRequest({
|
const { payment_method_name } = await jingrowRequest({
|
||||||
url: 'jcloude.api.developer.marketplace.setup_intent_success',
|
url: 'jcloude.api.developer.marketplace.setup_intent_success',
|
||||||
params: {
|
params: {
|
||||||
secret_key: this.secretKey,
|
secret_key: this.secretKey,
|
||||||
@ -170,7 +170,7 @@ export default {
|
|||||||
|
|
||||||
this.addingCard = false;
|
this.addingCard = false;
|
||||||
|
|
||||||
await frappeRequest({
|
await jingrowRequest({
|
||||||
url: 'jcloude.api.developer.marketplace.change_site_plan',
|
url: 'jcloude.api.developer.marketplace.change_site_plan',
|
||||||
params: {
|
params: {
|
||||||
secret_key: this.secretKey,
|
secret_key: this.secretKey,
|
||||||
|
|||||||
@ -126,7 +126,7 @@ import {
|
|||||||
Button,
|
Button,
|
||||||
Autocomplete,
|
Autocomplete,
|
||||||
Badge,
|
Badge,
|
||||||
frappeRequest,
|
jingrowRequest,
|
||||||
Breadcrumbs,
|
Breadcrumbs,
|
||||||
} from 'jingrow-ui';
|
} from 'jingrow-ui';
|
||||||
import { toast } from 'vue-sonner';
|
import { toast } from 'vue-sonner';
|
||||||
@ -273,7 +273,7 @@ export default {
|
|||||||
methods: {
|
methods: {
|
||||||
async fetchPaymentGateways() {
|
async fetchPaymentGateways() {
|
||||||
try {
|
try {
|
||||||
const response = await frappeRequest({
|
const response = await jingrowRequest({
|
||||||
url: 'jcloude.api.regional_payments.mpesa.utils.display_payment_gateways',
|
url: 'jcloude.api.regional_payments.mpesa.utils.display_payment_gateways',
|
||||||
params: {
|
params: {
|
||||||
payment_partner: this.partnerInput.value,
|
payment_partner: this.partnerInput.value,
|
||||||
@ -290,7 +290,7 @@ export default {
|
|||||||
},
|
},
|
||||||
async fetchPercentageCommission() {
|
async fetchPercentageCommission() {
|
||||||
try {
|
try {
|
||||||
const response = await frappeRequest({
|
const response = await jingrowRequest({
|
||||||
url: 'jcloude.api.regional_payments.mpesa.utils.fetch_percentage_commission',
|
url: 'jcloude.api.regional_payments.mpesa.utils.fetch_percentage_commission',
|
||||||
params: {
|
params: {
|
||||||
partner: this.partnerInput.value,
|
partner: this.partnerInput.value,
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import { frappeRequest } from 'jingrow-ui';
|
import { jingrowRequest } from 'jingrow-ui';
|
||||||
import { reactive } from 'vue';
|
import { reactive } from 'vue';
|
||||||
|
|
||||||
let states = {};
|
let states = {};
|
||||||
@ -22,7 +22,7 @@ export function pollJobStatus(jobId, stopFunction) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function fetchJobStatus(jobId) {
|
function fetchJobStatus(jobId) {
|
||||||
return frappeRequest({
|
return jingrowRequest({
|
||||||
url: 'jcloude.api.site.get_job_status',
|
url: 'jcloude.api.site.get_job_status',
|
||||||
params: { job_name: jobId },
|
params: { job_name: jobId },
|
||||||
}).then((result) => result.status);
|
}).then((result) => result.status);
|
||||||
|
|||||||
@ -3,7 +3,7 @@ import jingrowUIPreset from 'jingrow-ui/src/tailwind/preset';
|
|||||||
import containerQueries from '@tailwindcss/container-queries';
|
import containerQueries from '@tailwindcss/container-queries';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
presets: [frappeUIPreset],
|
presets: [jingrowUIPreset],
|
||||||
content: [
|
content: [
|
||||||
'./public/index.html',
|
'./public/index.html',
|
||||||
'./src/**/*.html',
|
'./src/**/*.html',
|
||||||
|
|||||||
@ -16,7 +16,7 @@ const INACTIVITY_LIMIT_MS = parseInt(process.env.SIGNUP_INACTIVITY_MS || '0', 10
|
|||||||
|
|
||||||
function testEmail(product: string) {
|
function testEmail(product: string) {
|
||||||
const rand = crypto.randomBytes(3).toString('hex');
|
const rand = crypto.randomBytes(3).toString('hex');
|
||||||
return `fc-signup-test+${product}_${rand}@frappemail.com`;
|
return `fc-signup-test+${product}_${rand}@jingrowmail.com`;
|
||||||
// return `playwright_${product}_${rand}@signup.test`;
|
// return `playwright_${product}_${rand}@signup.test`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -12,7 +12,7 @@ dotenv.config();
|
|||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
plugins: [
|
plugins: [
|
||||||
jingrowui({
|
jingrowui({
|
||||||
frappeProxy: true,
|
jingrowProxy: true,
|
||||||
lucideIcons: true,
|
lucideIcons: true,
|
||||||
jinjaBootData: true,
|
jinjaBootData: true,
|
||||||
buildConfig: {
|
buildConfig: {
|
||||||
|
|||||||
@ -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://*.jerp.jingrow.com https://*.frappehr.com https://*.jingrow.cloud https://*.frappedesk.com;";
|
add_header Content-Security-Policy "frame-ancestors 'self' https://*.jerp.jingrow.com https://*.jingrowhr.com https://*.jingrow.cloud https://*.jingrowdesk.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://*.jerp.jingrow.com https://*.frappehr.com https://*.jingrow.cloud https://*.frappedesk.com;";
|
add_header Content-Security-Policy "frame-ancestors 'self' https://*.jerp.jingrow.com https://*.jingrowhr.com https://*.jingrow.cloud https://*.jingrowdesk.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://*.jerp.jingrow.com https://*.frappehr.com https://*.jingrow.cloud https://*.frappedesk.com;";
|
add_header Content-Security-Policy "frame-ancestors 'self' https://*.jerp.jingrow.com https://*.jingrowhr.com https://*.jingrow.cloud https://*.jingrowdesk.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;
|
||||||
|
|||||||
@ -193,7 +193,7 @@ docs: https://spamassassin.apache.org/old/tests_3_3_x.html
|
|||||||
SpamDetectionError,
|
SpamDetectionError,
|
||||||
)
|
)
|
||||||
except requests.exceptions.HTTPError as e:
|
except requests.exceptions.HTTPError as e:
|
||||||
# Ignore error, if server.frappemail.com is being updated.
|
# Ignore error, if server.jingrowmail.com is being updated.
|
||||||
if e.response.status_code != 503:
|
if e.response.status_code != 503:
|
||||||
log_error("Spam Detection : Error", data=e)
|
log_error("Spam Detection : Error", data=e)
|
||||||
|
|
||||||
|
|||||||
@ -28,7 +28,7 @@
|
|||||||
"wait_until_true": 0
|
"wait_until_true": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"script": "machine = jingrow.get_pg(\"Virtual Machine\", pg.virtual_machine)\nmachine.create_snapshots(exclude_boot_volume=True, dedicated_snapshot=True)\n\nfield_name = \"app_server_snapshot\" if pg.server_type == \"Server\" else \"database_server_snapshot\"\nno_of_snapshots = len(machine.flags.created_snapshots)\nif no_of_snapshots != 1:\n raise Exception(\"Expected 1 disk snapshot. Found : \"+str(no_of_snapshots))\n \nfrappe.db.set_value(\"Server Snapshot\", arguments.get(\"server_snapshot\"), field_name, machine.flags.created_snapshots[0], update_modified=False)",
|
"script": "machine = jingrow.get_pg(\"Virtual Machine\", pg.virtual_machine)\nmachine.create_snapshots(exclude_boot_volume=True, dedicated_snapshot=True)\n\nfield_name = \"app_server_snapshot\" if pg.server_type == \"Server\" else \"database_server_snapshot\"\nno_of_snapshots = len(machine.flags.created_snapshots)\nif no_of_snapshots != 1:\n raise Exception(\"Expected 1 disk snapshot. Found : \"+str(no_of_snapshots))\n \njingrow.db.set_value(\"Server Snapshot\", arguments.get(\"server_snapshot\"), field_name, machine.flags.created_snapshots[0], update_modified=False)",
|
||||||
"step_name": "Snapshot Disk",
|
"step_name": "Snapshot Disk",
|
||||||
"wait_until_true": 0
|
"wait_until_true": 0
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,9 +18,9 @@
|
|||||||
{
|
{
|
||||||
"pagestatus": 0,
|
"pagestatus": 0,
|
||||||
"pagetype": "Site Config Key Blacklist",
|
"pagetype": "Site Config Key Blacklist",
|
||||||
"key": "frappecloud_url",
|
"key": "jingrowcloud_url",
|
||||||
"modified": "2020-09-15 13:02:11.917220",
|
"modified": "2020-09-15 13:02:11.917220",
|
||||||
"name": "frappecloud_url",
|
"name": "jingrowcloud_url",
|
||||||
"reason": null
|
"reason": null
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@ -28,7 +28,7 @@ jingrow.ui.form.on('Invoice', {
|
|||||||
frm
|
frm
|
||||||
.call({
|
.call({
|
||||||
pg: frm.pg,
|
pg: frm.pg,
|
||||||
method: 'create_invoice_on_frappeio',
|
method: 'create_invoice_on_jingrowio',
|
||||||
btn,
|
btn,
|
||||||
})
|
})
|
||||||
.then((r) => {
|
.then((r) => {
|
||||||
|
|||||||
@ -370,11 +370,11 @@ class Invoice(Page):
|
|||||||
self.amount_due = 0
|
self.amount_due = 0
|
||||||
|
|
||||||
def on_submit(self):
|
def on_submit(self):
|
||||||
self.create_invoice_on_frappeio()
|
self.create_invoice_on_jingrowio()
|
||||||
self.fetch_mpesa_invoice_pdf()
|
self.fetch_mpesa_invoice_pdf()
|
||||||
|
|
||||||
def on_update_after_submit(self):
|
def on_update_after_submit(self):
|
||||||
self.create_invoice_on_frappeio()
|
self.create_invoice_on_jingrowio()
|
||||||
self.fetch_mpesa_invoice_pdf()
|
self.fetch_mpesa_invoice_pdf()
|
||||||
|
|
||||||
def after_insert(self):
|
def after_insert(self):
|
||||||
@ -832,7 +832,7 @@ class Invoice(Page):
|
|||||||
)
|
)
|
||||||
|
|
||||||
@jingrow.whitelist()
|
@jingrow.whitelist()
|
||||||
def create_invoice_on_frappeio(self): # noqa: C901
|
def create_invoice_on_jingrowio(self): # noqa: C901
|
||||||
if self.flags.skip_jingrow_invoice:
|
if self.flags.skip_jingrow_invoice:
|
||||||
return None
|
return None
|
||||||
if self.status != "Paid":
|
if self.status != "Paid":
|
||||||
@ -854,7 +854,7 @@ class Invoice(Page):
|
|||||||
if team.country != address.country:
|
if team.country != address.country:
|
||||||
# don't create invoice if team country and address country don't match
|
# don't create invoice if team country and address country don't match
|
||||||
return None
|
return None
|
||||||
client = self.get_frappeio_connection()
|
client = self.get_jingrowio_connection()
|
||||||
response = client.session.post(
|
response = client.session.post(
|
||||||
f"{client.url}/api/method/create-fc-invoice",
|
f"{client.url}/api/method/create-fc-invoice",
|
||||||
headers=client.headers,
|
headers=client.headers,
|
||||||
@ -902,7 +902,7 @@ class Invoice(Page):
|
|||||||
if is_jingrow_auth_disabled():
|
if is_jingrow_auth_disabled():
|
||||||
return
|
return
|
||||||
|
|
||||||
client = self.get_frappeio_connection()
|
client = self.get_jingrowio_connection()
|
||||||
print_format = jingrow.db.get_single_value("Jcloude Settings", "print_format")
|
print_format = jingrow.db.get_single_value("Jcloude Settings", "print_format")
|
||||||
params = urlencode(
|
params = urlencode(
|
||||||
{
|
{
|
||||||
@ -931,11 +931,11 @@ class Invoice(Page):
|
|||||||
ret.save(ignore_permissions=True)
|
ret.save(ignore_permissions=True)
|
||||||
self.invoice_pdf = ret.file_url
|
self.invoice_pdf = ret.file_url
|
||||||
|
|
||||||
def get_frappeio_connection(self):
|
def get_jingrowio_connection(self):
|
||||||
if not hasattr(self, "frappeio_connection"):
|
if not hasattr(self, "jingrowio_connection"):
|
||||||
self.frappeio_connection = get_jingrow_io_connection()
|
self.jingrowio_connection = get_jingrow_io_connection()
|
||||||
|
|
||||||
return self.frappeio_connection
|
return self.jingrowio_connection
|
||||||
|
|
||||||
def update_transaction_details(self, stripe_charge=None):
|
def update_transaction_details(self, stripe_charge=None):
|
||||||
if not stripe_charge:
|
if not stripe_charge:
|
||||||
|
|||||||
@ -13,7 +13,7 @@ from jcloude.jcloude.pagetype.team.test_team import create_test_team
|
|||||||
from .invoice import Invoice
|
from .invoice import Invoice
|
||||||
|
|
||||||
|
|
||||||
@patch.object(Invoice, "create_invoice_on_frappeio", new=Mock())
|
@patch.object(Invoice, "create_invoice_on_jingrowio", new=Mock())
|
||||||
class TestInvoice(FrappeTestCase):
|
class TestInvoice(FrappeTestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super().setUp()
|
super().setUp()
|
||||||
|
|||||||
@ -18,7 +18,7 @@ from jcloude.jcloude.pagetype.payout_order.payout_order import (
|
|||||||
from jcloude.jcloude.pagetype.team.test_team import create_test_team
|
from jcloude.jcloude.pagetype.team.test_team import create_test_team
|
||||||
|
|
||||||
|
|
||||||
@patch.object(Invoice, "create_invoice_on_frappeio", new=Mock())
|
@patch.object(Invoice, "create_invoice_on_jingrowio", new=Mock())
|
||||||
class TestPayoutOrder(FrappeTestCase):
|
class TestPayoutOrder(FrappeTestCase):
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
jingrow.db.rollback()
|
jingrow.db.rollback()
|
||||||
|
|||||||
@ -51,12 +51,12 @@
|
|||||||
"jerp_api_key",
|
"jerp_api_key",
|
||||||
"jerp_api_secret",
|
"jerp_api_secret",
|
||||||
"column_break_38",
|
"column_break_38",
|
||||||
"frappeio_authentication_section",
|
"jingrowio_authentication_section",
|
||||||
"disable_jingrow_auth",
|
"disable_jingrow_auth",
|
||||||
"jingrow_url",
|
"jingrow_url",
|
||||||
"frappeio_api_key",
|
"jingrowio_api_key",
|
||||||
"column_break_39",
|
"column_break_39",
|
||||||
"frappeio_api_secret",
|
"jingrowio_api_secret",
|
||||||
"backups_tab",
|
"backups_tab",
|
||||||
"offsite_backups_section",
|
"offsite_backups_section",
|
||||||
"backup_region",
|
"backup_region",
|
||||||
@ -416,7 +416,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"collapsible": 1,
|
"collapsible": 1,
|
||||||
"fieldname": "frappeio_authentication_section",
|
"fieldname": "jingrowio_authentication_section",
|
||||||
"fieldtype": "Section Break",
|
"fieldtype": "Section Break",
|
||||||
"label": "Jingrow.io Authentication"
|
"label": "Jingrow.io Authentication"
|
||||||
},
|
},
|
||||||
@ -426,7 +426,7 @@
|
|||||||
"label": "URL"
|
"label": "URL"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"fieldname": "frappeio_api_key",
|
"fieldname": "jingrowio_api_key",
|
||||||
"fieldtype": "Data",
|
"fieldtype": "Data",
|
||||||
"label": "Jingrow.io API Key"
|
"label": "Jingrow.io API Key"
|
||||||
},
|
},
|
||||||
@ -435,7 +435,7 @@
|
|||||||
"fieldtype": "Column Break"
|
"fieldtype": "Column Break"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"fieldname": "frappeio_api_secret",
|
"fieldname": "jingrowio_api_secret",
|
||||||
"fieldtype": "Password",
|
"fieldtype": "Password",
|
||||||
"label": "Jingrow.io API Secret"
|
"label": "Jingrow.io API Secret"
|
||||||
},
|
},
|
||||||
|
|||||||
@ -91,8 +91,8 @@ class PressSettings(Page):
|
|||||||
jerp_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
|
jingrowio_api_key: DF.Data | None
|
||||||
frappeio_api_secret: DF.Password | None
|
jingrowio_api_secret: DF.Password | None
|
||||||
free_credits_inr: DF.Currency
|
free_credits_inr: DF.Currency
|
||||||
free_credits_usd: DF.Currency
|
free_credits_usd: DF.Currency
|
||||||
github_access_token: DF.Data | None
|
github_access_token: DF.Data | None
|
||||||
|
|||||||
@ -6,7 +6,7 @@ from __future__ import annotations
|
|||||||
import os
|
import os
|
||||||
|
|
||||||
import jingrow
|
import jingrow
|
||||||
from jingrow.frappeclient import FrappeClient
|
from jingrow.jingrowclient import FrappeClient
|
||||||
|
|
||||||
from jcloude.jcloude.pagetype.server.server import BaseServer
|
from jcloude.jcloude.pagetype.server.server import BaseServer
|
||||||
from jcloude.runner import Ansible
|
from jcloude.runner import Ansible
|
||||||
|
|||||||
@ -18,7 +18,7 @@ import requests
|
|||||||
import rq
|
import rq
|
||||||
from jingrow import _, has_permission
|
from jingrow import _, has_permission
|
||||||
from jingrow.core.utils import find
|
from jingrow.core.utils import find
|
||||||
from jingrow.frappeclient import FrappeClient, FrappeException
|
from jingrow.jingrowclient import FrappeClient, FrappeException
|
||||||
from jingrow.model.document import Page
|
from jingrow.model.document import Page
|
||||||
from jingrow.model.naming import append_number_if_name_exists
|
from jingrow.model.naming import append_number_if_name_exists
|
||||||
from jingrow.utils import (
|
from jingrow.utils import (
|
||||||
|
|||||||
@ -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", ("jerp.jingrow.com", "jingrow.cloud", "frappehr.com", "frappedesk.com")),
|
"domain": ("in", ("jerp.jingrow.com", "jingrow.cloud", "jingrowhr.com", "jingrowdesk.com")),
|
||||||
},
|
},
|
||||||
pluck="name",
|
pluck="name",
|
||||||
order_by="RAND()",
|
order_by="RAND()",
|
||||||
|
|||||||
@ -485,7 +485,7 @@ class Team(Page):
|
|||||||
and not jingrow.conf.allow_tests
|
and not jingrow.conf.allow_tests
|
||||||
and self.has_value_changed("billing_name")
|
and self.has_value_changed("billing_name")
|
||||||
):
|
):
|
||||||
self.update_billing_details_on_frappeio()
|
self.update_billing_details_on_jingrowio()
|
||||||
|
|
||||||
def update_draft_invoice_payment_mode(self):
|
def update_draft_invoice_payment_mode(self):
|
||||||
if self.has_value_changed("payment_mode"):
|
if self.has_value_changed("payment_mode"):
|
||||||
@ -649,7 +649,7 @@ class Team(Page):
|
|||||||
self.reload()
|
self.reload()
|
||||||
|
|
||||||
self.update_billing_details_on_stripe(address_pg)
|
self.update_billing_details_on_stripe(address_pg)
|
||||||
self.update_billing_details_on_frappeio()
|
self.update_billing_details_on_jingrowio()
|
||||||
self.update_billing_details_on_draft_invoices()
|
self.update_billing_details_on_draft_invoices()
|
||||||
|
|
||||||
def update_billing_details_on_draft_invoices(self):
|
def update_billing_details_on_draft_invoices(self):
|
||||||
@ -658,7 +658,7 @@ class Team(Page):
|
|||||||
# Invoice.customer_name set by Invoice.validate()
|
# Invoice.customer_name set by Invoice.validate()
|
||||||
jingrow.get_pg("Invoice", draft_invoice).save()
|
jingrow.get_pg("Invoice", draft_invoice).save()
|
||||||
|
|
||||||
def update_billing_details_on_frappeio(self):
|
def update_billing_details_on_jingrowio(self):
|
||||||
if jingrow.flags.in_install:
|
if jingrow.flags.in_install:
|
||||||
return
|
return
|
||||||
|
|
||||||
@ -666,7 +666,7 @@ class Team(Page):
|
|||||||
return
|
return
|
||||||
|
|
||||||
try:
|
try:
|
||||||
frappeio_client = get_jingrow_io_connection()
|
jingrowio_client = get_jingrow_io_connection()
|
||||||
except FrappeioServerNotSet as e:
|
except FrappeioServerNotSet as e:
|
||||||
if jingrow.conf.developer_mode or os.environ.get("CI"):
|
if jingrow.conf.developer_mode or os.environ.get("CI"):
|
||||||
return
|
return
|
||||||
@ -682,7 +682,7 @@ class Team(Page):
|
|||||||
|
|
||||||
if previous_billing_name and previous_billing_name != self.billing_name:
|
if previous_billing_name and previous_billing_name != self.billing_name:
|
||||||
try:
|
try:
|
||||||
frappeio_client.rename_pg("Customer", previous_billing_name, self.billing_name)
|
jingrowio_client.rename_pg("Customer", previous_billing_name, self.billing_name)
|
||||||
jingrow.msgprint(f"Renamed customer from {previous_billing_name} to {self.billing_name}")
|
jingrow.msgprint(f"Renamed customer from {previous_billing_name} to {self.billing_name}")
|
||||||
except Exception:
|
except Exception:
|
||||||
log_error("Failed to rename customer on framework.jingrow.com", traceback=jingrow.get_traceback())
|
log_error("Failed to rename customer on framework.jingrow.com", traceback=jingrow.get_traceback())
|
||||||
|
|||||||
@ -27,7 +27,7 @@ def create_test_jcloude_admin_team(
|
|||||||
return create_test_team(email, skip_onboarding=skip_onboarding, free_account=free_account)
|
return create_test_team(email, skip_onboarding=skip_onboarding, free_account=free_account)
|
||||||
|
|
||||||
|
|
||||||
@patch.object(Team, "update_billing_details_on_frappeio", new=Mock())
|
@patch.object(Team, "update_billing_details_on_jingrowio", new=Mock())
|
||||||
@patch.object(Team, "create_stripe_customer", new=Mock())
|
@patch.object(Team, "create_stripe_customer", new=Mock())
|
||||||
def create_test_team(
|
def create_test_team(
|
||||||
email: str | None = None,
|
email: str | None = None,
|
||||||
|
|||||||
@ -12,7 +12,7 @@
|
|||||||
"section_break_4",
|
"section_break_4",
|
||||||
"team_disabled",
|
"team_disabled",
|
||||||
"stripe_data_deleted",
|
"stripe_data_deleted",
|
||||||
"frappeio_data_deleted",
|
"jingrowio_data_deleted",
|
||||||
"data_anonymized",
|
"data_anonymized",
|
||||||
"deletion_steps",
|
"deletion_steps",
|
||||||
"users_anonymized"
|
"users_anonymized"
|
||||||
@ -60,7 +60,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"default": "0",
|
"default": "0",
|
||||||
"fieldname": "frappeio_data_deleted",
|
"fieldname": "jingrowio_data_deleted",
|
||||||
"fieldtype": "Check",
|
"fieldtype": "Check",
|
||||||
"label": "Jingrow.io Data Deleted",
|
"label": "Jingrow.io Data Deleted",
|
||||||
"read_only": 1
|
"read_only": 1
|
||||||
|
|||||||
@ -34,7 +34,7 @@ class TeamDeletionRequest(PersonalDataDeletionRequest):
|
|||||||
|
|
||||||
data_anonymized: DF.Check
|
data_anonymized: DF.Check
|
||||||
deletion_steps: DF.Table[PersonalDataDeletionStep]
|
deletion_steps: DF.Table[PersonalDataDeletionStep]
|
||||||
frappeio_data_deleted: DF.Check
|
jingrowio_data_deleted: DF.Check
|
||||||
status: DF.Literal["Pending Verification", "Deletion Verified", "Processing Deletion", "Deleted"]
|
status: DF.Literal["Pending Verification", "Deletion Verified", "Processing Deletion", "Deleted"]
|
||||||
stripe_data_deleted: DF.Check
|
stripe_data_deleted: DF.Check
|
||||||
team: DF.Link
|
team: DF.Link
|
||||||
@ -96,12 +96,12 @@ class TeamDeletionRequest(PersonalDataDeletionRequest):
|
|||||||
self.db_set("status", "Processing Deletion")
|
self.db_set("status", "Processing Deletion")
|
||||||
if not self.team_disabled:
|
if not self.team_disabled:
|
||||||
self.disable_team()
|
self.disable_team()
|
||||||
if not self.frappeio_data_deleted:
|
if not self.jingrowio_data_deleted:
|
||||||
self.delete_data_on_frappeio()
|
self.delete_data_on_jingrowio()
|
||||||
if not self.stripe_data_deleted:
|
if not self.stripe_data_deleted:
|
||||||
self.delete_stripe_customer()
|
self.delete_stripe_customer()
|
||||||
if (
|
if (
|
||||||
self.team_disabled and self.frappeio_data_deleted and self.stripe_data_deleted
|
self.team_disabled and self.jingrowio_data_deleted and self.stripe_data_deleted
|
||||||
) and not self.data_anonymized:
|
) and not self.data_anonymized:
|
||||||
self.delete_data_on_jcloude()
|
self.delete_data_on_jcloude()
|
||||||
self.finish_up()
|
self.finish_up()
|
||||||
@ -109,7 +109,7 @@ class TeamDeletionRequest(PersonalDataDeletionRequest):
|
|||||||
def finish_up(self):
|
def finish_up(self):
|
||||||
if (
|
if (
|
||||||
self.team_disabled
|
self.team_disabled
|
||||||
and self.frappeio_data_deleted
|
and self.jingrowio_data_deleted
|
||||||
and self.stripe_data_deleted
|
and self.stripe_data_deleted
|
||||||
and self.data_anonymized
|
and self.data_anonymized
|
||||||
):
|
):
|
||||||
@ -154,12 +154,12 @@ class TeamDeletionRequest(PersonalDataDeletionRequest):
|
|||||||
self.reload()
|
self.reload()
|
||||||
|
|
||||||
@handle_exc
|
@handle_exc
|
||||||
def delete_data_on_frappeio(self):
|
def delete_data_on_jingrowio(self):
|
||||||
"""Anonymize data on framework.jingrow.com"""
|
"""Anonymize data on framework.jingrow.com"""
|
||||||
from jcloude.utils.billing import get_jingrow_io_connection, is_jingrow_auth_disabled
|
from jcloude.utils.billing import get_jingrow_io_connection, is_jingrow_auth_disabled
|
||||||
|
|
||||||
if is_jingrow_auth_disabled():
|
if is_jingrow_auth_disabled():
|
||||||
self.db_set("frappeio_data_deleted", True, commit=True)
|
self.db_set("jingrowio_data_deleted", True, commit=True)
|
||||||
return
|
return
|
||||||
|
|
||||||
client = get_jingrow_io_connection()
|
client = get_jingrow_io_connection()
|
||||||
@ -171,7 +171,7 @@ class TeamDeletionRequest(PersonalDataDeletionRequest):
|
|||||||
if not response.ok:
|
if not response.ok:
|
||||||
response.raise_for_status()
|
response.raise_for_status()
|
||||||
|
|
||||||
self.db_set("frappeio_data_deleted", True, commit=True)
|
self.db_set("jingrowio_data_deleted", True, commit=True)
|
||||||
self.reload()
|
self.reload()
|
||||||
|
|
||||||
def set_users_anonymized(self):
|
def set_users_anonymized(self):
|
||||||
|
|||||||
@ -24,7 +24,7 @@ def get_remote_script(remote_site):
|
|||||||
return request.json()["message"]
|
return request.json()["message"]
|
||||||
|
|
||||||
|
|
||||||
def frappecloud_migrator():
|
def jingrowcloud_migrator():
|
||||||
remote_site_name = "jcloud.jingrow.com"
|
remote_site_name = "jcloud.jingrow.com"
|
||||||
script_contents = get_remote_script(remote_site=remote_site_name)
|
script_contents = get_remote_script(remote_site=remote_site_name)
|
||||||
import os
|
import os
|
||||||
@ -43,7 +43,7 @@ def frappecloud_migrator():
|
|||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
os.chdir("sites")
|
os.chdir("sites")
|
||||||
try:
|
try:
|
||||||
frappecloud_migrator()
|
jingrowcloud_migrator()
|
||||||
except (KeyboardInterrupt, click.exceptions.Abort):
|
except (KeyboardInterrupt, click.exceptions.Abort):
|
||||||
print("\nExitting...")
|
print("\nExitting...")
|
||||||
except Exception:
|
except Exception:
|
||||||
|
|||||||
@ -11,7 +11,7 @@ import click
|
|||||||
import requests
|
import requests
|
||||||
|
|
||||||
|
|
||||||
def frappecloud_migrator():
|
def jingrowcloud_migrator():
|
||||||
print("Retreiving Site Migrator...")
|
print("Retreiving Site Migrator...")
|
||||||
remote_site = "jcloud.jingrow.com"
|
remote_site = "jcloud.jingrow.com"
|
||||||
request_url = "https://{}/api/method/jcloude.api.script_2".format(remote_site)
|
request_url = "https://{}/api/method/jcloude.api.script_2".format(remote_site)
|
||||||
@ -37,4 +37,4 @@ def frappecloud_migrator():
|
|||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
os.chdir("sites")
|
os.chdir("sites")
|
||||||
frappecloud_migrator()
|
jingrowcloud_migrator()
|
||||||
|
|||||||
@ -64,5 +64,5 @@ If `is_standby` field is checked, that site can be allocated to a user.
|
|||||||
- These APIs use a different type of authentication mechanism. Check this readme for more info http://git.jingrow.com/jingrow/jcloude/blob/master/jcloude/saas/api/readme.md
|
- These APIs use a different type of authentication mechanism. Check this readme for more info http://git.jingrow.com/jingrow/jcloude/blob/master/jcloude/saas/api/readme.md
|
||||||
- Reference of integration in framework
|
- Reference of integration in framework
|
||||||
- http://git.jingrow.com/jingrow/jingrow/tree/develop/billing
|
- http://git.jingrow.com/jingrow/jingrow/tree/develop/billing
|
||||||
- http://git.jingrow.com/jingrow/jingrow/blob/develop/jingrow/integrations/jingrow_providers/frappecloud_billing.py
|
- http://git.jingrow.com/jingrow/jingrow/blob/develop/jingrow/integrations/jingrow_providers/jingrowcloud_billing.py
|
||||||
|
|
||||||
|
|||||||
@ -463,12 +463,12 @@ def create_session():
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def frappecloud_migrator(local_site, jingrow_provider):
|
def jingrowcloud_migrator(local_site, jingrow_provider):
|
||||||
global login_url, upload_url, remote_link_url, register_remote_url, options_url, site_exists_url, site_info_url, restore_site_url, account_details_url, all_site_url, finish_multipart_url
|
global login_url, upload_url, remote_link_url, register_remote_url, options_url, site_exists_url, site_info_url, restore_site_url, account_details_url, all_site_url, finish_multipart_url
|
||||||
global session, remote_site, site_plans_url
|
global session, remote_site, site_plans_url
|
||||||
global has_external_files, external_db_path, external_public_files_path, external_private_files_path, external_config_file_path
|
global has_external_files, external_db_path, external_public_files_path, external_private_files_path, external_config_file_path
|
||||||
|
|
||||||
remote_site = jingrow_provider or jingrow.conf.frappecloud_url
|
remote_site = jingrow_provider or jingrow.conf.jingrowcloud_url
|
||||||
scheme = "https"
|
scheme = "https"
|
||||||
|
|
||||||
login_url = "{}://{}/api/method/login".format(scheme, remote_site)
|
login_url = "{}://{}/api/method/login".format(scheme, remote_site)
|
||||||
@ -562,9 +562,9 @@ def main():
|
|||||||
if not has_external_files:
|
if not has_external_files:
|
||||||
jingrow.init(site=local_site)
|
jingrow.init(site=local_site)
|
||||||
jingrow.connect()
|
jingrow.connect()
|
||||||
frappecloud_migrator(local_site, jingrow_provider)
|
jingrowcloud_migrator(local_site, jingrow_provider)
|
||||||
else:
|
else:
|
||||||
frappecloud_migrator(local_site=None, jingrow_provider=jingrow_provider)
|
jingrowcloud_migrator(local_site=None, jingrow_provider=jingrow_provider)
|
||||||
except (KeyboardInterrupt, click.exceptions.Abort):
|
except (KeyboardInterrupt, click.exceptions.Abort):
|
||||||
print("\nExiting...")
|
print("\nExiting...")
|
||||||
except Exception:
|
except Exception:
|
||||||
|
|||||||
@ -19,7 +19,7 @@
|
|||||||
<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
|
||||||
School</a>
|
School</a>
|
||||||
<a class="mr-4 text-lg text-[#4C5A67] leading-8 font-medium" href="https://framework.jingrow.com/team/frappecloud"
|
<a class="mr-4 text-lg text-[#4C5A67] leading-8 font-medium" href="https://framework.jingrow.com/team/jingrowcloud"
|
||||||
rel="noreferrer">Team</a>
|
rel="noreferrer">Team</a>
|
||||||
<a class="mr-4 text-lg text-[#4C5A67] leading-8 font-medium" href="mailto:support@framework.jingrow.com"
|
<a class="mr-4 text-lg text-[#4C5A67] leading-8 font-medium" href="mailto:support@framework.jingrow.com"
|
||||||
rel="noreferrer">Contact</a>
|
rel="noreferrer">Contact</a>
|
||||||
|
|||||||
@ -56,7 +56,7 @@ def format_stripe_money(amount, currency):
|
|||||||
|
|
||||||
|
|
||||||
def get_jerp.jingrow.com_connection():
|
def get_jerp.jingrow.com_connection():
|
||||||
from jingrow.frappeclient import FrappeClient
|
from jingrow.jingrowclient import FrappeClient
|
||||||
|
|
||||||
jcloude_settings = jingrow.get_single("Jcloude Settings")
|
jcloude_settings = jingrow.get_single("Jcloude Settings")
|
||||||
jerp_api_secret = jcloude_settings.get_password("jerp_api_secret", raise_exception=False)
|
jerp_api_secret = jcloude_settings.get_password("jerp_api_secret", raise_exception=False)
|
||||||
@ -72,19 +72,19 @@ def get_jerp.jingrow.com_connection():
|
|||||||
|
|
||||||
|
|
||||||
def get_jingrow_io_connection():
|
def get_jingrow_io_connection():
|
||||||
if hasattr(jingrow.local, "jcloude_frappeio_conn"):
|
if hasattr(jingrow.local, "jcloude_jingrowio_conn"):
|
||||||
return jingrow.local.jcloude_frappeio_conn
|
return jingrow.local.jcloude_jingrowio_conn
|
||||||
|
|
||||||
from jingrow.frappeclient import FrappeClient
|
from jingrow.jingrowclient import FrappeClient
|
||||||
|
|
||||||
jcloude_settings = jingrow.get_single("Jcloude Settings")
|
jcloude_settings = jingrow.get_single("Jcloude Settings")
|
||||||
jingrow_api_key = jcloude_settings.frappeio_api_key
|
jingrow_api_key = jcloude_settings.jingrowio_api_key
|
||||||
jingrow_api_secret = jcloude_settings.get_password("frappeio_api_secret", raise_exception=False)
|
jingrow_api_secret = jcloude_settings.get_password("jingrowio_api_secret", raise_exception=False)
|
||||||
|
|
||||||
if not (jingrow_api_key and jingrow_api_secret and jcloude_settings.jingrow_url):
|
if not (jingrow_api_key and jingrow_api_secret and jcloude_settings.jingrow_url):
|
||||||
jingrow.throw("Jingrow.io URL not set up in Jcloude Settings", exc=FrappeioServerNotSet)
|
jingrow.throw("Jingrow.io URL not set up in Jcloude Settings", exc=FrappeioServerNotSet)
|
||||||
|
|
||||||
jingrow.local.jcloude_frappeio_conn = FrappeClient(
|
jingrow.local.jcloude_jingrowio_conn = FrappeClient(
|
||||||
jcloude_settings.jingrow_url, api_key=jingrow_api_key, api_secret=jingrow_api_secret
|
jcloude_settings.jingrow_url, api_key=jingrow_api_key, api_secret=jingrow_api_secret
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -250,7 +250,7 @@ def get_partner_external_connection(mpesa_setup):
|
|||||||
if hasattr(jingrow.local, "_external_conn"):
|
if hasattr(jingrow.local, "_external_conn"):
|
||||||
return jingrow.local.jcloude_external_conn
|
return jingrow.local.jcloude_external_conn
|
||||||
|
|
||||||
from jingrow.frappeclient import FrappeClient
|
from jingrow.jingrowclient import FrappeClient
|
||||||
|
|
||||||
# Fetch API from gateway
|
# Fetch API from gateway
|
||||||
payment_gateway = jingrow.get_all(
|
payment_gateway = jingrow.get_all(
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user