@ -0,0 +1,20 @@ | 
				
			|||
Odoo Games - Sudoku v10 | 
				
			|||
======================= | 
				
			|||
    The classic Sudoku game involves a grid of 81 squares. The grid is divided into nine blocks, | 
				
			|||
each containing nine squares. | 
				
			|||
    The rules of the game are simple: | 
				
			|||
Each of the nine blocks has to contain all the numbers 1-9 within its squares. Each number can | 
				
			|||
only appear once in a row, column or box. | 
				
			|||
              You can select the squares by clicking. Enter the numbers. | 
				
			|||
 | 
				
			|||
Space button is use to erase the entry. | 
				
			|||
 | 
				
			|||
Features | 
				
			|||
======== | 
				
			|||
 | 
				
			|||
* We can play SUDOKU Game. | 
				
			|||
* Play only By the approval of HR Manager. | 
				
			|||
 | 
				
			|||
Credits | 
				
			|||
======= | 
				
			|||
Nikhil Krishnan @ cybrosys, nikhil@cybrosys.in | 
				
			|||
@ -0,0 +1,25 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
 | 
				
			|||
############################################################################## | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
#    Copyright (C) 2017-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | 
				
			|||
#    Author: Nikhil krishnan(<https://www.cybrosys.com>) | 
				
			|||
#    you can modify it under the terms of the GNU LESSER | 
				
			|||
#    GENERAL PUBLIC LICENSE (LGPL v3), Version 3. | 
				
			|||
# | 
				
			|||
#    It is forbidden to publish, distribute, sublicense, or sell copies | 
				
			|||
#    of the Software or modified copies of the Software. | 
				
			|||
# | 
				
			|||
#    This program is distributed in the hope that it will be useful, | 
				
			|||
#    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
				
			|||
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
				
			|||
#    GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | 
				
			|||
# | 
				
			|||
#    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | 
				
			|||
#    GENERAL PUBLIC LICENSE (LGPL v3) along with this program. | 
				
			|||
#    If not, see <http://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
############################################################################## | 
				
			|||
 | 
				
			|||
import models | 
				
			|||
@ -0,0 +1,52 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
 | 
				
			|||
############################################################################## | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
#    Copyright (C) 2017-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | 
				
			|||
#    Author: Nikhil krishnan(<https://www.cybrosys.com>) | 
				
			|||
#    you can modify it under the terms of the GNU LESSER | 
				
			|||
#    GENERAL PUBLIC LICENSE (LGPL v3), Version 3. | 
				
			|||
# | 
				
			|||
#    It is forbidden to publish, distribute, sublicense, or sell copies | 
				
			|||
#    of the Software or modified copies of the Software. | 
				
			|||
# | 
				
			|||
#    This program is distributed in the hope that it will be useful, | 
				
			|||
#    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
				
			|||
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
				
			|||
#    GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | 
				
			|||
# | 
				
			|||
#    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | 
				
			|||
#    GENERAL PUBLIC LICENSE (LGPL v3) along with this program. | 
				
			|||
#    If not, see <http://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
############################################################################## | 
				
			|||
 | 
				
			|||
{ | 
				
			|||
    'name': 'Odoo Games - Sudoku', | 
				
			|||
    'version': '10.0.1.0.0', | 
				
			|||
    'summary': """Sudoku Game.""", | 
				
			|||
    'description': """We can play SUDOKU.""", | 
				
			|||
    'author': 'Cybrosys Techno Solutions', | 
				
			|||
    'company': 'Cybrosys Techno Solutions', | 
				
			|||
    'website': 'http://www.cybrosys.com', | 
				
			|||
    'category': '', | 
				
			|||
    'depends': ['base', 'hr'], | 
				
			|||
    'license': 'LGPL-3', | 
				
			|||
    'data': [ | 
				
			|||
        'security/security_data.xml', | 
				
			|||
        'security/ir.model.access.csv', | 
				
			|||
        'views/game_approve_sequence.xml', | 
				
			|||
        'views/game_template.xml', | 
				
			|||
        'views/main_menu.xml', | 
				
			|||
        'views/sudoku_menu.xml', | 
				
			|||
    ], | 
				
			|||
    'demo': [], | 
				
			|||
    'qweb': [ | 
				
			|||
        "static/src/xml/sudoku.xml", | 
				
			|||
        "static/src/xml/game.xml", | 
				
			|||
    ], | 
				
			|||
    'images': ['static/description/banner.jpg'], | 
				
			|||
    'installable': True, | 
				
			|||
    'auto_install': False, | 
				
			|||
} | 
				
			|||
@ -0,0 +1,26 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
 | 
				
			|||
############################################################################## | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
#    Copyright (C) 2017-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | 
				
			|||
#    Author: Nikhil krishnan(<https://www.cybrosys.com>) | 
				
			|||
#    you can modify it under the terms of the GNU LESSER | 
				
			|||
#    GENERAL PUBLIC LICENSE (LGPL v3), Version 3. | 
				
			|||
# | 
				
			|||
#    It is forbidden to publish, distribute, sublicense, or sell copies | 
				
			|||
#    of the Software or modified copies of the Software. | 
				
			|||
# | 
				
			|||
#    This program is distributed in the hope that it will be useful, | 
				
			|||
#    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
				
			|||
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
				
			|||
#    GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | 
				
			|||
# | 
				
			|||
#    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | 
				
			|||
#    GENERAL PUBLIC LICENSE (LGPL v3) along with this program. | 
				
			|||
#    If not, see <http://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
############################################################################## | 
				
			|||
 | 
				
			|||
import game | 
				
			|||
 | 
				
			|||
@ -0,0 +1,81 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
 | 
				
			|||
############################################################################## | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
#    Copyright (C) 2017-TODAY Cybrosys Technologies(<http://www.cybrosys.com>). | 
				
			|||
#    Author: Nikhil krishnan(<http://www.cybrosys.com>) | 
				
			|||
#    you can modify it under the terms of the GNU LESSER | 
				
			|||
#    GENERAL PUBLIC LICENSE (LGPL v3), Version 3. | 
				
			|||
# | 
				
			|||
#    It is forbidden to publish, distribute, sublicense, or sell copies | 
				
			|||
#    of the Software or modified copies of the Software. | 
				
			|||
# | 
				
			|||
#    This program is distributed in the hope that it will be useful, | 
				
			|||
#    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
				
			|||
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
				
			|||
#    GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | 
				
			|||
# | 
				
			|||
#    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | 
				
			|||
#    GENERAL PUBLIC LICENSE (LGPL v3) along with this program. | 
				
			|||
#    If not, see <http://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
############################################################################## | 
				
			|||
 | 
				
			|||
from datetime import datetime | 
				
			|||
from odoo import models, fields, api | 
				
			|||
 | 
				
			|||
 | 
				
			|||
