diff options
Diffstat (limited to 'lesson_html.py')
-rwxr-xr-x | lesson_html.py | 145 |
1 files changed, 145 insertions, 0 deletions
diff --git a/lesson_html.py b/lesson_html.py new file mode 100755 index 0000000..847a00c --- /dev/null +++ b/lesson_html.py @@ -0,0 +1,145 @@ +#! /usr/bin/env python2.6 +# -*- coding: utf-8 -*- + +import html +import string + +def start_html(lesson): + displayGrade = u'०१२३४५६७८९'[lesson.grade()]; + displaySubject = { + 'English': 'English', + 'Maths':u'गणित', + 'Nepali':u'नेपाली' }[lesson.subject()]; + karma = lesson.karma + + doc = html.HtmlDocument() + with doc.html(): + with doc.head(): + with doc.title(): + doc.text(lesson.lesson_title) + doc.meta_utf8() + doc.favicon(karma.image('favicon').relative_path(None, web=True)) + doc.css(karma.css('kstart').relative_path(None, web=True)) + for f in ['jquery', 'kstart']: + doc.java_script(karma.java_script(f).relative_path(None, web=True)) + with doc.body(id='kStart'): + with doc.div(id='top'): + doc.div(id='backBtn', title='Back') + with doc.div(id='topMiddle'): + doc.div(id='topDesc', className='center').text(u'साझा शिक्षा ई-पाटीद्वारा निर्मित') + doc.div(id='topE-Paath', className='center').text(u'ई-पाठ') + with doc.div(id='middle'): + with doc.div(id='grade', className='center'): + doc.span(id='gradeText').text(u'कक्षा:') + doc.span(id='gradeNum').text(displayGrade) + doc.div(id='subject', className='center').text(displaySubject) + with doc.div(id='lessonTitle', className='center'): + doc.a(href='./index.html').text(lesson.lesson_title) + doc.div(id='lessonDesc', className='center').text(lesson.summary) + with doc.div(id='teachersNoteBtn', className='button'): + with doc.a(href='./kDoc.html?back=start.html&doc=teachersNote'): + doc.div().text(u'Teacher\'s Note') + doc.div().text(u'पाठविवरण') + with doc.div(id='bottom'): + doc.div(id='logo', title=u'साझा शिक्षा ई-पाटी द्वारा निर्मित') + doc.div(id='logoHelp') + return doc + +def index_html_header(doc, karma, dir, body, titles): + def create_title(text): + def img(name): + return doc.img(src=karma.image(name).relative_path(dir, web=True), + width=33, height=75, align='absmiddle') + + with doc.div(className='lesson_title'): + img('title_block_lt') + doc.text(text) + img('title_block_rt') + + with doc.div(id='header'): + with doc.div(id='topbtn_left'): + doc.div(id='linkBackLesson', title='Back', className='linkBack') + for title in titles: + create_title(title) + with doc.div(className='topbtn_right'): + doc.div(title='Help', id='linkHelp') + with doc.div(className='topbtn_right'): + doc.div(id='linkOle', title=u'साझा शिक्षा ई-पाटी द्वारा निर्मित') + + +def index_html_footer(doc, subject, body, config): + with doc.div(id='footer'): + if config['link_next']: + doc.div(title='Next', id='linkNextLesson', className='linkNext') + if config['link_previous']: + doc.div(title='Previous', id='linkPrevLesson', className='linkBack') + if config['scoreboard']: + doc.div(id='score_box', display='none') + + with doc.div(className='botbtn_right'): + if subject == 'English': + doc.div(title='Play Again', id='linkPlayAgain', className='english').text('Play Again') + else: + doc.div(title='Play Again', id='linkPlayAgain', className='nepali').text(u'फेरी खेलौँ') + + if config['link_check_answer']: + with doc.div(className='botbtn_right'): + doc.div(title='Check Answer', id='linkCheck') + + if config['audio_buttons']: + with doc.div(className='botbtn_right'): + doc.div(id='linkPlayAudio', className='english audioButton').text('Play') + with doc.div(className='botbtn_right'): + doc.div(id='linkPlayRecordedAudio', className='english audioButton').text('Play') + with doc.div(className='botbtn_right'): + doc.div(id='linkRecordAudio', className='english audioButton').text('Record') + + +def index_html(lesson, warning_text_lines): + karma = lesson.karma + doc = html.HtmlDocument() + for line in warning_text_lines: + doc.comment(string.replace(line, '--', '__')) + with doc.html(): + with doc.head(): + doc.title().text(lesson.title) + doc.meta_utf8() + for file in lesson.css_files: + doc.css(file.relative_path(None, web=True)) + doc.favicon(karma.image('favicon').relative_path(None, web=True)) + for file in lesson.all_java_script_files(): + doc.java_script(file.relative_path(None, web=True)) + with doc.body() as body: + titles = [lesson.lesson_title] + if lesson.subject() == 'Maths' and lesson.lesson_title != lesson.start_title: + titles.append(lesson.start_title) + index_html_header(doc, karma, lesson.directory, body, titles) + body.children.extend(lesson.divs) + index_html_footer(doc, lesson.subject(), body, + lesson.footer_configuration) + return doc + +def kdoc_html(lesson): + karma = lesson.karma + subject = unicode(lesson.subject()) + title = unicode(lesson.title) + doc = html.HtmlDocument() + with doc.html(): + with doc.head(): + doc.title().text('Lesson Plan for {0} {1}'.format(subject,title)) + doc.meta_utf8() + doc.favicon(karma.image('favicon').relative_path(None, web=True)) + for css in ['karma', 'ui.kHeader', 'kDoc']: + doc.css(karma.css(css).relative_path(None, web=True)) + for js in ['jquery', 'jquery-ui', 'karma', 'ui.kHeader', 'kDoc']: + doc.java_script(karma.java_script(js).relative_path(None, web=True)) + with doc.body(id='kDoc'): + doc.div(id='kHeader') + with doc.div(id='kHelp', title='Help'): + doc.text(u'पाठविवरणर पाठयोजना सहज तरिकाले पढ्न तपाईले निम्न कार्य गर्न सक्नु हुन्छ ।') + doc.br() + doc.text(u'पाठ पृष्टको दाईने तर्फको ठाडो रेखा तल माथि गर्दा') + doc.br() + doc.text(u'तपाईले हाल पढिरहेको पृष्टलाई आवश्यकता अनुसार तल माथि गर्न सक्नुहुन्छ') + doc.iframe(id='iframeLessonPlan', src='') + return doc |