Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
aa.gusti
/
odoo-dev
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 80c9d109
authored
Dec 11, 2022
by
aagusti
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
to public
1 parent
42bb1a75
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
40 additions
and
10 deletions
exam_test_quiz/__manifest__.py
exam_test_quiz/controllers/main.py
exam_test_quiz/models/etq_exam.py
exam_test_quiz/security/ir.model.access.csv
exam_test_quiz/views/exam_templates.xml
exam_test_quiz/__manifest__.py
View file @
80c9d10
...
...
@@ -21,7 +21,7 @@
'images'
:
[
'static/description/2.jpg'
,
],
'depends'
:
[
'website'
,
'mail'
],
'depends'
:
[
'website'
,
'mail'
,
'portal'
],
'installable'
:
True
,
'application'
:
True
,
}
exam_test_quiz/controllers/main.py
View file @
80c9d10
import
logging
import
odoo.http
as
http
from
odoo
import
http
import
random
import
uuid
from
odoo.http
import
request
...
...
@@ -9,6 +9,12 @@ _logger = logging.getLogger(__name__)
class
MyController
(
http
.
Controller
):
@http.route
(
'/exam/title'
,
type
=
"http"
,
auth
=
"public"
,
website
=
True
)
def
title_exam
(
self
,
**
kwargs
):
exams
=
\
http
.
request
.
env
[
'etq.exam'
]
.
sudo
()
.
search
(
[(
'active'
,
'='
,
True
)])
return
request
.
render
(
'exam_test_quiz.exam_title'
,
{
'exams'
:
exams
})
@http.route
(
'/exam/<exam_slug>'
,
type
=
"http"
,
auth
=
"public"
,
website
=
True
)
def
take_exam
(
self
,
exam_slug
):
...
...
exam_test_quiz/models/etq_exam.py
View file @
80c9d10
...
...
@@ -18,6 +18,7 @@ class EtqExam(models.Model):
_name
=
"etq.exam"
_description
=
"etq.exam"
name
=
fields
.
Char
(
string
=
"Name"
,
translate
=
True
)
active
=
fields
.
Boolean
(
string
=
"Active"
,
default
=
True
,
required
=
True
)
slug
=
fields
.
Char
(
string
=
"Slug"
,
compute
=
"slug_me"
,
store
=
"True"
)
show_correct_questions
=
fields
.
Boolean
(
string
=
"Show Correct Answers?"
)
questions
=
fields
.
One2many
(
'etq.question'
,
'exam_id'
,
string
=
"Questions"
)
...
...
exam_test_quiz/security/ir.model.access.csv
View file @
80c9d10
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
"access_etq_exam","access etq.exam","model_etq_exam","base.group_p
ublic
",1,0,0,0
"access_etq_question","access etq.question","model_etq_question","base.group_p
ublic
",1,0,0,0
"access_etq_question_option","access etq.question.option","model_etq_question_option","base.group_p
ublic
",1,0,0,0
"access_etq_question_option_blank","access etq.question.optionblank","model_etq_question_optionblank","base.group_p
ublic
",1,0,0,0
"access_etq_result","access etq.result","model_etq_result","base.group_p
ublic
",1,1,0,0
"access_etq_result_question","access etq.result.question","model_etq_result_question","base.group_p
ublic
",1,1,0,0
"access_etq_result_question_option","access etq.result.question.option","model_etq_result_question_option","base.group_p
ublic
",1,1,0,0
"access_etq_exam","access etq.exam","model_etq_exam","base.group_p
ortal
",1,0,0,0
"access_etq_question","access etq.question","model_etq_question","base.group_p
ortal
",1,0,0,0
"access_etq_question_option","access etq.question.option","model_etq_question_option","base.group_p
ortal
",1,0,0,0
"access_etq_question_option_blank","access etq.question.optionblank","model_etq_question_optionblank","base.group_p
ortal
",1,0,0,0
"access_etq_result","access etq.result","model_etq_result","base.group_p
ortal
",1,1,0,0
"access_etq_result_question","access etq.result.question","model_etq_result_question","base.group_p
ortal
",1,1,0,0
"access_etq_result_question_option","access etq.result.question.option","model_etq_result_question_option","base.group_p
ortal
",1,1,0,0
"access_etq_exam_group_examp_admin","access_group_examp_admin etq.exam","model_etq_exam","group_examp_admin",1,1,1,1
"access_etq_question_group_examp_admin","access_group_examp_admin etq.question","model_etq_question","group_examp_admin",1,1,1,1
...
...
exam_test_quiz/views/exam_templates.xml
View file @
80c9d10
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<template
id=
"portal_my_home_exam"
name=
"Portal layout : Exam menu entries"
inherit_id=
"portal.portal_breadcrumbs"
priority=
"95"
>
<xpath
expr=
"//ol[hasclass('o_portal_submenu')]"
position=
"inside"
>
<li>
<a
href=
"/exam/title"
>
Exam
</a>
</li>
</xpath>
</template>
<template
id=
"exam_title"
name=
"Exam / Test / Quiz Titles"
>
<t
t-call=
"website.layout"
>
<t
t-foreach=
"exams"
t-as=
"exam"
>
<div
class=
"mt16 mb16"
>
<h1
class=
"text-center"
>
<t
t-esc=
"exam.name"
/>
</h1>
<h3
class=
"text-center"
>
<a
t-attf-href=
"/exam/#{exam.slug}"
>
Mulai
</a>
</h3>
</div>
</t>
</t>
</template>
<template
id=
"exam_question_page"
name=
"Exam / Test / Quiz Questions"
>
<t
t-call=
"website.layout"
>
<form
action=
"/exam/results"
method=
"post"
class=
"form-horizontal mt32"
enctype=
"multipart/form-data"
>
...
...
@@ -19,7 +43,6 @@
<t
t-set=
"question_index"
t-value=
"question_index+1"
/>
<div
class=
"form-group"
>
<div>
<t
t-if=
"question.question_type == 'multi_choice'"
>
<h2>
<t
t-esc=
"question_index"
/>
)
...
...
Write
Preview
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment