summaryrefslogtreecommitdiff
path: root/addons/website_slides_survey/views
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
commit3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch)
treea44932296ef4a9b71d5f010906253d8c53727726 /addons/website_slides_survey/views
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/website_slides_survey/views')
-rw-r--r--addons/website_slides_survey/views/assets.xml15
-rw-r--r--addons/website_slides_survey/views/slide_channel_views.xml36
-rw-r--r--addons/website_slides_survey/views/slide_slide_views.xml29
-rw-r--r--addons/website_slides_survey/views/survey_survey_views.xml46
-rw-r--r--addons/website_slides_survey/views/survey_templates.xml22
-rw-r--r--addons/website_slides_survey/views/website_profile.xml95
-rw-r--r--addons/website_slides_survey/views/website_slides_menu_views.xml14
-rw-r--r--addons/website_slides_survey/views/website_slides_templates_course.xml42
-rw-r--r--addons/website_slides_survey/views/website_slides_templates_homepage.xml21
-rw-r--r--addons/website_slides_survey/views/website_slides_templates_lesson.xml23
-rw-r--r--addons/website_slides_survey/views/website_slides_templates_lesson_fullscreen.xml11
11 files changed, 354 insertions, 0 deletions
diff --git a/addons/website_slides_survey/views/assets.xml b/addons/website_slides_survey/views/assets.xml
new file mode 100644
index 00000000..5b8fd3a0
--- /dev/null
+++ b/addons/website_slides_survey/views/assets.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" ?>
+<odoo>
+ <data>
+ <template id="assets_frontend" inherit_id="website.assets_frontend" name="Slides Certification">
+ <xpath expr="//link[last()]" position="after">
+ <link rel="stylesheet" type="text/scss" href="/website_slides_survey/static/src/scss/website_slides_survey.scss"/>
+ </xpath>
+ <xpath expr="//script[last()]" position="after">
+ <script type="text/javascript" src="/website_slides_survey/static/src/js/slides_upload.js"/>
+ <script type="text/javascript" src="/website_slides_survey/static/src/js/slides_course_fullscreen_player.js"/>
+ <script type="text/javascript" src="/website_slides_survey/static/src/js/slides_certification_upload_toast.js"/>
+ </xpath>
+ </template>
+ </data>
+</odoo>
diff --git a/addons/website_slides_survey/views/slide_channel_views.xml b/addons/website_slides_survey/views/slide_channel_views.xml
new file mode 100644
index 00000000..6baaef01
--- /dev/null
+++ b/addons/website_slides_survey/views/slide_channel_views.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <record id="slide_channel_view_form" model="ir.ui.view">
+ <field name="name">slide.channel.view.form.inherit.survey</field>
+ <field name="model">slide.channel</field>
+ <field name="inherit_id" ref="website_slides.view_slide_channel_form"/>
+ <field name="arch" type="xml">
+ <xpath expr="//span[@name='members_done_count_label']" position="replace">
+ <field name="nbr_certification" invisible="1"/>
+ <span class="o_stat_text" attrs="{'invisible': [('nbr_certification', '>', 0)]}">Finished</span>
+ <span class="o_stat_text" attrs="{'invisible': [('nbr_certification', '=', 0)]}">Certified</span>
+ </xpath>
+ <xpath expr="//field[@name='slide_type']" position="after">
+ <field name="survey_id"/>
+ </xpath>
+ <xpath expr="//create[@name='add_slide_lesson']" position="after">
+ <create name="add_slide_certificate" string="Add Certification" groups="survey.group_survey_user" context="{'default_slide_type': 'certification'}"/>
+ </xpath>
+ </field>
+ </record>
+
+ <record id="slide_channel_view_kanban" model="ir.ui.view">
+ <field name="name">slide.channel.view.kanban.inherit.survey</field>
+ <field name="model">slide.channel</field>
+ <field name="inherit_id" ref="website_slides.slide_channel_view_kanban"/>
+ <field name="arch" type="xml">
+ <xpath expr="//field[@name='website_published']" position="after">
+ <field name="nbr_certification"/>
+ </xpath>
+ <xpath expr="//span[@name='done_members_count_label']" position="replace">
+ <t t-if="record.nbr_certification.raw_value"><span class="text-muted">Certified</span></t>
+ <t t-else=""><span class="text-muted">Finished</span></t>
+ </xpath>
+ </field>
+ </record>
+</odoo>
diff --git a/addons/website_slides_survey/views/slide_slide_views.xml b/addons/website_slides_survey/views/slide_slide_views.xml
new file mode 100644
index 00000000..483d0030
--- /dev/null
+++ b/addons/website_slides_survey/views/slide_slide_views.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <record id="slide_slide_view_form" model="ir.ui.view">
+ <field name="name">slide.slide.view.form.inherit.survey</field>
+ <field name="model">slide.slide</field>
+ <field name="inherit_id" ref="website_slides.view_slide_slide_form"/>
+ <field name="arch" type="xml">
+ <xpath expr="//field[@name='slide_type']" position="after">
+ <field name="survey_id"
+ attrs="{'invisible': [('slide_type', '!=', 'certification')], 'required': [('slide_type', '=', 'certification')]}"
+ domain="[('certification', '=', True)]"/>
+ </xpath>
+ </field>
+ </record>
+
+ <record id="slide_slide_action_certification" model="ir.actions.act_window">
+ <field name="name">Certifications</field>
+ <field name="res_model">slide.slide</field>
+ <field name="view_mode">tree,form,graph</field>
+ <field name="domain">[('slide_type', '=', 'certification')]</field>
+ <field name="context">{'default_slide_type': 'certification'}</field>
+ <field name="help" type="html">
+ <p class="o_view_nocontent_smiling_face">
+ Add a new certification
+ </p>
+ </field>
+ <field name="view_id" ref="website_slides.view_slide_slide_tree"/>
+ </record>
+</odoo>
diff --git a/addons/website_slides_survey/views/survey_survey_views.xml b/addons/website_slides_survey/views/survey_survey_views.xml
new file mode 100644
index 00000000..afabb660
--- /dev/null
+++ b/addons/website_slides_survey/views/survey_survey_views.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <record id="survey_survey_action_slides" model="ir.actions.act_window">
+ <field name="name">Certifications</field>
+ <field name="res_model">survey.survey</field>
+ <field name="view_mode">kanban,tree,form</field>
+ <field name="domain">[('certification', '=', True)]</field>
+ <field name="context">{'default_certification': True, 'default_scoring_type': 'scoring_with_answers'}</field>
+ <field name="help" type="html">
+ <p class="o_view_nocontent_smiling_face">
+ Add a new certification
+ </p>
+ </field>
+ </record>
+
+ <record id="survey_survey_action_slides_report" model="ir.actions.act_window">
+ <field name="name">Certifications</field>
+ <field name="res_model">survey.survey</field>
+ <field name="view_mode">tree,kanban,form,graph</field>
+ <field name="domain">[('certification', '=', True)]</field>
+ <field name="context">{'default_certification': True, 'default_scoring_type': 'scoring_with_answers'}</field>
+ <field name="help" type="html">
+ <p class="o_view_nocontent_smiling_face">
+ Add a new certification
+ </p>
+ </field>
+ </record>
+
+ <record id="survey_survey_view_form" model="ir.ui.view">
+ <field name="name">survey.survey.view.form.inherit.website_slides</field>
+ <field name="model">survey.survey</field>
+ <field name="inherit_id" ref="survey.survey_form"/>
+ <field name="arch" type="xml">
+ <xpath expr="//button[@name='action_survey_user_input_certified']" position="before">
+ <button name="action_survey_view_slide_channels"
+ type="object"
+ class="oe_stat_button"
+ attrs="{'invisible': [('slide_channel_count', '=', 0)]}"
+ icon="fa-graduation-cap"
+ groups="website_slides.group_website_slides_officer">
+ <field string="Courses" name="slide_channel_count" widget="statinfo"/>
+ </button>
+ </xpath>
+ </field>
+ </record>
+</odoo>
diff --git a/addons/website_slides_survey/views/survey_templates.xml b/addons/website_slides_survey/views/survey_templates.xml
new file mode 100644
index 00000000..b495ac60
--- /dev/null
+++ b/addons/website_slides_survey/views/survey_templates.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <data>
+ <template id="survey_fill_form_done_inherit_website_slides" inherit_id="survey.survey_fill_form_done">
+ <xpath expr="//div[hasclass('o_survey_finished')]/div[last()]" position="after">
+ <div t-if="channel_url" class="mt16">
+ <a role="button"
+ class="btn btn-primary btn-lg"
+ t-att-href="channel_url">
+ Go back to course
+ </a>
+ </div>
+ </xpath>
+ </template>
+
+ <template id="o_wss_certification_icon">
+ <t t-set="icon_url" t-value="icon_url if icon_url else '/website_slides_survey/static/src/img/certification.svg'"/>
+ <t t-set="icon_classes" t-value="icon_classes if icon_classes else 'o_wss_certification_icon'"/>
+ <img t-att-class="icon_classes" t-att-src="icon_url" alt="Certification icon"/>
+ </template>
+ </data>
+</odoo>
diff --git a/addons/website_slides_survey/views/website_profile.xml b/addons/website_slides_survey/views/website_profile.xml
new file mode 100644
index 00000000..8d52bb0f
--- /dev/null
+++ b/addons/website_slides_survey/views/website_profile.xml
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo><data>
+ <template id="user_profile_content" inherit_id="website_profile.user_profile_content">
+ <xpath expr="//div[@id='profile_about_badge']" position="before">
+ <t t-if="channel">
+ <div class="mb32">
+ <h5 class="border-bottom pb-1">Certifications</h5>
+ <t t-call="website_slides_survey.display_certificate"/>
+ </div>
+ </t>
+ </xpath>
+ </template>
+
+ <template id="display_certificate">
+ <t t-if="certificates">
+ <div class="row">
+ <div class="col-12 col-lg-6" t-foreach="certificates" t-as="certificate">
+ <div class="card mb-2">
+ <div class="card-body o_wprofile_slides_course_card_body p-0 d-flex" t-attf-onclick="location.href='/slides/#{slug(certificate.slide_id.channel_id)}';">
+ <div class="pl-5 pr-4 rounded-left" t-attf-style="background-image: url(#{website.image_url(certificate.slide_id, 'image_128')}); background-position: center"/>
+ <div class="p-2 w-100">
+ <h5 class="mt-0 mb-1" t-esc="certificate.survey_id.title"/>
+ <div t-if="user.id == uid">
+ <small class="font-weight-bold">Score : <span t-esc="certificate.scoring_percentage"/> %</small>
+ <div class="float-right">
+ <a role="button" class="float-right" t-att-href="'/survey/%s/get_certification' % certificate.survey_id.id">
+ <i class="fa fa-download" aria-label="Download certification" title="Download Certification"/>
+ </a>
+ <a role="button" class="mr-2" href="#"
+ t-attf-onclick="event.stopPropagation(); $('#slideChannelShareModal_#{certificate.slide_id.channel_id.id}').modal('show');">
+ <i class="fa fa-share-alt" aria-label="Share" title="Share"/>
+ </a>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <t t-call="website_slides.slide_share_modal">
+ <t t-set="record" t-value="certificate.slide_id.channel_id"/>
+ </t>
+ </div>
+ </div>
+ </t>
+ <t t-else="">
+ <div class="text-muted d-inline-block">No certifications yet!</div>
+ </t>
+ <div class="text-right d-inline-block pull-right">
+ <a href="/slides/all?slide_type=certification" class="btn btn-link btn-sm"><i class="fa fa-arrow-right mr-1"/>All Certifications</a>
+ </div>
+ </template>
+
+ <template id="top3_user_card" inherit_id="website_profile.top3_user_card">
+ <xpath expr="//div[hasclass('o_wprofile_top3_card_footer')]//div[last()]" position="after">
+ <div class="col py-3"><b t-esc="user['certification_count']"/> <span class="text-muted">Certifications</span></div>
+ </xpath>
+ </template>
+
+ <template id="all_user_card" inherit_id="website_profile.all_user_card">
+ <xpath expr="//td[hasclass('all_user_badge_count')]" position="after">
+ <td class="align-middle text-right pr-3 text-nowrap all_user_certification_count">
+ <b t-esc="user['certification_count']"/> <span class="text-muted small font-weight-bold">Certifications</span>
+ </td>
+ </xpath>
+ </template>
+
+ <template id="badge_content" inherit_id="website_profile.badge_content">
+ <xpath expr="//div[@id='website_profile_badges']" position="after">
+ <t t-if="certification_badges">
+ <div class="row">
+ <div class="col-12">
+ <h1 class="mt-4 mt-lg-2">Certification Badges</h1>
+ <p class="lead">
+ You can gain badges by passing certifications. Here is a list of all available certification badges.
+ <br />Follow the links to reach new heights and skill up!
+ </p>
+ <div class="row col-12 align-items-center p-0" t-foreach="certification_badges" t-as="badge">
+ <div class="col-3">
+ <t t-call="website_profile.badge_header">
+ <t t-if="badge.id in certification_badge_urls" t-set="badge_url" t-value="certification_badge_urls[badge.id]"/>
+ </t>
+ </div>
+ <div class="col-6">
+ <span t-field="badge.description"/>
+ </div>
+ <div class="col-3 text-right">
+ <b t-esc="badge.granted_users_count"/>
+ <i class="text-muted"> awarded users</i>
+ </div>
+ </div>
+ </div>
+ </div>
+ </t>
+ </xpath>
+ </template>
+</data></odoo>
diff --git a/addons/website_slides_survey/views/website_slides_menu_views.xml b/addons/website_slides_survey/views/website_slides_menu_views.xml
new file mode 100644
index 00000000..4c3f5113
--- /dev/null
+++ b/addons/website_slides_survey/views/website_slides_menu_views.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <menuitem name="Certifications"
+ id="website_slides_menu_courses_certification"
+ parent="website_slides.website_slides_menu_courses"
+ sequence="3"
+ action="survey_survey_action_slides"/>
+
+ <menuitem name="Certifications"
+ id="website_slides_menu_report_certification"
+ parent="website_slides.website_slides_menu_report"
+ sequence="40"
+ action="survey_survey_action_slides_report"/>
+</odoo>
diff --git a/addons/website_slides_survey/views/website_slides_templates_course.xml b/addons/website_slides_survey/views/website_slides_templates_course.xml
new file mode 100644
index 00000000..a616aee8
--- /dev/null
+++ b/addons/website_slides_survey/views/website_slides_templates_course.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <data>
+ <template id="course_main" inherit_id="website_slides.course_main" name="Certification Course Main">
+ <xpath expr="//div[@id='wrap']" position="attributes">
+ <attribute name="t-attf-class" separator=" " add="#{'o_wss_certification_channel' if channel.nbr_certification > 0 else ''}"/>
+ </xpath>
+
+ <xpath expr="//div[@id='courseMainTabContent']//div[@id='home']/t" position="before">
+ <t t-set="first_slide" t-value="channel.slide_content_ids[0] if len(channel.slide_content_ids) > 0 else None"/>
+ <div t-if="channel.nbr_certification > 0 and channel.is_member and channel.completion == 0" class="alert alert-success d-flex align-items-center justify-content-between flex-wrap">
+ <div>Begin your <b>certification</b> today!</div>
+
+ <a t-attf-href="#{'/slides_survey/slide/get_certification_url?slide_id=%s' %(first_slide.id) if first_slide.slide_type == 'certification' and channel.total_slides == 1 else '/slides/slide/%s?fullscreen=1' %(slug(first_slide))}" class="btn btn-success mt-2 mt-sm-0">
+ <span>Start Now</span><i class="fa fa-chevron-right ml-2 align-middle"/>
+ </a>
+ </div>
+ </xpath>
+ </template>
+
+ <template id="slide_icon_inherit_survey" inherit_id="website_slides.slide_icon">
+ <xpath expr="//i[last()]" position="after">
+ <i t-if="slide.slide_type == 'certification'" t-att-class="'fa fa-trophy %s' % icon_class"></i>
+ </xpath>
+ </template>
+
+ <template id="course_slides_list_slide_inherit_survey" inherit_id="website_slides.course_slides_list_slide">
+ <xpath expr="//a[hasclass('o_wslides_js_slides_list_slide_link')]" position="attributes">
+ <attribute name="t-attf-href">#{'/slides_survey/slide/get_certification_url?slide_id=%s' %(slide.id) if slide.slide_type == 'certification' and slide.channel_id.total_slides == 1 else '/slides/slide/%s' %(slug(slide))}</attribute>
+ </xpath>
+ <xpath expr="//a[@name='o_wslides_list_slide_add_quizz']" position="attributes">
+ <attribute name="t-if">channel.can_upload and not slide.question_ids and slide.slide_type != 'certification'</attribute>
+ </xpath>
+ </template>
+
+ <template id="course_slides_list_inherit_survey" inherit_id="website_slides.course_slides_list">
+ <xpath expr="//div[hasclass('o_wslides_content_actions')]" position="inside">
+ <div class="o_wslides_survey_certification_upload_toast"/>
+ </xpath>
+ </template>
+ </data>
+</odoo>
diff --git a/addons/website_slides_survey/views/website_slides_templates_homepage.xml b/addons/website_slides_survey/views/website_slides_templates_homepage.xml
new file mode 100644
index 00000000..eaa17833
--- /dev/null
+++ b/addons/website_slides_survey/views/website_slides_templates_homepage.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <data>
+ <template id="courses_home_inherit_survey" inherit_id="website_slides.courses_home">
+ <xpath expr="//a[hasclass('o_wslides_home_all_slides')]" position="after">
+ <a class="nav-link nav-link d-flex" href="/slides/all?slide_type=certification">
+ <t t-call="website_slides_survey.o_wss_certification_icon"/>
+ <span class="ml-1">Certifications</span>
+ </a>
+ </xpath>
+ </template>
+
+ <template id="course_card_inherit_survey" inherit_id="website_slides.course_card">
+ <xpath expr="//div/div" position="after">
+ <div t-if="channel.nbr_certification > 0" class="position-absolute py-1 px-2 h5" style="right:0; top:0">
+ <t t-call="website_slides_survey.o_wss_certification_icon"/>
+ </div>
+ </xpath>
+ </template>
+ </data>
+</odoo>
diff --git a/addons/website_slides_survey/views/website_slides_templates_lesson.xml b/addons/website_slides_survey/views/website_slides_templates_lesson.xml
new file mode 100644
index 00000000..9056d943
--- /dev/null
+++ b/addons/website_slides_survey/views/website_slides_templates_lesson.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+ <data>
+ <template id="slide_content_detailed" inherit_id="website_slides.slide_content_detailed">
+ <xpath expr="//div[hasclass('o_wslides_lesson_content_type')]" position="inside">
+ <div t-if="slide.slide_type == 'certification' and not channel_progress[slide.id].get('completed')" class="col mt32 mb8 d-flex justify-content-center">
+ <a role="button"
+ class="btn btn-primary btn-lg"
+ t-att-href="'/slides_survey/slide/get_certification_url?slide_id=%s' %(slide.id)">
+ <i class="fa fa-fw fa-graduation-cap" role="img"/>
+ <t t-if="slide.channel_id.is_member and slide.channel_id.active">Begin Certification</t>
+ <t t-else="">Test Certification</t>
+ </a>
+ </div>
+ <div t-if="slide.slide_type == 'certification' and channel_progress[slide.id].get('completed')" class="col mt32 mb8 d-flex justify-content-center">
+ <a role="button" class="btn btn-primary btn-lg" t-att-href="'/survey/%s/get_certification' % slide.survey_id.id">
+ <i class="fa fa-fw fa-trophy" role="img" aria-label="Download certification" title="Download certification"/> Download certification
+ </a>
+ </div>
+ </xpath>
+ </template>
+ </data>
+</odoo>
diff --git a/addons/website_slides_survey/views/website_slides_templates_lesson_fullscreen.xml b/addons/website_slides_survey/views/website_slides_templates_lesson_fullscreen.xml
new file mode 100644
index 00000000..feada894
--- /dev/null
+++ b/addons/website_slides_survey/views/website_slides_templates_lesson_fullscreen.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo><data>
+
+ <template id="slide_fullscreen_sidebar_category" inherit_id="website_slides.slide_fullscreen_sidebar_category">
+ <xpath expr="//li[@t-att-data-id='slide.id']" position="attributes">
+ <attribute name="t-att-data-certification-id">slide.survey_id.id</attribute>
+ <attribute name="t-att-data-is-member">slide.channel_id.is_member</attribute>
+ </xpath>
+ </template>
+
+</data></odoo>