From 7e6cb727bd15753a0ddcbdbee856992b8c942509 Mon Sep 17 00:00:00 2001 From: Jannat Patel Date: Thu, 10 Apr 2025 17:19:38 +0530 Subject: [PATCH] feat: seo description field --- frontend/components.d.ts | 1 - lms/www/lms.py | 39 ++++++++++++--------------------------- 2 files changed, 12 insertions(+), 28 deletions(-) diff --git a/frontend/components.d.ts b/frontend/components.d.ts index 4389972d..93deddcf 100644 --- a/frontend/components.d.ts +++ b/frontend/components.d.ts @@ -68,7 +68,6 @@ declare module 'vue' { NoPermission: typeof import('./src/components/NoPermission.vue')['default'] NoSidebarLayout: typeof import('./src/components/NoSidebarLayout.vue')['default'] NotPermitted: typeof import('./src/components/NotPermitted.vue')['default'] - OnboardingBanner: typeof import('./src/components/OnboardingBanner.vue')['default'] PageModal: typeof import('./src/components/Modals/PageModal.vue')['default'] PaymentSettings: typeof import('./src/components/PaymentSettings.vue')['default'] ProgressBar: typeof import('./src/components/ProgressBar.vue')['default'] diff --git a/lms/www/lms.py b/lms/www/lms.py index 2131a6a8..c0445361 100644 --- a/lms/www/lms.py +++ b/lms/www/lms.py @@ -3,7 +3,6 @@ import re from bs4 import BeautifulSoup from frappe import _ from frappe.utils.telemetry import capture -from frappe.utils import cint no_cache = 1 @@ -15,22 +14,23 @@ def get_context(): or "/assets/lms/frontend/favicon.png" ) title = frappe.db.get_single_value("Website Settings", "app_name") or "Frappe Learning" + description = frappe.db.get_single_value("LMS Settings", "meta_description") csrf_token = frappe.sessions.get_csrf_token() frappe.db.commit() context = frappe._dict() context.csrf_token = csrf_token - context.meta = get_meta(app_path, title, favicon) + context.meta = get_meta(app_path, title, favicon, description) capture("active_site", "lms") context.title = title context.favicon = favicon return context -def get_meta(app_path, title, favicon): +def get_meta(app_path, title, favicon, description): meta = {} if app_path: - meta = get_meta_from_document(app_path, favicon) + meta = get_meta_from_document(app_path) route_meta = frappe.get_all("Website Meta Tag", {"parent": app_path}, ["key", "value"]) @@ -47,22 +47,26 @@ def get_meta(app_path, title, favicon): elif row.key == "link": meta["link"] = row.value + if not meta.get("description"): + meta["description"] = description + + if not meta.get("image"): + meta["image"] = favicon + if not meta: meta = { "title": title, "image": favicon, - "description": "Easy to use Learning Management System", + "description": description, } return meta -def get_meta_from_document(app_path, favicon): +def get_meta_from_document(app_path): if app_path == "courses": return { "title": _("Course List"), - "image": favicon, - "description": "This page lists all the courses published on our website", "keywords": "All Courses, Courses, Learn", "link": "/courses", } @@ -72,7 +76,6 @@ def get_meta_from_document(app_path, favicon): return { "title": _("New Course"), "image": frappe.db.get_single_value("Website Settings", "banner_image"), - "description": "Create a new course", "keywords": "New Course, Create Course", "link": "/lms/courses/new/edit", } @@ -99,8 +102,6 @@ def get_meta_from_document(app_path, favicon): if app_path == "batches": return { "title": _("Batches"), - "image": favicon, - "description": "This page lists all the batches published on our website", "keywords": "All Batches, Batches, Learn", "link": "/batches", } @@ -130,8 +131,6 @@ def get_meta_from_document(app_path, favicon): if "new/edit" in app_path: return { "title": _("New Batch"), - "image": favicon, - "description": "Create a new batch", "keywords": "New Batch, Create Batch", "link": "/lms/batches/new/edit", } @@ -157,8 +156,6 @@ def get_meta_from_document(app_path, favicon): if app_path == "job-openings": return { "title": _("Job Openings"), - "image": favicon, - "description": "This page lists all the job openings published on our website", "keywords": "Job Openings, Jobs, Vacancies", "link": "/job-openings", } @@ -182,8 +179,6 @@ def get_meta_from_document(app_path, favicon): if app_path == "statistics": return { "title": _("Statistics"), - "image": favicon, - "description": "This page lists all the statistics of this platform", "keywords": "Enrollment Count, Completion, Signups", "link": "/statistics", } @@ -231,8 +226,6 @@ def get_meta_from_document(app_path, favicon): if app_path == "quizzes": return { "title": _("Quizzes"), - "image": favicon, - "description": _("Test your knowledge with interactive quizzes and more."), "keywords": "Quizzes, interactive quizzes, online quizzes", "link": "/quizzes", } @@ -248,8 +241,6 @@ def get_meta_from_document(app_path, favicon): if quiz: return { "title": quiz.title, - "image": favicon, - "description": "Test your knowledge with interactive quizzes.", "keywords": quiz.title, "link": f"/quizzes/{quiz_name}", } @@ -257,8 +248,6 @@ def get_meta_from_document(app_path, favicon): if app_path == "assignments": return { "title": _("Assignments"), - "image": favicon, - "description": _("Test your knowledge with interactive assignments and more."), "keywords": "Assignments, interactive assignments, online assignments", "link": "/assignments", } @@ -274,8 +263,6 @@ def get_meta_from_document(app_path, favicon): if assignment: return { "title": assignment.title, - "image": favicon, - "description": "Test your knowledge with interactive assignments.", "keywords": assignment.title, "link": f"/assignments/{assignment_name}", } @@ -283,8 +270,6 @@ def get_meta_from_document(app_path, favicon): if app_path == "programs": return { "title": _("Programs"), - "image": favicon, - "description": "This page lists all the programs published on our website", "keywords": "All Programs, Programs, Learn", "link": "/programs", }