Skip to content
Permalink
Browse files

Merge branch '12.0' of github.com:it-projects-llc/misc-addons into 12…

….0-e926e0dc372d2b4f567a0baebe2c0dbe025071b0
  • Loading branch information...
KolushovAlexandr committed Apr 12, 2019
2 parents e926e0d + fd78333 commit b7a0684d9951db6b2e5127db4b94d5cc402cc5ef
Showing with 486 additions and 25,105 deletions.
  1. +3 −1 .travis.yml
  2. +1 −1 autostaging_base/__manifest__.py
  3. +1 −1 autostaging_project_task/__manifest__.py
  4. +53 −0 barcode_widget/static/description/index.html
  5. +8 −4 base_attendance/README.rst
  6. +2 −2 base_attendance/__manifest__.py
  7. +1 −3 base_attendance/models/res_attendance.py
  8. +1 −1 base_attendance/models/res_config.py
  9. +1 −1 base_attendance/security/res_attendance_security.xml
  10. +2 −2 base_attendance/static/description/index.html
  11. +3 −2 base_attendance/static/src/js/greeting_message.js
  12. +2 −2 base_attendance/static/src/js/kiosk_confirm.js
  13. +2 −2 base_attendance/static/src/js/kiosk_mode.js
  14. +2 −2 base_attendance/static/src/js/presence_widgets.js
  15. +1 −1 base_attendance/static/src/js/res_partner_kanban_view_handler.js
  16. +11 −4 base_attendance/static/src/js/test_kiosk_tour.js
  17. +22 −23 base_attendance/static/src/{less/hr_attendance.less → scss/hr_attendance.scss}
  18. +1 −1 base_attendance/tests/test_hr_attendance_constraints.py
  19. +1 −1 base_attendance/tests/test_hr_attendance_process.py
  20. +1 −4 base_attendance/tests/test_kiosk_tour.py
  21. +37 −37 base_attendance/views/res_attendance_view.xml
  22. +1 −1 base_attendance/views/web_asset_backend_template.xml
  23. +1 −1 base_details/__manifest__.py
  24. +0 −38 base_groupby_extra/README.rst
  25. +0 −1 base_groupby_extra/__init__.py
  26. +0 −32 base_groupby_extra/__manifest__.py
  27. +0 −4 base_groupby_extra/doc/changelog.rst
  28. +0 −18 base_groupby_extra/doc/index.rst
  29. +0 −39 base_groupby_extra/i18n/es_CR.po
  30. +0 −39 base_groupby_extra/i18n/fr.po
  31. +0 −39 base_groupby_extra/i18n/ru.po
  32. +0 −39 base_groupby_extra/i18n/sl.po
  33. +0 −42 base_groupby_extra/models.py
  34. BIN base_groupby_extra/static/description/icon.png
  35. +1 −1 base_import_map/__manifest__.py
  36. +0 −5 booking_calendar/README.rst
  37. +0 −1 booking_calendar/__init__.py
  38. +0 −25 booking_calendar/__manifest__.py
  39. +0 −670 booking_calendar/models.py
  40. +0 −40 booking_calendar/report_saleorder.xml
  41. +0 −6,112 booking_calendar/static/lib/js/fullcalendar.1.6.7.js
  42. +0 −11,171 booking_calendar/static/lib/js/fullcalendar.2.4.0.js
  43. +0 −3,043 booking_calendar/static/lib/js/moment.js
  44. +0 −1,138 booking_calendar/static/src/css/booking_calendar.css
  45. +0 −5 booking_calendar/static/src/css/fullcalendar.min.css
  46. BIN booking_calendar/static/src/img/icons/calendar.png
  47. +0 −266 booking_calendar/static/src/js/booking_calendar.js
  48. +0 −30 booking_calendar/static/src/xml/booking_calendar.xml
  49. +0 −197 booking_calendar/views.xml
  50. +0 −8 booking_calendar_analytic/README.rst
  51. +0 −1 booking_calendar_analytic/__init__.py
  52. +0 −13 booking_calendar_analytic/__manifest__.py
  53. +0 −31 booking_calendar_analytic/models.py
  54. +0 −30 booking_calendar_analytic/views.xml
  55. +0 −6 gamification_extra/README.rst
  56. +0 −1 gamification_extra/__init__.py
  57. +0 −14 gamification_extra/__manifest__.py
  58. +0 −315 gamification_extra/gamification_extra_models.py
  59. +0 −50 gamification_extra/gamification_extra_views.xml
  60. BIN gamification_extra/static/description/icon.png
  61. +0 −3 gamification_extra/static/src/css/gamification_extra.css
  62. +0 −21 gamification_extra/static/src/js/gamification_extra.js
  63. +0 −15 gamification_extra/static/src/xml/gamification_extra.xml
  64. +1 −1 hr_rule_input_compute/__manifest__.py
  65. +1 −1 ir_attachment_force_storage/__manifest__.py
  66. +7 −0 ir_attachment_force_storage/models.py
  67. +6 −0 ir_attachment_force_storage/pre_install.xml
  68. +0 −4 ir_attachment_force_storage/pre_install.yml
  69. +1 −1 ir_attachment_s3/__manifest__.py
  70. +28 −0 ir_attachment_s3/doc/index.rst
  71. +2 −2 ir_attachment_url/README.rst
  72. +2 −2 ir_attachment_url/__manifest__.py
  73. +2 −2 ir_attachment_url/doc/index.rst
  74. +2 −2 ir_attachment_url/models/binary_fields.py
  75. +16 −8 ir_attachment_url/models/image.py
  76. +11 −6 ir_attachment_url/models/ir_http.py
  77. +2 −3 ir_attachment_url/tests/test_data_get.py
  78. +3 −3 ir_config_parameter_multi_company/README.rst
  79. +1 −1 ir_config_parameter_multi_company/__init__.py
  80. +1 −1 ir_config_parameter_multi_company/__manifest__.py
  81. +2 −2 ir_config_parameter_multi_company/doc/index.rst
  82. +2 −2 ir_config_parameter_multi_company/migrations/11.0.2.0.0/post-prepare-value-column.py
  83. +0 −1 ir_config_parameter_multi_company/models/__init__.py
  84. +1 −3 ir_config_parameter_multi_company/models/ir_config_parameter.py
  85. +1 −1 ir_config_parameter_multi_company/models/ir_property.py
  86. +0 −36 ir_config_parameter_multi_company/models/res_users.py
  87. +1 −1 ir_config_parameter_multi_company/static/description/index.html
  88. +0 −1 oca_dependencies.txt
  89. +0 −2 pitch_booking/__init__.py
  90. +0 −16 pitch_booking/__manifest__.py
  91. +0 −1 pitch_booking/controllers/__init__.py
  92. +0 −37 pitch_booking/controllers/main.py
  93. +0 −303 pitch_booking/models.py
  94. +0 −46 pitch_booking/report_saleorder.xml
  95. +0 −5 pitch_booking/security/ir.model.access.csv
  96. +0 −12 pitch_booking/static/src/css/pitch_booking.css
  97. +0 −11 pitch_booking/static/src/js/pitch_booking.js
  98. +0 −3 pitch_booking/static/src/js/website_pitch_booking.js
  99. +0 −235 pitch_booking/views.xml
  100. +1 −1 product_details/__manifest__.py
  101. +1 −1 production_lot_details/__manifest__.py
  102. +1 −1 project_task_subtask/__manifest__.py
  103. +1 −1 reminder_base/__manifest__.py
  104. +1 −1 reminder_task_deadline/__manifest__.py
  105. +1 −0 requirements.txt
  106. +2 −2 res_users_signature/res_users_signature_models.py
  107. +0 −6 sms_sg/README.rst
  108. +0 −1 sms_sg/__init__.py
  109. +0 −15 sms_sg/__manifest__.py
  110. +0 −14 sms_sg/data.xml
  111. +0 −90 sms_sg/i18n/es_CR.po
  112. +0 −89 sms_sg/i18n/fr.po
  113. +0 −89 sms_sg/i18n/ru.po
  114. +0 −89 sms_sg/i18n/sl.po
  115. +0 −22 sms_sg/models.py
  116. +0 −3 sms_sg/security/ir.model.access.csv
  117. +0 −29 sms_sg/views/log.xml
  118. +1 −1 theme_kit/__manifest__.py
  119. +1 −1 theme_kit/models/theme.py
  120. +17 −18 web_debranding/README.rst
  121. +2 −4 web_debranding/__manifest__.py
  122. +4 −2 web_debranding/data.xml
  123. +0 −5 web_debranding/i18n/ru.po
  124. +0 −1 web_debranding/models/__init__.py
  125. +0 −1 web_debranding/models/ir_config_parameter.py
  126. +8 −0 web_debranding/models/ir_translation.py
  127. +16 −0 web_debranding/models/mail_channel.py
  128. +3 −1 web_debranding/models/res_users.py
  129. +0 −34 web_debranding/models/web_planner.py
  130. +6 −0 web_debranding/pre_install.xml
  131. +0 −10 web_debranding/pre_install.yml
  132. +14 −10 web_debranding/static/src/js/bot.js
  133. +0 −19 web_debranding/static/src/js/dashboard.js
  134. +29 −25 web_debranding/static/src/js/native_notifications.js
  135. +3 −3 web_debranding/static/src/xml/web.xml
  136. +11 −19 web_debranding/tests/test_developer_mode_menu_elements.py
  137. +0 −17 web_debranding_support/README.rst
  138. +0 −1 web_debranding_support/__init__.py
  139. +0 −14 web_debranding_support/__manifest__.py
  140. +0 −28 web_debranding_support/i18n/en.po
  141. +0 −27 web_debranding_support/i18n/web_debranding_support.pot
  142. 0 web_debranding_support/models.py
  143. BIN web_debranding_support/static/description/icon.png
  144. +0 −13 web_debranding_support/views.xml
  145. +1 −1 web_multi_attachment_base/__manifest__.py
  146. +1 −1 web_preview/__manifest__.py
  147. +1 −1 web_sessions_management/res_users.py
  148. +53 −0 web_sessions_management/static/description/index.html
  149. +3 −1 web_website/README.rst
  150. +2 −1 web_website/__manifest__.py
  151. +1 −1 web_website/demo/res_users_demo.xml
  152. +1 −1 web_website/models/ir_property.py
  153. +1 −0 web_website/models/test_website_dependent.py
  154. +1 −2 web_website/models/website_dependent_mixin.py
  155. +37 −20 web_website/static/src/js/switch_website_menu.js
  156. +1 −1 web_website/static/src/js/tour.js
  157. +3 −3 web_website/static/src/xml/qweb.xml
  158. +3 −5 web_website/tests/test_ui.py
  159. +2 −4 web_website/tests/test_website_dependent.py
