feat: editor js import
This commit is contained in:
@@ -144,6 +144,10 @@ website_route_rules = [
|
||||
"from_route": "/courses/<course>/learn/<int:chapter>.<int:lesson>",
|
||||
"to_route": "batch/learn",
|
||||
},
|
||||
{
|
||||
"from_route": "/courses/<course>/learn/<int:chapter>.<int:lesson>/edit",
|
||||
"to_route": "batch/edit",
|
||||
},
|
||||
{"from_route": "/quizzes", "to_route": "batch/quiz_list"},
|
||||
{"from_route": "/quizzes/<quizname>", "to_route": "batch/quiz"},
|
||||
{"from_route": "/classes/<classname>", "to_route": "classes/class"},
|
||||
|
||||
@@ -42,6 +42,7 @@ def find_macros(text):
|
||||
if not text:
|
||||
return []
|
||||
macros = re.findall(MACRO_RE, text)
|
||||
print(macros)
|
||||
# remove the quotes around the argument
|
||||
return [(name, _remove_quotes(arg)) for name, arg in macros]
|
||||
|
||||
|
||||
@@ -269,6 +269,7 @@ def get_progress(course, lesson):
|
||||
|
||||
|
||||
def render_html(lesson):
|
||||
print(lesson)
|
||||
youtube = lesson.youtube
|
||||
quiz_id = lesson.quiz_id
|
||||
body = lesson.body
|
||||
|
||||
@@ -138,6 +138,7 @@ def youtube_video_renderer(video_id):
|
||||
|
||||
|
||||
def video_renderer(src):
|
||||
print(src)
|
||||
return f"<video controls width='100%'><source src={src} type='video/mp4'></video>"
|
||||
|
||||
|
||||
|
||||
5
lms/public/js/editor.js
Normal file
5
lms/public/js/editor.js
Normal file
@@ -0,0 +1,5 @@
|
||||
import EditorJS from "@editorjs/editorjs";
|
||||
|
||||
const editor = new EditorJS("body");
|
||||
|
||||
console.log(editor);
|
||||
@@ -1,3 +1,4 @@
|
||||
import "./profile.js";
|
||||
import "./common_functions.js";
|
||||
import "./editor.js";
|
||||
import "../../../../frappe/frappe/public/js/frappe/ui/chart.js";
|
||||
|
||||
25
lms/www/batch/edit.html
Normal file
25
lms/www/batch/edit.html
Normal file
@@ -0,0 +1,25 @@
|
||||
{% extends "lms/templates/lms_base.html" %}
|
||||
|
||||
{% block title %}
|
||||
{% if lesson.title %}
|
||||
{{ lesson.title }} - {{ course.title }}
|
||||
{% else %}
|
||||
{{ _("New Lesson") }}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="container">
|
||||
<div>
|
||||
<div class="">
|
||||
<div>
|
||||
{{ _("Title") }}
|
||||
</div>
|
||||
<div>
|
||||
{{ _("Something short and concise.") }}
|
||||
</div>
|
||||
<input class="form-control">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
10
lms/www/batch/edit.py
Normal file
10
lms/www/batch/edit.py
Normal file
@@ -0,0 +1,10 @@
|
||||
import frappe
|
||||
from lms.www.utils import get_current_lesson_details, get_common_context
|
||||
|
||||
|
||||
def get_context(context):
|
||||
get_common_context(context)
|
||||
chapter_index = frappe.form_dict.get("chapter")
|
||||
lesson_index = frappe.form_dict.get("lesson")
|
||||
lesson_number = f"{chapter_index}.{lesson_index}"
|
||||
context.lesson = get_current_lesson_details(lesson_number, context)
|
||||
@@ -593,7 +593,7 @@ const build_attachment_table = (file_doc) => {
|
||||
};
|
||||
|
||||
const make_editor = () => {
|
||||
this.code_field_group = new frappe.ui.FieldGroup({
|
||||
/* this.code_field_group = new frappe.ui.FieldGroup({
|
||||
fields: [
|
||||
{
|
||||
fieldname: "code_md",
|
||||
@@ -606,7 +606,7 @@ const make_editor = () => {
|
||||
this.code_field_group.make();
|
||||
$("#body .form-section:last").removeClass("empty-section");
|
||||
$("#body .frappe-control").removeClass("hide-control");
|
||||
$("#body .form-column").addClass("p-0");
|
||||
$("#body .form-column").addClass("p-0"); */
|
||||
};
|
||||
|
||||
const set_file_type = () => {
|
||||
|
||||
@@ -3,7 +3,11 @@ from frappe import _
|
||||
from frappe.utils import cstr, flt
|
||||
|
||||
from lms.lms.utils import get_lesson_url, has_course_moderator_role, is_instructor
|
||||
from lms.www.utils import get_common_context, redirect_to_lesson
|
||||
from lms.www.utils import (
|
||||
get_common_context,
|
||||
redirect_to_lesson,
|
||||
get_current_lesson_details,
|
||||
)
|
||||
|
||||
|
||||
def get_context(context):
|
||||
@@ -62,20 +66,6 @@ def get_context(context):
|
||||
}
|
||||
|
||||
|
||||
def get_current_lesson_details(lesson_number, context):
|
||||
details_list = list(filter(lambda x: cstr(x.number) == lesson_number, context.lessons))
|
||||
|
||||
if not len(details_list):
|
||||
if frappe.form_dict.get("edit"):
|
||||
return None
|
||||
else:
|
||||
redirect_to_lesson(context.course)
|
||||
|
||||
lesson_info = details_list[0]
|
||||
lesson_info.body = lesson_info.body.replace('"', "'")
|
||||
return lesson_info
|
||||
|
||||
|
||||
def get_url(lesson_number, course):
|
||||
return (
|
||||
get_lesson_url(course.name, lesson_number)
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import frappe
|
||||
|
||||
from lms.lms.utils import get_lesson_url, get_lessons, get_membership
|
||||
from frappe.utils import cstr
|
||||
|
||||
|
||||
def get_common_context(context):
|
||||
@@ -40,3 +41,17 @@ def redirect_to_lesson(course, index_="1.1"):
|
||||
get_lesson_url(course.name, index_) + course.query_parameter
|
||||
)
|
||||
raise frappe.Redirect
|
||||
|
||||
|
||||
def get_current_lesson_details(lesson_number, context):
|
||||
details_list = list(filter(lambda x: cstr(x.number) == lesson_number, context.lessons))
|
||||
|
||||
if not len(details_list):
|
||||
if frappe.form_dict.get("edit"):
|
||||
return None
|
||||
else:
|
||||
redirect_to_lesson(context.course)
|
||||
|
||||
lesson_info = details_list[0]
|
||||
lesson_info.body = lesson_info.body.replace('"', "'")
|
||||
return lesson_info
|
||||
|
||||
Reference in New Issue
Block a user