class EntertainmentGames(models.Model): | 
				
			|||
    _name = 'employee.game.approve' | 
				
			|||
    _inherit = ['ir.needaction_mixin'] | 
				
			|||
    _order = 'sequence desc' | 
				
			|||
 | 
				
			|||
    name = fields.Char(string='Name', related='employee_id.name') | 
				
			|||
    approve_datetime = fields.Datetime(string='Datetime', readonly=1) | 
				
			|||
    employee_id = fields.Many2one('hr.employee', string='Employee', required=True) | 
				
			|||
    user_id = fields.Many2one('res.users', string='User') | 
				
			|||
    department_id = fields.Many2one('hr.department', string='Department', related='employee_id.department_id') | 
				
			|||
    game_user = fields.Boolean(string='Is Game User') | 
				
			|||
    state = fields.Selection([ | 
				
			|||
        ('draft', 'Requested'), | 
				
			|||
        ('approve', 'Approved'), | 
				
			|||
        ('cancel', 'Cancelled'), | 
				
			|||
    ], string='Status', readonly=True, copy=False, default='draft') | 
				
			|||
    sequence = fields.Integer('Sequence') | 
				
			|||
 | 
				
			|||
    @api.model | 
				
			|||
    def _needaction_domain_get(self): | 
				
			|||
        return [('state', '=', 'draft')] | 
				
			|||
 | 
				
			|||
    def create_employee_game_approve(self, empl_id, user): | 
				
			|||
        rec = self.search([('employee_id', '=', empl_id)]) | 
				
			|||
        if rec: | 
				
			|||
            seq = self.env['ir.sequence'].next_by_code('employee.game') | 
				
			|||
            rec.write({'sequence': seq, 'state': 'draft', 'approve_datetime': datetime.now()}) | 
				
			|||
        else: | 
				
			|||
            vals = { | 
				
			|||
                'employee_id': empl_id, | 
				
			|||
                'user_id': user, | 
				
			|||
                'approve_datetime': datetime.now(), | 
				
			|||
                'sequence': self.env['ir.sequence'].next_by_code('employee.game') | 
				
			|||
            } | 
				
			|||
            self.create(vals) | 
				
			|||
 | 
				
			|||
    def approve(self): | 
				
			|||
        group_game_approve = self.env.ref('game_sudoku.odoo_gamer_group', False) | 
				
			|||
        group_game_approve.write({'users': [(4, self.user_id.id)]}) | 
				
			|||
 | 
				
			|||
        group_game_req = self.env.ref('game_sudoku.odoo_gamer_approve_req', False) | 
				
			|||
        group_game_req.write({'users': [(3, self.user_id.id)]}) | 
				
			|||
 | 
				
			|||
        return self.write({'game_user': True, 'state': 'approve'}) | 
				
			|||
 | 
				
			|||
    def cancel(self): | 
				
			|||
        group_game_approve = self.env.ref('game_sudoku.odoo_gamer_group', False) | 
				
			|||
        group_game_approve.write({'users': [(3, self.user_id.id)]}) | 
				
			|||
 | 
				
			|||
        group_game_req = self.env.ref('game_sudoku.odoo_gamer_approve_req', False) | 
				
			|||
        group_game_req.write({'users': [(4, self.user_id.id)]}) | 
				
			|||
 | 
				
			|||
        return self.write({'game_user': False, 'state': 'cancel'}) | 
				
			|||
		
		
			
  | 
@ -0,0 +1,26 @@ | 
				
			|||
<?xml version="1.0" encoding="utf-8"?> | 
				
			|||
<odoo> | 
				
			|||
    <data noupdate="1"> | 
				
			|||
        <record model="ir.module.category" id="module_category_game"> | 
				
			|||
            <field name="name">Game</field> | 
				
			|||
            <field name="sequence">10</field> | 
				
			|||
            <field name="visible" eval="False" /> | 
				
			|||
        </record> | 
				
			|||
 | 
				
			|||
        <record id="odoo_gamer_group" model="res.groups"> | 
				
			|||
            <field name="name">Odoo Gamer</field> | 
				
			|||
            <field name="category_id" ref="game_sudoku.module_category_game"/> | 
				
			|||
        </record> | 
				
			|||
 | 
				
			|||
        <record id="odoo_gamer_approve_req" model="res.groups"> | 
				
			|||
            <field name="name">Odoo Game Request</field> | 
				
			|||
            <field name="category_id" ref="game_sudoku.module_category_game"/> | 
				
			|||
            <field name="implied_ids" eval="[(4, ref('base.group_user'))]"/> | 
				
			|||
            <field name="users" eval="[(4, ref('base.user_root'))]"/> | 
				
			|||
        </record> | 
				
			|||
 | 
				
			|||
        <record id="base.default_user" model="res.users"> | 
				
			|||
            <field name="groups_id" eval="[(4,ref('game_sudoku.odoo_gamer_approve_req')),(4,ref('base.group_partner_manager'))]"/> | 
				
			|||
        </record> | 
				
			|||
    </data> | 
				
			|||
</odoo> | 
				
			|||
| 
		 After Width: | Height: | Size: 49 KiB  | 
| 
		 After Width: | Height: | Size: 30 KiB  | 
| 
		 After Width: | Height: | Size: 34 KiB  | 
| 
		 After Width: | Height: | Size: 130 KiB  | 
| 
		 After Width: | Height: | Size: 38 KiB  | 
| 
		 After Width: | Height: | Size: 103 KiB  | 
| 
		 After Width: | Height: | Size: 54 KiB  | 
| 
		 After Width: | Height: | Size: 50 KiB  | 
| 
		 After Width: | Height: | Size: 13 KiB  | 
