From c829ab65d99f24c63081f806b00d4f889d7d919b Mon Sep 17 00:00:00 2001 From: Jannat Patel Date: Mon, 19 Jan 2026 16:28:16 +0530 Subject: [PATCH 1/2] fix: payment gateway form --- .../Settings/PaymentGatewayDetails.vue | 59 ++++++++++--------- 1 file changed, 31 insertions(+), 28 deletions(-) diff --git a/frontend/src/components/Settings/PaymentGatewayDetails.vue b/frontend/src/components/Settings/PaymentGatewayDetails.vue index c6392140..feb21f88 100644 --- a/frontend/src/components/Settings/PaymentGatewayDetails.vue +++ b/frontend/src/components/Settings/PaymentGatewayDetails.vue @@ -2,21 +2,25 @@ + @@ -56,7 +59,7 @@ import SettingFields from '@/components/Settings/SettingFields.vue' const show = defineModel({ required: true, default: false }) const paymentGateways = defineModel('paymentGateways') const newGateway = ref(null) -const newGatewayFields = ref([]) +const newGatewayFields = ref<{ columns: { fields: any[] }[] }[]>([]) const newGatewayData = ref>({}) const props = defineProps<{ @@ -72,6 +75,7 @@ const paymentGateway = createResource({ }, transform(data: any) { arrangeFields(data.fields) + data.sections = makeSections(data.fields) return data }, }) @@ -102,10 +106,6 @@ const arrangeFields = (fields: any[]) => { } return 0 }) - - fields.splice(3, 0, { - type: 'Column Break', - }) } watch( @@ -130,7 +130,7 @@ watch(newGateway, () => { gatewayFields.reload({ doctype: gatewayDoc.name }).then(() => { let fields = gatewayFields.data || [] arrangeFields(fields) - newGatewayFields.value = fields + newGatewayFields.value = makeSections(fields) prepareGatewayData() }) }) @@ -192,19 +192,6 @@ const getGatewayFields = () => { }, {}) } -const createGatewayRecord = (gatewayDoc: any, data: any = {}) => { - call('frappe.client.insert', { - doc: { - doctype: 'Payment Gateway', - gateway: newGateway.value, - gateway_controller: gatewayDoc.issingle ? '' : gatewayDoc.name, - gateway_settings: gatewayDoc.issingle ? '' : data.name, - }, - }).then(() => { - paymentGateways.value?.reload() - }) -} - const allGatewayOptions = computed(() => { let options: string[] = [] let gatewayList = allGateways.data?.map((gateway: any) => gateway.name) || [] @@ -230,4 +217,20 @@ const prepareGatewayData = () => { }) } } + +const makeSections = (fields: any[]) => { + const columnCount = fields.length / 3 + let sections: { columns: { fields: any[] }[] }[] = [ + { + columns: [], + }, + ] + + for (let i = 0; i < columnCount; i++) { + sections[0].columns.push({ + fields: fields.slice(i * 3, i * 3 + 3), + }) + } + return sections +} From 50a091a7b0dd408472f9ecf27c4f6d0a52ecc161 Mon Sep 17 00:00:00 2001 From: Jannat Patel Date: Mon, 19 Jan 2026 17:32:09 +0530 Subject: [PATCH 2/2] fix: allow social login endpoints --- lms/auth.py | 11 ++++++++++- lms/test_auth.py | 2 -- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/lms/auth.py b/lms/auth.py index 3e756fad..7ad9354b 100644 --- a/lms/auth.py +++ b/lms/auth.py @@ -12,6 +12,15 @@ ALLOWED_PATHS = [ "/api/method/frappe.integrations.oauth2.authorize", "/api/method/frappe.integrations.oauth2.approve", "/api/method/frappe.integrations.oauth2.get_token", + "/api/method/frappe.www.login.login_via_google", + "/api/method/frappe.www.login.login_via_github", + "/api/method/frappe.www.login.login_via_facebook", + "/api/method/frappe.www.login.login_via_frappe", + "/api/method/frappe.www.login.login_via_office365", + "/api/method/frappe.www.login.login_via_salesforce", + "/api/method/frappe.www.login.login_via_fairlogin", + "/api/method/frappe.www.login.login_via_keycloak", + "/api/method/frappe.www.login.custom", "/api/method/frappe.integrations.oauth2.openid_profile", "/api/method/frappe.website.doctype.web_page_view.web_page_view.make_view_log", "/api/method/upload_file", @@ -48,7 +57,7 @@ def authenticate(): if not path.startswith("/api/"): return - print("path", path) + if path.startswith("/lms") or path.startswith("/api/method/lms."): return diff --git a/lms/test_auth.py b/lms/test_auth.py index 42569cbd..5981d60f 100644 --- a/lms/test_auth.py +++ b/lms/test_auth.py @@ -1,8 +1,6 @@ import frappe -from frappe.tests import UnitTestCase from frappe.tests.test_api import FrappeAPITestCase -from lms.auth import authenticate from lms.lms.test_utils import TestUtils