@@ -7,14 +7,16 @@ sudo: false
cache: pip

addons:
# odoo 12.0+ uses command "INSERT ... ON CONFLICT ...", which is available in 9.5+ only
postgresql: "9.5"
apt:
packages:
- expect-dev # provides unbuffer utility
- python-lxml # because pip installation is slow

env:
global:
- VERSION="11.0" TESTS="0" LINT_CHECK="0" TRANSIFEX="0" UNIT_TEST="0"
- VERSION="12.0" TESTS="0" LINT_CHECK="0" TRANSIFEX="0" UNIT_TEST="0"
# * about ir_config_parameter_multi_company:
#
# ir_config_parameter_multi_company makes field *value* at ir.config_parameter company_dependent,
@@ -35,7 +35,7 @@
"uninstall_hook": None,

"auto_install": False,
"installable": True,
"installable": False,

# "demo_title": "{MODULE_NAME}",
# "demo_addons": [
@@ -37,7 +37,7 @@
"uninstall_hook": None,

"auto_install": False,
"installable": True,
"installable": False,

# "demo_title": "{MODULE_NAME}",
# "demo_addons": [
@@ -39,3 +39,56 @@ <h3 class="oe_slogan">How to use it ?</h3>
</div>
</section>

<section class="oe_container">
<div class="oe_row oe_spaced">
<div class="oe_span8">
<h2>Need our service?</h2>
<p class="oe_mt32">Contact us by <a href="mailto:apps@it-projects.info">email</a> or fill out <a href="https://www.it-projects.info/page/website.contactus " target="_blank">request form</a></p>
<ul>
<li><a href="mailto:apps@it-projects.info">apps@it-projects.info <i class="fa fa-envelope-o"></i></a></li>
<li><a href="https://www.it-projects.info/page/website.contactus " target="_blank">https://www.it-projects.info/page/website.contactus <i class="fa fa-list-alt"></i></a></li>
<li><a href="https://m.me/itprojectsllc" target="_blank">https://m.me/itprojectsllc <i class="fa fa-facebook-square"></i></a></li>
<li>skype@it-projects.info <i class="fa fa-skype"></i></li>
</ul>
</div>
<div class="oe_span4">
<div class="stamp" style="width:200px;">
<div style="margin-top: 15px;
position: relative;
font-family:'Vollkorn', serif;
font-size: 16px;
line-height: 25px;
text-transform: uppercase;
font-weight: bold;
color: #75526b;
border: 3px dashed #75526b;
float: left;
padding: 4px 12px;
-webkit-transform: rotate(6deg);
-o-transform: rotate(6deg);
-moz-transform: rotate(6deg);
-ms-transform: rotate(6deg);">
Tested on Odoo<br/>12.0 community
</div>
<!--<div style="margin-top: 15px;
position: relative;
font-family:'Vollkorn', serif;
font-size: 16px;
line-height: 25px;
text-transform: uppercase;
font-weight: bold;
color: #75526b;
border: 3px dashed #75526b;
float: left;
padding: 4px 12px;
-webkit-transform: rotate(3deg);
-o-transform: rotate(3deg);
-moz-transform: rotate(3deg);
-ms-transform: rotate(3deg);">
Tested on Odoo<br/>12.0 enterprise
</div>-->
</div>
</div>
</div>
</section>