@ -0,0 +1,192 @@ | 
				
			|||
    <section class="oe_container"> | 
				
			|||
        <div class="oe_row oe_spaced"> | 
				
			|||
            <h2 class="oe_slogan">Odoo Games - Sudoku</h2> | 
				
			|||
            <h3 class="oe_slogan">Brain-Teaser game.!!</h3> | 
				
			|||
            <h4 class="oe_slogan"><a href="https://www.cybrosys.com">Cybrosys Technologies</a> </h4> | 
				
			|||
            <div> | 
				
			|||
                <h4><p>Features:</p></h4> | 
				
			|||
                <ul> | 
				
			|||
                    <li style="list-style:none !important;"><span style="color:green;"> ☑</span>   We can play SUDOKU.</li> | 
				
			|||
                    <li style="list-style:none !important;"><span style="color:green;"> ☑</span>   Play only By the approval of HR Manager.</li> | 
				
			|||
 | 
				
			|||
                </ul> | 
				
			|||
            </div> | 
				
			|||
        </div> | 
				
			|||
    </section> | 
				
			|||
 | 
				
			|||
    <section class="oe_container oe_dark"> | 
				
			|||
         <div class="oe_row oe_spaced"> | 
				
			|||
            <h3 class="oe_slogan">How to start the game.?</h3> | 
				
			|||
            <div class="oe_row oe_spaced"> | 
				
			|||
                <div class="oe_span12"> | 
				
			|||
                    <div class="oe_row_img oe_centered"> | 
				
			|||
                        <img class="oe_picture oe_screenshot" src="May i play.png"> | 
				
			|||
                    </div> | 
				
			|||
                </div> | 
				
			|||
                <div class="oe_span12"> | 
				
			|||
                    <p class="oe_mt32"> | 
				
			|||
                      To start playing the game, user should click the button (<i class="fa fa-gamepad" style="color: #f9f9f9;background: #a3498b;"/>) | 
				
			|||
                        for send a request. | 
				
			|||
                    </p> | 
				
			|||
                </div> | 
				
			|||
                 <div class="oe_span12"> | 
				
			|||
                     <p class="oe_mt32"> | 
				
			|||
                       Wait for the approval of HR manager. | 
				
			|||
                     </p> | 
				
			|||
                     <div class="oe_row_img oe_centered"> | 
				
			|||
                         <img class="oe_picture oe_screenshot" src="Just wait for approval.png"> | 
				
			|||
                     </div> | 
				
			|||
                     <p class="oe_mt32"> | 
				
			|||
                           A record is generated. And from the record the HR manager can give approval to play the game. | 
				
			|||
                     </p> | 
				
			|||
                 </div> | 
				
			|||
            </div> | 
				
			|||
         </div> | 
				
			|||
    </section> | 
				
			|||
 | 
				
			|||
    <section class="oe_container"> | 
				
			|||
        <div class="oe_row oe_spaced"> | 
				
			|||
            <h3 class="oe_slogan"> Admin, please check with the user form to enable the option " Odoo Game Request".</h3> | 
				
			|||
            <div class="oe_row oe_spaced"> | 
				
			|||
                <div class="oe_span12"> | 
				
			|||
                    <div class="oe_row_img oe_centered"> | 
				
			|||
                        <img class="oe_picture oe_screenshot" src="user group.png"> | 
				
			|||
                    </div> | 
				
			|||
                </div> | 
				
			|||
            </div> | 
				
			|||
            <div class="oe_row oe_spaced"> | 
				
			|||
                Admin can directly give the permission to play the game. Just enable "Odoo Gamer" | 
				
			|||
                <p>Ps:- if we directly give permission to play game, don't forget to remove Odoo Game Request"</p> | 
				
			|||
            </div> | 
				
			|||
        </div> | 
				
			|||
    </section> | 
				
			|||
 | 
				
			|||
    <section class="oe_container"> | 
				
			|||
         <div class="oe_row oe_spaced"> | 
				
			|||
            <h3 class="oe_slogan">Approve the game request by HR Manager</h3> | 
				
			|||
            <div class="oe_row oe_spaced"> | 
				
			|||
                <div class="oe_span12"> | 
				
			|||
                    <div class="oe_row_img oe_centered"> | 
				
			|||
                        <img class="oe_picture oe_screenshot" src="Game Request.png"> | 
				
			|||
                    </div> | 
				
			|||
                </div> | 
				
			|||
                <div class="oe_span12"> | 
				
			|||
                    <p class="oe_mt32"> | 
				
			|||
                        HR managers can see this request from the menu "Game Request" under Game. | 
				
			|||
                    </p> | 
				
			|||
                    <p class="oe_mt32"> | 
				
			|||
                        We can see 2 buttons here. | 
				
			|||
                        <p> | 
				
			|||
                            1.This icon( <i class="fa fa-check" aria-hidden="true"></i>) for approve the request | 
				
			|||
                        </p> | 
				
			|||
                        <p> | 
				
			|||
                            2. This icon (<i class="fa fa-times" aria-hidden="true"></i>) for avoid/cancel the request | 
				
			|||
                        </p> | 
				
			|||
                    </p> | 
				
			|||
                    <p class="oe_mt32"> | 
				
			|||
                        We can easily identify the states of the request by color. | 
				
			|||
 | 
				
			|||
                         <ul> | 
				
			|||
                            <li>Red is in draft state.</li> | 
				
			|||
                        </ul> | 
				
			|||
                        <ul> | 
				
			|||
                            <li>Green is in approve state.</li> | 
				
			|||
                        </ul> | 
				
			|||
                        <ul> | 
				
			|||
                            <li>Grey is in cancel state.</li> | 
				
			|||
                        </ul> | 
				
			|||
                    </p> | 
				
			|||
                </div> | 
				
			|||
                <div class="oe_span12"> | 
				
			|||
                    <div class="oe_row_img oe_centered"> | 
				
			|||
                        <img class="oe_picture oe_screenshot" src="color code.png"> | 
				
			|||
                    </div> | 
				
			|||
                </div> | 
				
			|||
 | 
				
			|||
            </div> | 
				
			|||
         </div> | 
				
			|||
    </section> | 
				
			|||
 | 
				
			|||
    <section class="oe_container oe_dark"> | 
				
			|||
        <div class="oe_row oe_spaced"> | 
				
			|||
            <h3 class="oe_slogan">SUDOKU</h3> | 
				
			|||
            <div class="oe_row oe_spaced"> | 
				
			|||
                Click on the "New Game" button to start the game. | 
				
			|||
            </div> | 
				
			|||
            <div class="oe_row oe_spaced"> | 
				
			|||
                <div class="oe_span12"> | 
				
			|||
                    <div class="oe_row_img oe_centered"> | 
				
			|||
                        <img class="oe_picture oe_screenshot" src="Sudoku.png"> | 
				
			|||
                    </div> | 
				
			|||
                </div> | 
				
			|||
            </div> | 
				
			|||
            <div class="oe_row oe_spaced"> | 
				
			|||
                Select your level of game. | 
				
			|||
            </div> | 
				
			|||
            <div class="oe_row oe_spaced"> | 
				
			|||
                <div class="oe_span12"> | 
				
			|||
                    <div class="oe_row_img oe_centered"> | 
				
			|||
                        <img class="oe_picture oe_screenshot" src="Level.png"> | 
				
			|||
                    </div> | 
				
			|||
                </div> | 
				
			|||
            </div> | 
				
			|||
            <div class="oe_row oe_spaced"> | 
				
			|||
                Let's play..!! | 
				
			|||
                <p> | 
				
			|||
                    The classic Sudoku game involves a grid of 81 squares. | 
				
			|||
                    The grid is divided into nine blocks, each containing nine squares. | 
				
			|||
                    <p><b>The rules of the game are simple: </b></p> | 
				
			|||
                        <i>each of the nine blocks should contain all the numbers 1-9 within its squares. | 
				
			|||
                    Each number can appear only once in a row, column or box.</i> | 
				
			|||
                </p> | 
				
			|||
                <p><b>You can select the squares by clicking. Read the numbers from key boards.</b></p> | 
				
			|||
                <p><b>Space button can be used to erase the entry.</b></p> | 
				
			|||
            </div> | 
				
			|||
            <div class="oe_row oe_spaced"> | 
				
			|||
                <div class="oe_span12"> | 
				
			|||
                    <div class="oe_row_img oe_centered"> | 
				
			|||
                        <img class="oe_picture oe_screenshot" src="sudoku 1.png"> | 
				
			|||
                    </div> | 
				
			|||
                </div> | 
				
			|||
            </div> | 
				
			|||
        </div> | 
				
			|||
    </section> | 
				
			|||
 | 
				
			|||
    <section class="oe_container"> | 
				
			|||
        <div class="oe_row oe_spaced"> | 
				
			|||
            <h3 class="oe_slogan">WON the game</h3> | 
				
			|||
            <div class="oe_row oe_spaced"> | 
				
			|||
                <div class="oe_span12"> | 
				
			|||
                    <div class="oe_row_img oe_centered"> | 
				
			|||
                        <img class="oe_picture oe_screenshot" src="won.png"> | 
				
			|||
                    </div> | 
				
			|||
                </div> | 
				
			|||
            </div> | 
				
			|||
        </div> | 
				
			|||
    </section> | 
				
			|||
 | 
				
			|||
    <section class="oe_container oe_dark"> | 
				
			|||
            <h2 class="oe_slogan" style="margin-top:20px;" >Need Any Help?</h2> | 
				
			|||
            <div class="oe_slogan" style="margin-top:10px !important;"> | 
				
			|||
                <div> | 
				
			|||
                    <a  class="btn btn-primary btn-lg mt8" | 
				
			|||
                    style="color: #FFFFFF !important;border-radius: 0;" href="http://www.cybrosys.com"><i | 
				
			|||
                    class="fa fa-envelope"></i> Email </a> <a | 
				
			|||
                    class="btn btn-primary btn-lg mt8" style="color: #FFFFFF !important;border-radius: 0;" | 
				
			|||
                    href="http://www.cybrosys.com/contact/"><i | 
				
			|||
                    class="fa fa-phone"></i> Contact Us </a> <a | 
				
			|||
                    class="btn btn-primary btn-lg mt8" style="color: #FFFFFF !important;border-radius: 0;" | 
				
			|||
                    href="http://www.cybrosys.com/odoo-customization-and-installation/"><i | 
				
			|||
                    class="fa fa-check-square"></i> Request Customization </a> | 
				
			|||
                </div> | 
				
			|||
                <br> | 
				
			|||
                <img src="cybro_logo.png" style="width: 190px; margin-bottom: 20px;" class="center-block"> | 
				
			|||
                <div> | 
				
			|||
                  <a href="https://twitter.com/cybrosys" target="_blank"><i class="fa fa-2x fa-twitter" style="color:white;background: #00a0d1;width:35px;"></i></a></td> | 
				
			|||
                  <a href="https://www.linkedin.com/company/cybrosys-technologies-pvt-ltd" target="_blank"><i class="fa fa-2x fa-linkedin" style="color:white;background: #31a3d6;width:35px;padding-left: 3px;"></i></a></td> | 
				
			|||
                  <a href="https://www.facebook.com/cybrosystechnologies" target="_blank"><i class="fa fa-2x fa-facebook" style="color:white;background: #3b5998;width:35px;padding-left: 8px;"></i></a></td> | 
				
			|||
                  <a href="https://plus.google.com/106641282743045431892/about" target="_blank"><i class="fa fa-2x fa-google-plus" style="color:white;background: #c53c2c;width:35px;padding-left: 3px;"></i></a></td> | 
				
			|||
                  <a href="https://in.pinterest.com/cybrosys" target="_blank"><i class="fa fa-2x fa-pinterest" style="color:white;background: #ac0f18;width:35px;padding-left: 3px;"></i></a></td> | 
				
			|||
                </div> | 
				
			|||
            </div> | 
				
			|||
    </section> | 
				
			|||
| 
		 After Width: | Height: | Size: 21 KiB  | 
| 
		 After Width: | Height: | Size: 22 KiB  | 
| 
		 After Width: | Height: | Size: 68 KiB  | 
@ -0,0 +1,283 @@ | 
				
			|||
 | 
				
			|||
.o_entertainment_games_req_footer{ | 
				
			|||
    display:none; | 
				
			|||
} | 
				
			|||
.sudokupage | 
				
			|||
{ | 
				
			|||
	height: 650px; | 
				
			|||
	width:100%; | 
				
			|||
	background-color: #CDD5F4; | 
				
			|||
} | 
				
			|||
.sudokupage1 | 
				
			|||
{ | 
				
			|||
	height: auto; | 
				
			|||
	width:25%; | 
				
			|||
	float: left; | 
				
			|||
	margin-top: 250px; | 
				
			|||
} | 
				
			|||
.sudokupage2 | 
				
			|||
{ | 
				
			|||
	height: 650px; | 
				
			|||
	width:55%; | 
				
			|||
	float: left; | 
				
			|||
	background-color: #CDD5F4; | 
				
			|||
} | 
				
			|||
.sudokupage2 h3 | 
				
			|||
{ | 
				
			|||
	color: red; | 
				
			|||
	font-size: 28px; | 
				
			|||
} | 
				
			|||
.sudokupage2 h4 | 
				
			|||
{ | 
				
			|||
	color: red; | 
				
			|||
	font-size: 20px; | 
				
			|||
} | 
				
			|||
.sudokupage3 | 
				
			|||
{ | 
				
			|||
	height: auto; | 
				
			|||
	width:20%; | 
				
			|||
	float:right; | 
				
			|||
	background-color: #CDD5F4; | 
				
			|||
} | 
				
			|||
 | 
				
			|||
.sudokunewbutton { | 
				
			|||
  border-radius: 4px; | 
				
			|||
  background-color: #4CAF50; | 
				
			|||
  border: none; | 
				
			|||
  color: #FFFFFF; | 
				
			|||
  text-align: center; | 
				
			|||
  font-size: 22px; | 
				
			|||
  padding: 15px; | 
				
			|||
  width: 170px; | 
				
			|||
  height:55px; | 
				
			|||
  transition: all 0.5s; | 
				
			|||
  cursor: pointer; | 
				
			|||
  margin: 5px; | 
				
			|||
} | 
				
			|||
 | 
				
			|||
.sudokulevelbutton { | 
				
			|||
  border-radius: 3px; | 
				
			|||
  background-color: #4CAF50; | 
				
			|||
  border: none; | 
				
			|||
  color: #FFFFFF; | 
				
			|||
  text-align: center; | 
				
			|||
  font-size: 22px; | 
				
			|||
  padding: 15px; | 
				
			|||
  width: 170px; | 
				
			|||
  height:55px; | 
				
			|||
  transition: all 0.5s; | 
				
			|||
  cursor: pointer; | 
				
			|||
  margin: 5px; | 
				
			|||
} | 
				
			|||
.sudokulevelbuttonreset { | 
				
			|||
  border-radius: 3px; | 
				
			|||
  display: none; | 
				
			|||
  background-color: #4CAF50; | 
				
			|||
  border: none; | 
				
			|||
  color: #FFFFFF; | 
				
			|||
  text-align: center; | 
				
			|||
  font-size: 22px; | 
				
			|||
  padding: 15px; | 
				
			|||
  width: 170px; | 
				
			|||
  height:55px; | 
				
			|||
  transition: all 0.5s; | 
				
			|||
  cursor: pointer; | 
				
			|||
  margin: 5px; | 
				
			|||
} | 
				
			|||
.sudokulevelbuttoncheck { | 
				
			|||
  border-radius: 3px; | 
				
			|||
  display: none; | 
				
			|||
  background-color: #4CAF50; | 
				
			|||
  border: none; | 
				
			|||
  color: #FFFFFF; | 
				
			|||
  text-align: center; | 
				
			|||
  font-size: 22px; | 
				
			|||
  padding: 15px; | 
				
			|||
  width: 170px; | 
				
			|||
  height:55px; | 
				
			|||
  transition: all 0.5s; | 
				
			|||
  cursor: pointer; | 
				
			|||
  margin: 5px; | 
				
			|||
} | 
				
			|||
.sudokulevelbuttoncheckback { | 
				
			|||
  border-radius: 3px; | 
				
			|||
  display: none; | 
				
			|||
  background-color: #4CAF50; | 
				
			|||
  border: none; | 
				
			|||
  color: #FFFFFF; | 
				
			|||
  text-align: center; | 
				
			|||
  font-size: 22px; | 
				
			|||
  padding: 15px; | 
				
			|||
  width: 170px; | 
				
			|||
  height:55px; | 
				
			|||
  transition: all 0.5s; | 
				
			|||
  cursor: pointer; | 
				
			|||
  margin: 5px; | 
				
			|||
} | 
				
			|||
.sudokulevelbuttonsolve { | 
				
			|||
  border-radius: 3px; | 
				
			|||
  display: none; | 
				
			|||
  background-color: #4CAF50; | 
				
			|||
  border: none; | 
				
			|||
  color: #FFFFFF; | 
				
			|||
  text-align: center; | 
				
			|||
  font-size: 22px; | 
				
			|||
  padding: 15px; | 
				
			|||
  width: 170px; | 
				
			|||
  height:55px; | 
				
			|||
  transition: all 0.5s; | 
				
			|||
  cursor: pointer; | 
				
			|||
  margin: 5px; | 
				
			|||
} | 
				
			|||
.sudokulevelbutton1 { | 
				
			|||
  border-radius: 3px; | 
				
			|||
  background-color: #00b3b3; | 
				
			|||
  border: none; | 
				
			|||
  color: #FFFFFF; | 
				
			|||
  text-align: center; | 
				
			|||
  font-size: 22px; | 
				
			|||
  padding: 15px; | 
				
			|||
  width: 170px; | 
				
			|||
  height:55px; | 
				
			|||
  transition: all 0.5s; | 
				
			|||
  cursor: pointer; | 
				
			|||
  margin: 5px; | 
				
			|||
} | 
				
			|||
.sudokulevelbutton2 { | 
				
			|||
  border-radius: 3px; | 
				
			|||
  background-color: #00b3b3; | 
				
			|||
  border: none; | 
				
			|||
  color: #FFFFFF; | 
				
			|||
  text-align: center; | 
				
			|||
  font-size: 22px; | 
				
			|||
  padding: 15px; | 
				
			|||
  width: 170px; | 
				
			|||
  height:55px; | 
				
			|||
  transition: all 0.5s; | 
				
			|||
  cursor: pointer; | 
				
			|||
  margin: 5px; | 
				
			|||
} | 
				
			|||