@@ -25,7 +25,9 @@ Maintainers
-----------
* `IT-Projects LLC <https://it-projects.info>`__

To get a guaranteed support you are kindly requested to purchase the module at `odoo apps store <https://apps.odoo.com/apps/modules/10.0/base_attendance/>`__.
To get a guaranteed support
you are kindly requested to purchase the module
at `odoo apps store <https://apps.odoo.com/apps/modules/12.0/base_attendance/>`__.

Thank you for understanding!

@@ -34,12 +36,14 @@ Maintainers
Further information
===================

Demo: http://runbot.it-projects.info/demo/misc-addons/10.0
Demo: http://runbot.it-projects.info/demo/pos-addons/12.0

HTML Description: https://apps.odoo.com/apps/modules/10.0/base_attendance/
HTML Description: https://apps.odoo.com/apps/modules/12.0/base_attendance/

Usage instructions: `<doc/index.rst>`_

Changelog: `<doc/changelog.rst>`_

Tested on Odoo 10.0 7a63d471edec45a106fef5f783aeb7eaf43447f6
Notifications on updates: `via Atom <https://github.com/it-projects-llc/pos-addons/commits/12.0/base_attendance.atom>`_, `by Email <https://blogtrottr.com/?subscribe=https://github.com/it-projects-llc/pos-addons/commits/12.0/base_attendance.atom>`_

Tested on Odoo 12.0 b0844a4882e7ed089a861da357fed96dfc4abe55
@@ -7,12 +7,12 @@
"category": "Extra Tools",
# "live_test_url": "",
"images": [],
"version": "11.0.1.1.0",
"version": "12.0.1.1.0",
"application": False,

"author": "IT-Projects LLC, Kolushov Alexandr",
"support": "apps@it-projects.info",
"website": "https://it-projects.info/team/KolushovAlexandr",
"website": "https://www.odoo.com/apps/modules/12.0/base_attendance/",
"license": "LGPL-3",
"price": 60.00,
"currency": "EUR",
@@ -3,7 +3,6 @@
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html).

from datetime import datetime

from odoo import models, fields, api, exceptions, _
from odoo.tools import DEFAULT_SERVER_DATETIME_FORMAT
import logging
@@ -48,8 +47,7 @@ def name_get(self):
def _compute_worked_hours(self):
for attendance in self:
if attendance.check_out:
delta = datetime.strptime(attendance.check_out, DEFAULT_SERVER_DATETIME_FORMAT) - datetime.strptime(
attendance.check_in, DEFAULT_SERVER_DATETIME_FORMAT)
delta = attendance.check_out - attendance.check_in
attendance.worked_hours = delta.total_seconds() / 3600.0

@api.constrains('check_in', 'check_out')
@@ -24,7 +24,7 @@ def set_values(self):
config_parameters = self.env["ir.config_parameter"].sudo()
for record in self:
config_parameters.set_param("base_attendance.shift_autocheckout",
record.shift_autocheckout or '0')
record.shift_autocheckout or '0')
config_parameters.set_param("base_attendance.hex_scanner_is_used", record.hex_scanner_is_used)
self.checkout_shifts()

@@ -35,7 +35,7 @@
<field name="users" eval="[(4, ref('base.user_root'))]"/>
</record>

<record id="base.default_user" model="res.users">
<record id="base.user_admin" model="res.users">
<field name="groups_id" eval="[(4,ref('base_attendance.group_hr_attendance_manager'))]"/>
</record>