.sudokulevelbutton3 { | 
				
			|||
  border-radius: 3px; | 
				
			|||
  background-color: #00b3b3; | 
				
			|||
  border: none; | 
				
			|||
  color: #FFFFFF; | 
				
			|||
  text-align: center; | 
				
			|||
  font-size: 22px; | 
				
			|||
  padding: 15px; | 
				
			|||
  width: 170px; | 
				
			|||
  height:55px; | 
				
			|||
  transition: all 0.5s; | 
				
			|||
  cursor: pointer; | 
				
			|||
  margin: 5px; | 
				
			|||
} | 
				
			|||
 | 
				
			|||
.sudokulevelselection { | 
				
			|||
    display: none; | 
				
			|||
    position: fixed; | 
				
			|||
    z-index: 1; | 
				
			|||
    padding-top: 100px; | 
				
			|||
    left: 0; | 
				
			|||
    top: 0; | 
				
			|||
    width: 100%; | 
				
			|||
    height: 100%; | 
				
			|||
    overflow: auto; /* Enable scroll if needed */ | 
				
			|||
    background-color: rgb(0,0,0); /* Fallback color */ | 
				
			|||
    background-color: rgba(0,0,0,0.4); /* Black w/ opacity */ | 
				
			|||
} | 
				
			|||
 | 
				
			|||
 | 
				
			|||
.sudokulevelselection-content { | 
				
			|||
    position: relative; | 
				
			|||
    background-color: #fefefe; | 
				
			|||
    margin: auto; | 
				
			|||
    padding: 0; | 
				
			|||
    border: 1px solid #888; | 
				
			|||
    width: 80%; | 
				
			|||
    box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19); | 
				
			|||
    -webkit-animation-name: animatetop; | 
				
			|||
    -webkit-animation-duration: 0.4s; | 
				
			|||
    animation-name: animatetop; | 
				
			|||
    animation-duration: 0.4s | 
				
			|||
} | 
				
			|||
 | 
				
			|||
@-webkit-keyframes animatetop { | 
				
			|||
    from {top:-300px; opacity:0} | 
				
			|||
    to {top:0; opacity:1} | 
				
			|||
} | 
				
			|||
 | 
				
			|||
@keyframes animatetop { | 
				
			|||
    from {top:-300px; opacity:0} | 
				
			|||
    to {top:0; opacity:1} | 
				
			|||
} | 
				
			|||
 | 
				
			|||
 | 
				
			|||
.sudokulevelselectionclose { | 
				
			|||
    color: white; | 
				
			|||
    float: right; | 
				
			|||
    font-size: 28px; | 
				
			|||
    font-weight: bold; | 
				
			|||
} | 
				
			|||
 | 
				
			|||
.sudokulevelselection:hover, | 
				
			|||
.sudokulevelselection:focus { | 
				
			|||
    color: #000; | 
				
			|||
    text-decoration: none; | 
				
			|||
    cursor: pointer; | 
				
			|||
} | 
				
			|||
 | 
				
			|||
.sudokulevelselection-header { | 
				
			|||
    padding: 2px 16px; | 
				
			|||
    background-color: #5cb85c; | 
				
			|||
    color: white; | 
				
			|||
} | 
				
			|||
 | 
				
			|||
.sudokulevelselection-body {padding: 2px 16px;} | 
				
			|||
 | 
				
			|||
.sudokulevelselection-footer { | 
				
			|||
    padding: 2px 16px; | 
				
			|||
    background-color: #5cb85c; | 
				
			|||
    color: white; | 
				
			|||
} | 
				
			|||
 | 
				
			|||
table.sudoright td {width: 50px; height:80px; | 
				
			|||
font-weight: bold; | 
				
			|||
text-align: center | 
				
			|||
} | 
				
			|||
table.sudoright { | 
				
			|||
margin-top: 120px; | 
				
			|||
} | 
				
			|||
table.sudoku td {width: 55px; height:55px; | 
				
			|||
border-width: 1px; | 
				
			|||
border-style: solid; | 
				
			|||
border-color: black; | 
				
			|||
font-weight: bold; | 
				
			|||
text-align: center | 
				
			|||
} | 
				
			|||
table.sudoku { | 
				
			|||
border-width: 3px; | 
				
			|||
border-style: solid; | 
				
			|||
border-color:black; | 
				
			|||
} | 
				
			|||
table.sudoku td[id^=cell_0] {border-bottom-width: 3px;border-bottom-style: double;} | 
				
			|||
table.sudoku td[id^=cell_1] {border-bottom-width: 3px;border-bottom-style: double;} | 
				
			|||
table.sudoku td[id^=cell_2] {border-bottom-width: 3px} | 
				
			|||
table.sudoku td[id^=cell_3] {border-bottom-width: 3px;border-bottom-style: double;} | 
				
			|||
table.sudoku td[id^=cell_4] {border-bottom-width: 3px;border-bottom-style: double;} | 
				
			|||
table.sudoku td[id^=cell_5] {border-bottom-width: 3px} | 
				
			|||
table.sudoku td[id^=cell_6] {border-bottom-width: 3px;border-bottom-style: double;} | 
				
			|||
table.sudoku td[id^=cell_7] {border-bottom-width: 3px;border-bottom-style: double;} | 
				
			|||
table.sudoku td[id$=_0] {border-right-width: 3px;border-right-style: double;} | 
				
			|||
table.sudoku td[id$=_1] {border-right-width: 3px;border-right-style: double;} | 
				
			|||
table.sudoku td[id$=_2] {border-right-width: 3px} | 
				
			|||
table.sudoku td[id$=_3] {border-right-width: 3px;border-right-style: double;} | 
				
			|||
table.sudoku td[id$=_4] {border-right-width: 3px;border-right-style: double;} | 
				
			|||
table.sudoku td[id$=_5] {border-right-width: 3px} | 
				
			|||
table.sudoku td[id$=_6] {border-right-width: 3px;border-right-style: double;} | 
				
			|||
table.sudoku td[id$=_7] {border-right-width: 3px;border-right-style: double;} | 
				
			|||
td.selected {background-color: rgb(100%, 70%, 0%)} | 
				
			|||