@@ -67,7 +67,7 @@ <h2>Need our service?</h2>
-o-transform: rotate(-10deg);
-moz-transform: rotate(-10deg);
-ms-transform: rotate(-10deg);">
Tested on Odoo<br/>10.0 community
Tested on Odoo<br/>12.0 community
</div>
<!--<div style="margin-top: 15px;
position: relative;
@@ -84,7 +84,7 @@ <h2>Need our service?</h2>
-o-transform: rotate(0deg);
-moz-transform: rotate(0deg);
-ms-transform: rotate(0deg);">
Tested on Odoo<br/>10.0 enterprise
Tested on Odoo<br/>12.0 enterprise
</div>-->
</div>
</div>
@@ -4,12 +4,13 @@
odoo.define('base_attendance.greeting_message', function (require) {
"use strict";

var AbstractAction = require('web.AbstractAction');
var core = require('web.core');
var Widget = require('web.Widget');

var _t = core._t;


var GreetingMessage = Widget.extend({
var GreetingMessage = AbstractAction.extend({
template: 'BaseAttendanceGreetingMessage',

events: {
@@ -4,12 +4,12 @@
odoo.define('base_attendance.kiosk_confirm', function (require) {
"use strict";

var AbstractAction = require('web.AbstractAction');
var core = require('web.core');
var Widget = require('web.Widget');
var QWeb = core.qweb;


var KioskConfirm = Widget.extend({
var KioskConfirm = AbstractAction.extend({
events: {
"click .o_hr_attendance_back_button": function () {
this.do_action(this.next_action, {clear_breadcrumbs: true});
@@ -4,15 +4,15 @@
odoo.define('base_attendance.kiosk_mode', function (require) {
"use strict";

var AbstractAction = require('web.AbstractAction');
var ajax = require('web.ajax');
var core = require('web.core');
var Widget = require('web.Widget');
var Session = require('web.session');
var local_storage = require('web.local_storage');

var QWeb = core.qweb;

var KioskMode = Widget.extend({
var KioskMode = AbstractAction.extend({
events: {
"click .o_hr_attendance_button_partners": function(){
this.do_action('base_attendance.res_partner_action_kanban_view');
@@ -4,14 +4,14 @@
odoo.define('base_attendance.presence_widgets', function (require) {
"use strict";

var AbstractAction = require('web.AbstractAction');
var core = require('web.core');
var Widget = require('web.Widget');

var QWeb = core.qweb;
var _t = core._t;


var MyAttendances = Widget.extend({
var MyAttendances = AbstractAction.extend({
events: {
"click .o_hr_attendance_sign_in_out_icon": function() {
this.$('.o_hr_attendance_sign_in_out_icon').attr("disabled", "disabled");
@@ -10,7 +10,7 @@ KanbanRecord.include({

_openRecord: function () {
if (this.modelName === 'res.partner' && this.$el.parents('.o_res_partner_attendance_kanban').length) {
// needed to diffentiate : check in/out kanban view of employees <-> standard employee kanban view
// needed to diffentiate : check in/out kanban view of employees <-> standard employee kanban view
var action = {
type: 'ir.actions.client',
name: 'Confirm',
@@ -30,16 +30,23 @@ odoo.define('base_attendance.tour', function (require) {
}

var steps = [{
trigger: 'a.oe_menu_toggler:contains("Attendance")',
trigger: 'a.full[href="#"]',
content: _t("Click to open app list"),
position: 'bottom',
}, {
trigger: 'a.dropdown-item.o_app:contains("Attendance")',
content: _t("Click to enter menu attendances"),
position: 'bottom',
}, {
trigger: 'a.oe_menu_leaf:contains("Kiosk")',
trigger: 'a.dropdown-toggle.o-no-caret.o_menu_header_lvl_1:contains("Attendance")',
content: _t("Click to open Manage Attendances menu"),
}, {
trigger: 'a.dropdown-item.o_menu_entry_lvl_2:contains("Kiosk")',
content: _t("Click to enter Kiosk"),
}];

steps = steps.concat(partner_check_in_out("Laith Jubair", 'red'));
steps = steps.concat(partner_check_in_out("Laith Jubair", 'green'));
steps = steps.concat(partner_check_in_out("Brandon Freeman", 'red'));
steps = steps.concat(partner_check_in_out("Brandon Freeman", 'green'));

tour.register('test_kiosk_tour', { test: true, url: '/web' }, steps);
});
Oops, something went wrong.

0 comments on commit b7a0684

Please sign in to comment.
You can’t perform that action at this time.