td.tofill   {color: blue;background-color: #f2ffde } | 
				
			|||
td.filled   {color: blue;background-color: #c0ff96} | 
				
			|||
td.green{color:green;background-color: #fff} | 
				
			|||
td.red{color:red;background-color:#FC9E9E;border-color: red;border-width: 1.5px} | 
				
			|||
td.notfill {color: green;font-style:bold;background-color: #cac5c3;} | 
				
			|||
| 
		 After Width: | Height: | Size: 46 KiB  | 
@ -0,0 +1,49 @@ | 
				
			|||
odoo.define('game_sudoku.models_entertainment_game', function (require) { | 
				
			|||
"use strict"; | 
				
			|||
 | 
				
			|||
var core = require('web.core'); | 
				
			|||
var Model = require('web.Model'); | 
				
			|||
var Widget = require('web.Widget'); | 
				
			|||
 | 
				
			|||
var QWeb = core.qweb; | 
				
			|||
var _t = core._t; | 
				
			|||
 | 
				
			|||
var MyGame = Widget.extend({ | 
				
			|||
    events: { | 
				
			|||
        "click .o_entertainment_games_log_in_icon": function() { | 
				
			|||
            this.$('.o_entertainment_games_log_in_icon').attr("disabled", "disabled"); | 
				
			|||
            this.$('.o_entertainment_games_req_footer').css('display', 'block'); | 
				
			|||
            this.game_request(); | 
				
			|||
        }, | 
				
			|||
    }, | 
				
			|||
    game_request: function(){ | 
				
			|||
        new Model("employee.game.approve") | 
				
			|||
                        .call("create_employee_game_approve", [1, this.employee.id, this.user]) | 
				
			|||
    }, | 
				
			|||
 | 
				
			|||
    start: function () { | 
				
			|||
        var self = this; | 
				
			|||
 | 
				
			|||
        var hr_employee = new Model('hr.employee'); | 
				
			|||
        hr_employee.query(['attendance_state', 'name']) | 
				
			|||
            .filter([['user_id', '=', self.session.uid]]) | 
				
			|||
            .all() | 
				
			|||
            .then(function (res) { | 
				
			|||
                if (_.isEmpty(res) ) { | 
				
			|||
                    self.$('.o_hr_attendance_employee').append(_t("Error : Could not find employee linked to user")); | 
				
			|||
                    return; | 
				
			|||
                } | 
				
			|||
                self.employee = res[0]; | 
				
			|||
                self.user = self.session.uid | 
				
			|||
                self.$el.html(QWeb.render("EntertainmentGamesMainMenu", {widget: self})); | 
				
			|||
            }); | 
				
			|||
 | 
				
			|||
        return this._super.apply(this, arguments); | 
				
			|||
    }, | 
				
			|||
}); | 
				
			|||
 | 
				
			|||
core.action_registry.add('entertainment_games_my_game', MyGame); | 
				
			|||
 | 
				
			|||
return MyGame; | 
				
			|||
 | 
				
			|||
}); | 
				
			|||
@ -0,0 +1,119 @@ | 
				
			|||
.o_entertainment_games_log_in_icon { | 
				
			|||
    font-size: 15em; | 
				
			|||
    cursor: pointer; | 
				
			|||
    margin: 20px 0px 20px 0px; | 
				
			|||
    padding: 0px 15px 0px 15px; | 
				
			|||
    border-radius: 10%; | 
				
			|||
    box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.6); | 
				
			|||
} | 
				
			|||
 | 
				
			|||
.o_entertainment_games_kiosk_mode_container { | 
				
			|||
    .o-flex-display(); | 
				
			|||
    .o-flex-flow(column, nowrap); | 
				
			|||
    .o-justify-content(center); | 
				
			|||
    .o-align-items(center); | 
				
			|||
 | 
				
			|||
     @media (min-width: @screen-xs-max) { | 
				
			|||
        background: url("../img/application-switcher-bg.jpg") no-repeat center center fixed; | 
				
			|||
        background-size: cover; | 
				
			|||
        position: absolute; | 
				
			|||
        top: 0; | 
				
			|||
        left: 0; | 
				
			|||
        right: 0; | 
				
			|||
        bottom: 0; | 
				
			|||
    } | 
				
			|||
} | 
				
			|||
 | 
				
			|||
/************** MIXINS for ANIMATIONS *************/ | 
				
			|||
.o-display-marked(@content, @top, @left, @color) { | 
				
			|||
    position: absolute; | 
				
			|||
    top: @top; | 
				
			|||
    left: @left; | 
				
			|||
    font-size: 150px; | 
				
			|||
    font-family: "FontAwesome"; | 
				
			|||
    content: @content; | 
				
			|||
    color: @color; | 
				
			|||
    animation: markAnim ease-in-out 10s; | 
				
			|||
    animation-iteration-count: 5; | 
				
			|||
    transform-origin: 50% 50%; | 
				
			|||
    animation-fill-mode:forwards; /*when the spec is finished*/ | 
				
			|||
    -webkit-animation: markAnim ease-in-out 10s; | 
				
			|||
    -webkit-animation-iteration-count: 1; | 
				
			|||
    -webkit-transform-origin: 50% 50%; | 
				
			|||
    -webkit-animation-fill-mode:forwards; /*Chrome 16+, Safari 4+*/ | 
				
			|||
    -moz-animation: markAnim ease-in-out 10s; | 
				
			|||
    -moz-animation-iteration-count: 1; | 
				
			|||
    -moz-transform-origin: 50% 50%; | 
				
			|||
    -moz-animation-fill-mode:forwards; /*FF 5+*/ | 
				
			|||
    -o-animation: markAnim ease-in-out 10s; | 
				
			|||
    -o-animation-iteration-count: 1; | 
				
			|||
    -o-transform-origin: 50% 50%; | 
				
			|||
    -o-animation-fill-mode:forwards; /*Not implemented yet*/ | 
				
			|||
    -ms-animation: markAnim ease-in-out 10s; | 
				
			|||
    -ms-animation-iteration-count: 1; | 
				
			|||
    -ms-transform-origin: 50% 50%; | 
				
			|||
    -ms-animation-fill-mode:forwards; /*IE 10+*/ | 
				
			|||
 | 
				
			|||
    @media (max-width: 992px) { | 
				
			|||
        left: 40%; | 
				
			|||
        font-size: 30vw; | 
				
			|||
    } | 
				
			|||
} | 
				
			|||
 | 
				
			|||
.o_wow_thumbs:after { | 
				
			|||
    .o-display-marked("You Won \A \f164 \00a0 - \f118", 20%, 40%, #21b799); | 
				
			|||
    white-space: pre; | 
				
			|||
} | 
				
			|||
.o_lost_thumbs:after { | 
				
			|||
    .o-display-marked("You Lost \A \f165 \00a0 - \f119", 20%, 40%, #b73720); | 
				
			|||
    white-space: pre; | 
				
			|||
} | 
				
			|||
 | 
				
			|||
 | 
				
			|||
.o_entertainment_games_kiosk_mode { | 
				
			|||
    width: 100%; | 
				
			|||
    text-align: center; | 
				
			|||
    position: relative; | 
				
			|||
    background-color: #fff; | 
				
			|||
    padding: 2em; | 
				
			|||
 | 
				
			|||
    h1 { | 
				
			|||
        margin: 0 0 2rem 0; | 
				
			|||
    } | 
				
			|||
 | 
				
			|||
    .message_demo_barcodes { | 
				
			|||
        font-size: 0.9em; | 
				
			|||
        margin: 0; | 
				
			|||
    } | 
				
			|||
 | 
				
			|||
    img { | 
				
			|||
        overflow:hidden; // prevent margins colapsing with h1 | 
				
			|||
        margin-top: 3rem; | 
				
			|||
        width: 200px; | 
				
			|||
    } | 
				
			|||
 | 
				
			|||
    p { | 
				
			|||
        text-align: left; | 
				
			|||
        margin: 3rem 0; | 
				
			|||
    } | 
				
			|||
 | 
				
			|||
    > button { | 
				
			|||
        font-size: 1.2em; | 
				
			|||
        margin-bottom: 2rem; | 
				
			|||
        width: 100%; | 
				
			|||
    } | 
				
			|||
 | 
				
			|||
    > button:last-child { | 
				
			|||
        margin-bottom: 0; | 
				
			|||
    } | 
				
			|||
 | 
				
			|||
    @media (min-width: @screen-xs-max) { | 
				
			|||
        flex: 0 0 auto; | 
				
			|||
        width: 550px; | 
				
			|||
        border-radius: 10px; | 
				
			|||
        background-color: rgba(255,255,255,0.8); | 
				
			|||
        box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.6); | 
				
			|||
        font-size: 1.2em; | 
				
			|||
        padding: 3em; | 
				
			|||
    } | 
				
			|||
} | 
				
			|||
@ -0,0 +1,20 @@ | 
				
			|||
<?xml version="1.0" encoding="utf-8"?> | 
				
			|||
<template xml:space="preserve"> | 
				
			|||
    <t t-name="EntertainmentGamesMainMenu"> | 
				
			|||
        <div class="o_entertainment_games_kiosk_mode_container"> | 
				
			|||
            <div class="o_entertainment_games_kiosk_mode"> | 
				
			|||
                <t t-if="widget.employee"> | 
				
			|||
                    <h1>Welcome <t t-esc="widget.employee.name"/></h1> | 
				
			|||
                        <h2>Click to start Games</h2> | 
				
			|||
                        <i class="fa fa-gamepad btn-primary o_entertainment_games_log_in_icon" style="color: #f9f9f9;background: #a3498b;"/> | 
				
			|||
                        <div class="o_entertainment_games_req_footer"> | 
				
			|||
                            <h3>Just wait for approval</h3> | 
				
			|||
                        </div> | 
				
			|||
                </t> | 
				
			|||
                <t t-if="!widget.employee"> | 
				
			|||
                    Error : Could not find employee linked to user. | 
				
			|||
                </t> | 
				
			|||
            </div> | 
				
			|||
        </div> | 
				
			|||
    </t> | 
				
			|||
</template> | 
				
			|||
@ -0,0 +1,161 @@ | 
				
			|||
<?xml version="1.0" encoding="utf-8"?> | 
				
			|||
<template xml:space="preserve"> | 
				
			|||
    <t t-name="EntertainmentGamesSudoku"> | 
				
			|||
        <div class="sudokupage" groups="hr.group_hr_user"> | 
				
			|||
            <div class ="sudokupage1"> | 
				
			|||
 | 
				
			|||
	        </div> | 
				
			|||
            <div class="sudokupage2"> | 
				
			|||
                <h3 align='center' class="sudo"> </h3> | 
				
			|||
                    <table align="center" class="sudoku" cellspacing="0"> | 
				
			|||
                        <tr> | 
				
			|||
                            <td id="cell_0_0">s</td> | 
				
			|||
                            <td id="cell_0_1">8</td> | 
				
			|||
                            <td id="cell_0_2"></td> | 
				
			|||
                            <td id="cell_0_3"></td> | 
				
			|||
                            <td id="cell_0_4">d</td> | 
				
			|||
                            <td id="cell_0_5">4</td> | 
				
			|||
                            <td id="cell_0_6"></td> | 
				
			|||
                            <td id="cell_0_7">k</td> | 
				
			|||
                            <td id="cell_0_8">1</td> | 
				
			|||
                        </tr> | 
				
			|||
                        <tr> | 
				
			|||
                            <td id="cell_1_0"></td> | 
				
			|||
                            <td id="cell_1_1">1</td> | 
				
			|||
                            <td id="cell_1_2">d</td> | 
				
			|||
                            <td id="cell_1_3"></td> | 
				
			|||
                            <td id="cell_1_4">3</td> | 
				
			|||
                            <td id="cell_1_5">s</td> | 
				
			|||
                            <td id="cell_1_6"></td> | 
				
			|||
                            <td id="cell_1_7">7</td> | 
				
			|||
                            <td id="cell_1_8">u</td> | 
				
			|||
                        </tr> | 
				
			|||
                        <tr> | 
				
			|||
                            <td id="cell_2_0">u</td> | 
				
			|||
                            <td id="cell_2_1">5</td> | 
				
			|||
                            <td id="cell_2_2"></td> | 
				
			|||
                            <td id="cell_2_3"></td> | 
				
			|||
                            <td id="cell_2_4"></td> | 
				
			|||
                            <td id="cell_2_5">S</td> | 
				
			|||
                            <td id="cell_2_6">9</td> | 
				
			|||
                            <td id="cell_2_7"></td> | 
				
			|||
                            <td id="cell_2_8"></td> | 
				
			|||
                        </tr> | 
				
			|||
                        <tr> | 
				
			|||
                            <td id="cell_3_0"></td> | 
				
			|||
                            <td id="cell_3_1"></td> | 
				
			|||
                            <td id="cell_3_2">8</td> | 
				
			|||
                            <td id="cell_3_3"></td> | 
				
			|||
                            <td id="cell_3_4"></td> | 
				
			|||
                            <td id="cell_3_5">4</td> | 
				
			|||
                            <td id="cell_3_6">D</td> | 
				
			|||
                            <td id="cell_3_7"></td> | 
				
			|||
                            <td id="cell_3_8">o</td> | 
				
			|||
                        </tr> | 
				
			|||
                        <tr> | 
				
			|||
                            <td id="cell_4_0">d</td> | 
				
			|||
                            <td id="cell_4_1"></td> | 
				
			|||
                            <td id="cell_4_2"></td> | 
				
			|||
                            <td id="cell_4_3"></td> | 
				
			|||
                            <td id="cell_4_4"> | 
				
			|||
                                <h4>SUDOKU</h4> | 
				
			|||
                            </td> | 
				
			|||
                            <td id="cell_4_5"></td> | 
				
			|||
                            <td id="cell_4_6">5</td> | 
				
			|||
                            <td id="cell_4_7"></td> | 
				
			|||
                            <td id="cell_4_8"></td> | 
				
			|||
                        </tr> | 
				
			|||
                        <tr> | 
				
			|||
                            <td id="cell_5_0">o</td> | 
				
			|||
                            <td id="cell_5_1">5</td> | 
				
			|||
                            <td id="cell_5_2">k</td> | 
				
			|||
                            <td id="cell_5_3">6</td> | 
				
			|||
                            <td id="cell_5_4"></td> | 
				
			|||
                            <td id="cell_5_5">s</td> | 
				
			|||
                            <td id="cell_5_6">2</td> | 
				
			|||
                            <td id="cell_5_7"></td> | 
				
			|||
                            <td id="cell_5_8"></td> | 
				
			|||
                        </tr> | 
				
			|||
                        <tr> | 
				
			|||
                            <td id="cell_6_0"></td> | 
				
			|||
                            <td id="cell_6_1">8</td> | 
				
			|||
                            <td id="cell_6_2"></td> | 
				
			|||
                            <td id="cell_6_3"></td> | 
				
			|||
                            <td id="cell_6_4">4</td> | 
				
			|||
                            <td id="cell_6_5"></td> | 
				
			|||
                            <td id="cell_6_6"></td> | 
				
			|||
                            <td id="cell_6_7">3</td> | 
				
			|||
                            <td id="cell_6_8"></td> | 
				
			|||
                        </tr> | 
				
			|||
                        <tr> | 
				
			|||
                            <td id="cell_7_0">k</td> | 
				
			|||
                            <td id="cell_7_1">1</td> | 
				
			|||
                            <td id="cell_7_2"></td> | 
				
			|||
                            <td id="cell_7_3"></td> | 
				
			|||
                            <td id="cell_7_4">8</td> | 
				
			|||
                            <td id="cell_7_5"></td> | 
				
			|||
                            <td id="cell_7_6">k</td> | 
				
			|||
                            <td id="cell_7_7"></td> | 
				
			|||
                            <td id="cell_7_8">9</td> | 
				
			|||
                        </tr> | 
				
			|||
                        <tr> | 
				
			|||
                            <td id="cell_8_0">u</td> | 
				
			|||
                            <td id="cell_8_1">u</td> | 
				
			|||
                            <td id="cell_8_2">3</td> | 
				
			|||
                            <td id="cell_8_3">9</td> | 
				
			|||
                            <td id="cell_8_4">s</td> | 
				
			|||
                            <td id="cell_8_5"></td> | 
				
			|||
                            <td id="cell_8_6">5</td> | 
				
			|||
                            <td id="cell_8_7"></td> | 
				
			|||
                            <td id="cell_8_8"></td> | 
				
			|||
                        </tr> | 
				
			|||
                    </table> | 
				
			|||
            </div> | 
				
			|||
            <div class= "sudokupage3"> | 
				
			|||
                <h2 id="demo"> </h2> | 
				
			|||
                    <form> | 
				
			|||
                        <table align="center" class="sudoright" cellspacing="20" style="margin top=10px:"> | 
				
			|||
                                <tr> | 
				
			|||
                                    <td> | 
				
			|||
                                        <input type="button" class="sudokunewbutton" value="New Game" /> | 
				
			|||
                                        <div id="sudoku_level_selection_modal" class="sudokulevelselection"> | 
				
			|||
                                            <div class="sudokulevelselection-content"> | 
				
			|||
                                                <div class="sudokulevelselection-header"> | 
				
			|||
                                                   <span class="sudokulevelselectionclose">*</span> | 
				
			|||
                                                   <h2>Level of Mode</h2> | 
				
			|||
                                                </div> | 
				
			|||
                                                <div class="sudokulevelselection-body"> | 
				
			|||
                                                    <input type="button" class="sudokulevelbutton1" value="Easy" /> | 
				
			|||
                                                    <input type="button" class="sudokulevelbutton2" value="Medium" /> | 
				
			|||
                                                    <input type="button" class="sudokulevelbutton3" value="Hard" /> | 
				
			|||
                                                </div> | 
				
			|||
                                                <div class="sudokulevelselection-footer"> | 
				
			|||
                                                    <h3>Test Your Skill with Different Levels.</h3> | 
				
			|||
                                                </div> | 
				
			|||
                                            </div> | 
				
			|||
                                        </div> | 
				
			|||
                                    </td> | 
				
			|||
                                </tr> | 
				
			|||
                            <tr> | 
				
			|||
                                <td> | 
				
			|||
                                    <input type="button" class="sudokulevelbuttonreset" value="Reset"/> | 
				
			|||
                                </td> | 
				
			|||
                            </tr> | 
				
			|||
                            <tr> | 
				
			|||
                                <td> | 
				
			|||
                                    <input type="button" class="sudokulevelbuttoncheck" value="Check it"/> | 
				
			|||
                                    <input type="button" class="sudokulevelbuttoncheckback" value="Redo"/> | 
				
			|||
                                </td> | 
				
			|||
        					</tr> | 
				
			|||
                            <tr> | 
				
			|||
                                <td> | 
				
			|||
                                    <input type="button" class="sudokulevelbuttonsolve" value="Solution"/> | 
				
			|||
                                </td> | 
				
			|||
 | 
				
			|||
                            </tr> | 
				
			|||
                        </table> | 
				
			|||
                    </form> | 
				
			|||
            </div> | 
				
			|||
        </div> | 
				
			|||
    </t> | 
				
			|||
</template> | 
				
			|||
@ -0,0 +1,9 @@ | 
				
			|||
<?xml version="1.0" encoding="utf-8"?> | 
				
			|||
<odoo> | 
				
			|||
    <data noupdate="1"> | 
				
			|||
        <record id="sequence_game_approve_sequence" model="ir.sequence"> | 
				
			|||
            <field name="name">Game Approve</field> | 
				
			|||
            <field name="code">employee.game</field> | 
				
			|||
        </record> | 
				
			|||
    </data> | 
				
			|||
</odoo> | 
				
			|||
@ -0,0 +1,13 @@ | 
				
			|||
<?xml version="1.0" encoding="utf-8"?> | 
				
			|||
<odoo> | 
				
			|||
    <data> | 
				
			|||
        <template id="entertainment_games" inherit_id="web.assets_backend"> | 
				
			|||
            <xpath expr="." position="inside"> | 
				
			|||
                <script type="text/javascript" src="/game_sudoku/static/src/js/game.js"></script> | 
				
			|||
                <script type="text/javascript" src="/game_sudoku/static/src/js/sudoku.js"></script> | 
				
			|||
                <link rel="stylesheet" href="/game_sudoku/static/src/less/games.less"/> | 
				
			|||
                <link rel="stylesheet" href="/game_sudoku/static/src/css/sudoku.css"/> | 
				
			|||
            </xpath> | 
				
			|||
        </template> | 
				
			|||
    </data> | 
				
			|||
</odoo> | 
				
			|||
@ -0,0 +1,49 @@ | 
				
			|||
<?xml version="1.0" encoding="utf-8"?> | 
				
			|||
<odoo> | 
				
			|||
    <data> | 
				
			|||
        <record id="action_entertainment_games_request" model="ir.actions.client"> | 
				
			|||
            <field name="name">Game Approval</field> | 
				
			|||
            <field name="tag">entertainment_games_my_game</field> | 
				
			|||
            <field name="target">main</field> | 
				
			|||
        </record> | 
				
			|||
 | 
				
			|||
        <record id="game_approval_tree" model="ir.ui.view"> | 
				
			|||
            <field name="name">employee.game.approve.tree</field> | 
				
			|||
            <field name="model">employee.game.approve</field> | 
				
			|||
            <field name="arch" type="xml"> | 
				
			|||
                <tree string="Game Approval" create="false" edit="false" | 
				
			|||
                      colors="red:state == 'draft';green:state == 'approve';grey:state == 'cancel';"> | 
				
			|||
                    <field name="name"/> | 
				
			|||
                    <field name="department_id"/> | 
				
			|||
                    <field name="approve_datetime"/> | 
				
			|||
                    <field name="game_user"/> | 
				
			|||
                    <field name="user_id" invisible="1"/> | 
				
			|||
                    <field name="state" invisible="1"/> | 
				
			|||
                    <button name="approve" string="Confirm" type="object" icon="fa-check" style="color:green" | 
				
			|||
                             attrs="{'invisible':[('state','!=', 'draft')]}"/> | 
				
			|||
                    <button name="cancel" string="Cancel" type="object" icon="fa-close" style="color:red" | 
				
			|||
                            attrs="{'invisible':[('state','=', 'cancel')]}"/> | 
				
			|||
                </tree> | 
				
			|||
            </field> | 
				
			|||
        </record> | 
				
			|||
 | 
				
			|||
        <record id="action_entertainment_games_approval_tree" model="ir.actions.act_window"> | 
				
			|||
            <field name="name">Game Approval</field> | 
				
			|||
            <field name="type">ir.actions.act_window</field> | 
				
			|||
            <field name="res_model">employee.game.approve</field> | 
				
			|||
            <field name="view_type">form</field> | 
				
			|||
            <field name="view_mode">tree</field> | 
				
			|||
            <field name="view_id" ref="game_approval_tree"/> | 
				
			|||
        </record> | 
				
			|||
 | 
				
			|||
        <menuitem id="entertainment_games_menu" name="Games" sequence="105" groups="base.group_user"/> | 
				
			|||
 | 
				
			|||
        <menuitem id="entertainment_games_approval_request_menu" name="May I Play?" sequence="1" | 
				
			|||
                  action="action_entertainment_games_request" parent="entertainment_games_menu" | 
				
			|||
                  groups="game_sudoku.odoo_gamer_approve_req"/> | 
				
			|||
 | 
				
			|||
        <menuitem id="entertainment_games_approval_menu" name="Game Request" sequence="2" | 
				
			|||
                  action="action_entertainment_games_approval_tree" parent="entertainment_games_menu" | 
				
			|||
                  groups="hr.group_hr_manager"/> | 
				
			|||
    </data> | 
				
			|||
</odoo> | 
				
			|||
@ -0,0 +1,14 @@ | 
				
			|||
<?xml version="1.0" encoding="utf-8"?> | 
				
			|||
<odoo> | 
				
			|||
    <data> | 
				
			|||
        <record id="action_entertainment_games_sudoku" model="ir.actions.client"> | 
				
			|||
            <field name="name">Sudoku</field> | 
				
			|||
            <field name="tag">entertainment_games_sudoku</field> | 
				
			|||
            <field name="target">main</field> | 
				
			|||
        </record> | 
				
			|||
 | 
				
			|||
        <menuitem id="entertainment_games_sudoku_menu" name="Sudoku" sequence="5" | 
				
			|||
                  action="action_entertainment_games_sudoku" parent="entertainment_games_menu" | 
				
			|||
                  groups="game_sudoku.odoo_gamer_group"/> | 
				
			|||
    </data> | 
				
			|||
</odoo> | 
				
			|||