Giter Club home page Giter Club logo

timesheet's Introduction

Runboat Pre-commit Status Build Status codecov Translation Status

timesheet

TODO: add repo description.

Available addons

addon version maintainers summary
crm_timesheet 14.0.1.0.0 CRM Timesheet
hr_employee_product 14.0.1.0.0 Product is an employee
hr_timesheet_activity_begin_end 14.0.1.0.2 Timesheet Activities - Begin/End Hours
hr_timesheet_analysis 14.0.1.0.0 alexey-pelykh Analyze tracked time in Graph views
hr_timesheet_employee_analytic_tag 14.0.1.0.0 victoralmau Hr Timesheet Employee Analytic Tag
hr_timesheet_purchase_order 14.0.1.1.0 dessanhemrayev aleuffre renda-dev HR Timesheet Purchase Order
hr_timesheet_report 14.0.1.0.1 alexey-pelykh Generate Timesheet Report from Task Logs
hr_timesheet_report_milestone 14.0.1.0.0 Extend Timesheet by adding Milestone
hr_timesheet_sheet 14.0.1.4.3 Timesheet Sheets, Activities
hr_timesheet_sheet_activity 14.0.1.0.0 Automatic activities related to submission and review of timesheet sheets
hr_timesheet_sheet_attendance 14.0.1.0.0 HR Timesheet Sheet Attendance
hr_timesheet_sheet_autodraft 14.0.1.0.0 Automatically draft a Timesheet Sheet for every time entry that does not have a relevant Timesheet Sheet existing.
hr_timesheet_sheet_no_create 14.0.1.0.0 Avoid creation of projects and tasks in timesheet sheet lines
hr_timesheet_sheet_period 14.0.1.0.0 HR Timesheet Sheet based on Payroll Period
hr_timesheet_sheet_policy_department_manager 14.0.1.0.0 Allows setting Department Manager as Reviewer
hr_timesheet_sheet_policy_project_manager 14.0.1.0.0 Allows setting Project Manager as Reviewer
hr_timesheet_task_domain 14.0.1.0.0 Limit task selection to tasks on currently-selected project
hr_timesheet_task_required 14.0.1.0.0 Set task on timesheet as a mandatory field
hr_timesheet_task_stage 14.0.1.1.0 Open/Close task from corresponding Task Log entry
hr_timesheet_time_restriction 14.0.1.0.1 Restrictions on the creation of time sheets for past dates
hr_timesheet_time_type 14.0.1.0.1 Ability to add time type in timesheet lines.
hr_utilization_analysis 14.0.2.0.1 alexey-pelykh View Utilization Analysis from Task Logs.
hr_utilization_report 14.0.1.0.3 Generate Utilization Report from Task Logs
project_task_stage_allow_timesheet 14.0.1.0.0 Allows to tell that a task stage is opened for timesheets.
sale_timesheet_budget 14.0.1.0.0 victoralmau Sale timesheet budget
sale_timesheet_line_exclude 14.0.1.0.1 Exclude Timesheet Line from Sale Order
sale_timesheet_order_line_no_update 14.0.1.1.4 ilyasProgrammer Sale Timesheet Order Line no Update
sale_timesheet_order_line_sync 14.0.1.0.0 Propagate task order line in not invoiced timesheet lines
sale_timesheet_rounded 14.0.1.0.1 Round timesheet entries amount based on project settings.

Licenses

This repository is licensed under AGPL-3.0.

However, each module can have a totally different license, as long as they adhere to Odoo Community Association (OCA) policy. Consult each module's __manifest__.py file, which contains a license key that explains its license.


OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

timesheet's People

Contributors

alexey-pelykh avatar astirpe avatar bosd avatar davejames avatar dessanhemrayev avatar douglascstd avatar dsolanki-initos avatar francesco-ooops avatar fshah-initos avatar ilyasprogrammer avatar jordibforgeflow avatar josepmy avatar marylla avatar miquelrforgeflow avatar mymage avatar oca-git-bot avatar oca-transbot avatar oca-travis avatar pedrobaeza avatar pedrocasi avatar primes2h avatar remi-filament avatar schhatbar-initos avatar sergiocorato avatar simonstromb avatar victoralmau avatar weblate avatar yajo avatar ypapouin avatar yvesldff avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

timesheet's Issues

[12.0] dump in performing "hr_timesheet_sheet"

Migration to version 11.0

Todo

https://github.com/OCA/maintainer-tools/wiki/Migration-to-version-11.0

Modules to migrate

  • crm_phonecall_timesheet
  • crm_timesheet - By @cubells - #126
  • hr_attendance_analysis
  • hr_timesheet_activity_begin_end
  • hr_timesheet_fulfill
  • hr_timesheet_holidays
  • hr_timesheet_improvement
  • hr_timesheet_print
  • hr_timesheet_reminder
  • hr_timesheet_sheet_change_period
  • hr_timesheet_sheet_week_start_day -> hr_timesheet_sheet_week - By @lreficent - #136
  • hr_timesheet_task_required - By @benwillig - #120

[11.0][BUG] hr_timesheet_sheet: lines disappearing in a confirmed timesheet sheet

Steps to reproduce:

  • Create a timesheet sheet.
  • Add one timesheet line specifying a task (TaskA). The line is now listed in the Details tab.
  • Save the timesheet sheet.
  • Click on button Submit to Manager. (Optionally you can also approve it). Verify that the timesheet sheet is not in status 'draft' anymore.
  • Open the task (TaskA).
  • Edit the task. In the Timesheets tab, change the amount of time (field Duration) of the line. Save the task.

Issue N.1

  • the system allows to edit the field Duration of a timesheet line. It should be NOT possible.

Issue N.2

  • The expected error message 'You cannot modify an entry in a confirmed timesheet sheet.' is not displayed to the user.

Issue N.3

  • In the timesheet sheet, the line with a task (TaskA) is not listed anymore in the Details tab.

[11.0][BUG] hr_timesheet_sheet: Details tab not updated when changing Employee

Create a timesheet sheet:

Employee: Pieter Parker
Timesheet Period: from 03/18/2019 to 03/24/2019 (Week 12)

Add a line:

03/18/2019	Data Import/Export Plugin		Test1	01:00

Save. The data in the Summary tab is now aligned with Details tab.

Edit and change Employee: for example choose Demo User. Save.

Result:
Summary tab is empty (ok). Details tab is not updated and still displays the line (not ok).

Expected:
Details tab should be updated.

Is there a way to stop overbooking on the tasks?

My problem is that I can overbook the time when I write my hours to a task.
When I get to the time limit, it shows like -2.00hours in the "remaining hours" field.
How can I set this, that the employee can't overbook the time I set.

I need a modul or a way to stop the overbooking on the projects. anyone have an idea?

Timesheets: calculate hours based on their invoiceability

We use timesheets with tasks and add time and define the invoiceability (0-100%)
The task statistics should show the invoicable hours and not the total number of hours (or both).
On project level the same: especially if there are "prepaid service units", only the accountable hours should be taken into account for calculating the "remaining units".

The calculations now are wrong and don't fullfil minimal requirements for a good timesheet management.

Project & Task Closing / Timesheets

Version: 11.0

At the moment, during the timesheet encoding, user can select any project marked with "Allow timesheet = True". After selecting the project, user can select any task of the project.

The problem is that, depending on the task's stage, the task could have been closed or cancelled. So you might want to forbid user to encode timesheets for those tasks.

Proposed design:

  • Add a "Allow timesheet" field on the task stage (project.task.type)
  • Add a filter domain on the task (on the account.analytic.line task_id field) which only retrieves task linked to a stage which allow timesheet

Overtime Request Failure in Odoo 12

Hello Folks,
Please assist with this issue in odoo 12 when trying to create new overtime request, it pops up this error.

Odoo Server Error
Traceback (most recent call last):
File "C:\Bitnami\odoo-12.0.20181018-1\apps\odoo\Lib\site-packages\odoo-12.0.post20181018-py3.7.egg\odoo\http.py", line 653, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "C:\Bitnami\odoo-12.0.20181018-1\apps\odoo\Lib\site-packages\odoo-12.0.post20181018-py3.7.egg\odoo\http.py", line 312, in _handle_exception
raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
File "C:\Bitnami\odoo-12.0.20181018-1\apps\odoo\Lib\site-packages\odoo-12.0.post20181018-py3.7.egg\odoo\tools\pycompat.py", line 87, in reraise
raise value
File "C:\Bitnami\odoo-12.0.20181018-1\apps\odoo\Lib\site-packages\odoo-12.0.post20181018-py3.7.egg\odoo\http.py", line 695, in dispatch
result = self._call_function(**self.params)
File "C:\Bitnami\odoo-12.0.20181018-1\apps\odoo\Lib\site-packages\odoo-12.0.post20181018-py3.7.egg\odoo\http.py", line 344, in _call_function
return checked_call(self.db, *args, **kwargs)
File "C:\Bitnami\odoo-12.0.20181018-1\apps\odoo\Lib\site-packages\odoo-12.0.post20181018-py3.7.egg\odoo\service\model.py", line 97, in wrapper
return f(dbname, *args, **kwargs)
File "C:\Bitnami\odoo-12.0.20181018-1\apps\odoo\Lib\site-packages\odoo-12.0.post20181018-py3.7.egg\odoo\http.py", line 337, in checked_call
result = self.endpoint(*a, **kw)
File "C:\Bitnami\odoo-12.0.20181018-1\apps\odoo\Lib\site-packages\odoo-12.0.post20181018-py3.7.egg\odoo\http.py", line 938, in call
return self.method(*args, **kw)
File "C:\Bitnami\odoo-12.0.20181018-1\apps\odoo\Lib\site-packages\odoo-12.0.post20181018-py3.7.egg\odoo\http.py", line 517, in response_wrap
response = f(*args, **kw)
File "C:\Bitnami\odoo-12.0.20181018-1\apps\odoo\Lib\site-packages\odoo-12.0.post20181018-py3.7.egg\odoo\addons\web\controllers\main.py", line 962, in call_kw
return self._call_kw(model, method, args, kwargs)
File "C:\Bitnami\odoo-12.0.20181018-1\apps\odoo\Lib\site-packages\odoo-12.0.post20181018-py3.7.egg\odoo\addons\web\controllers\main.py", line 954, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "C:\Bitnami\odoo-12.0.20181018-1\apps\odoo\Lib\site-packages\odoo-12.0.post20181018-py3.7.egg\odoo\api.py", line 749, in call_kw
return _call_kw_multi(method, model, args, kwargs)
File "C:\Bitnami\odoo-12.0.20181018-1\apps\odoo\Lib\site-packages\odoo-12.0.post20181018-py3.7.egg\odoo\api.py", line 736, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "C:\Bitnami\odoo-12.0.20181018-1\apps\odoo\Lib\site-packages\odoo-12.0.post20181018-py3.7.egg\odoo\models.py", line 5351, in onchange
record._onchange_eval(name, field_onchange[name], result)
File "C:\Bitnami\odoo-12.0.20181018-1\apps\odoo\Lib\site-packages\odoo-12.0.post20181018-py3.7.egg\odoo\models.py", line 5273, in _onchange_eval
method_res = method(self)
File "C:\Bitnami\odoo-12.0.20181018-1\apps\odoo\Lib\site-packages\odoo-12.0.post20181018-py3.7.egg\odoo\addons\hr_overtime_request\models\hr_overtime.py", line 33, in onchange_employee_id
print("onchange_employee_idertcyubhijnok",onchange_employee_id)
NameError: name 'onchange_employee_id' is not defined

RuntimeError: maximum recursion depth exceeded

timesheet_task plugin

Since latest Pull from odoo 8.0 master, I run into "RuntimeError: maximum recursion depth exceeded" every time when I

  • add a task to a project
  • track time for a task using HR-> My current timesheet

when I disable the timesheet_task plugin everything is working without problems. The stack trace is very long (as you might imagine), but the interesting part is:
...
File "/opt/odoo/odoo-server/addons/timesheet_task/project_task.py", line 77, in _store_set_values
project.write({'parent_id': project.parent_id.id})
File "/opt/odoo/odoo-server/openerp/api.py", line 239, in wrapper
return new_api(self, _args, *_kwargs)
File "/opt/odoo/odoo-server/openerp/api.py", line 546, in new_api
result = method(self._model, cr, uid, self.ids, _args, *_kwargs)
File "/opt/odoo/odoo-server/addons/project/project.py", line 546, in write
return super(project, self).write(cr, uid, ids, vals, context=context)
File "/opt/odoo/odoo-server/openerp/api.py", line 241, in wrapper
return old_api(self, _args, *_kwargs)
File "/opt/odoo/odoo-server/addons/mail/mail_thread.py", line 434, in write
result = super(mail_thread, self).write(cr, uid, ids, values, context=context)
File "/opt/odoo/odoo-server/openerp/api.py", line 241, in wrapper
return old_api(self, _args, *_kwargs)
File "/opt/odoo/odoo-server/openerp/api.py", line 363, in old_api
result = method(recs, _args, *_kwargs)
File "/opt/odoo/odoo-server/openerp/models.py", line 3768, in write
self._write(old_vals)
File "/opt/odoo/odoo-server/openerp/api.py", line 239, in wrapper
return new_api(self, _args, *_kwargs)
File "/opt/odoo/odoo-server/openerp/api.py", line 546, in new_api
result = method(self._model, cr, uid, self.ids, _args, *_kwargs)
File "/opt/odoo/odoo-server/openerp/models.py", line 3931, in _write
self.pool[table].write(cr, user, nids, v, context)
File "/opt/odoo/odoo-server/openerp/api.py", line 241, in wrapper
return old_api(self, _args, *_kwargs)
File "/opt/odoo/odoo-server/addons/project/project.py", line 1237, in write
return super(account_analytic_account, self).write(cr, uid, ids, vals, context=context)
File "/opt/odoo/odoo-server/openerp/api.py", line 241, in wrapper
return old_api(self, _args, *_kwargs)
File "/opt/odoo/odoo-server/addons/mail/mail_thread.py", line 434, in write
result = super(mail_thread, self).write(cr, uid, ids, values, context=context)
File "/opt/odoo/odoo-server/openerp/api.py", line 241, in wrapper
return old_api(self, _args, *_kwargs)
File "/opt/odoo/odoo-server/openerp/api.py", line 363, in old_api
result = method(recs, _args, *_kwargs)
File "/opt/odoo/odoo-server/openerp/models.py", line 3768, in write
self._write(old_vals)
File "/opt/odoo/odoo-server/openerp/api.py", line 239, in wrapper
return new_api(self, _args, *_kwargs)
File "/opt/odoo/odoo-server/openerp/api.py", line 546, in new_api
result = method(self._model, cr, uid, self.ids, _args, *_kwargs)
File "/opt/odoo/odoo-server/openerp/models.py", line 4010, in _write
self.pool[model_name]._store_set_values(cr, user, todo, fields_to_recompute, context)
File "/opt/odoo/odoo-server/openerp/api.py", line 241, in wrapper
return old_api(self, _args, *_kwargs)
File "/opt/odoo/odoo-server/addons/timesheet_task/project_task.py", line 77, in _store_set_values
project.write({'parent_id': project.parent_id.id})
...

I looked into project_task.py, line 77, which I don't understand completely :( but when I disable the for-statement beginning in line 74 the recursion-bug won't pop up, but I don´t know what I am missing now.

#for row in self.browse(cr, SUPERUSER_ID, ids, context=context):
#            if row.project_id:
#                project = row.project_id
#                project.write({'parent_id': project.parent_id.id})

What is this code snipped for? How to prevent infinite recursions with the newest odoo 8.0 master codebase?

I also added some logging ant row.project_id is always the same in my case (project.project(37,)) when adding a new task.

Thank you for any help / hints!
Steve

[8.0] Add partner_id in account.analytic.line

Hello,

I would like to know opinnion / discuss solutions with resposibles of this project.

As you know Odoo v9 adds partner_id in account.analytic.line.

I'm talking with @pedrobaeza to make a module which add this information also in v8

Have any of you thought about this? For me is very common to have a only one account.analytic.account for many customers.

Thanks
Regards
Rafael

(cc @eLBati @yvaucher @guewen @dreispt )

reporting: statistics on timesheets

the sum is not correct.
some attendance time is not added if there are different entries on a day,
even if the constraints are fullfilled!

Migration to version 12.0

Todo

https://github.com/OCA/maintainer-tools/wiki/Migration-to-version-12.0

Modules to migrate

timesheet_task

Fresh install (OCA odoo), when trying to encode work done:

Traceback (most recent call last):
  File "/opt/openerp/fullodoo/__base__/odoo/openerp/http.py", line 530, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/opt/openerp/fullodoo/__base__/odoo/openerp/http.py", line 567, in dispatch
    result = self._call_function(**self.params)
  File "/opt/openerp/fullodoo/__base__/odoo/openerp/http.py", line 303, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/opt/openerp/fullodoo/__base__/odoo/openerp/service/model.py", line 113, in wrapper
    return f(dbname, *args, **kwargs)
  File "/opt/openerp/fullodoo/__base__/odoo/openerp/http.py", line 300, in checked_call
    return self.endpoint(*a, **kw)
  File "/opt/openerp/fullodoo/__base__/odoo/openerp/http.py", line 796, in __call__
    return self.method(*args, **kw)
  File "/opt/openerp/fullodoo/__base__/odoo/openerp/http.py", line 396, in response_wrap
    response = f(*args, **kw)
  File "/opt/openerp/fullodoo/__base__/odoo/addons/web/controllers/main.py", line 936, in call_kw
    return self._call_kw(model, method, args, kwargs)
  File "/opt/openerp/fullodoo/__base__/odoo/addons/web/controllers/main.py", line 928, in _call_kw
    return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
  File "/opt/openerp/fullodoo/__base__/odoo/openerp/api.py", line 241, in wrapper
    return old_api(self, *args, **kwargs)
  File "/opt/openerp/fullodoo/__base__/odoo/openerp/api.py", line 363, in old_api
    result = method(recs, *args, **kwargs)
  File "/opt/openerp/fullodoo/__base__/odoo/openerp/models.py", line 5858, in onchange
    record._onchange_eval(name, field_onchange[name], result)
  File "/opt/openerp/fullodoo/__base__/odoo/openerp/models.py", line 5776, in _onchange_eval
    method_res = getattr(self._model, method)(*args)
  File "/opt/openerp/fullodoo/__base__/odoo/openerp/api.py", line 241, in wrapper
    return old_api(self, *args, **kwargs)
TypeError: on_change_user_id() takes at least 6 arguments (5 given)

If you need any further data, just tell.

when adding two lines using the task summary and test it via timesheet we get error

Traceback (most recent call last):
File "/opt/odoo/openerp/http.py", line 537, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/opt/odoo/openerp/http.py", line 574, in dispatch
result = self._call_function(*_self.params)
File "/opt/odoo/openerp/http.py", line 310, in _call_function
return checked_call(self.db, *args, *_kwargs)
File "/opt/odoo/openerp/service/model.py", line 113, in wrapper
return f(dbname, _args, *_kwargs)
File "/opt/odoo/openerp/http.py", line 307, in checked_call
return self.endpoint(_a, *_kw)
File "/opt/odoo/openerp/http.py", line 803, in call
return self.method(_args, *_kw)
File "/opt/odoo/openerp/http.py", line 403, in response_wrap
response = f(_args, *_kw)
File "/opt/odoo/addons/web/controllers/main.py", line 944, in call_kw
return self._call_kw(model, method, args, kwargs)
File "/opt/odoo/addons/web/controllers/main.py", line 936, in _call_kw
return getattr(request.registry.get(model), method)(request.cr, request.uid, _args, *_kwargs)
File "/opt/odoo/openerp/api.py", line 241, in wrapper
return old_api(self, _args, *_kwargs)
File "/opt/odoo/addons/analytic/analytic.py", line 116, in name_get
res.append((id, self._get_one_full_name(elmt)))
File "/opt/odoo/addons/analytic/analytic.py", line 134, in _get_one_full_name
return parent_path + elmt.name
TypeError: cannot concatenate 'str' and 'bool' objects

[8.0] ¿Same description means same functionality? timesheet_task = hr_timesheet_task

This two modules say exactly the same in description. Do they have the same functionality?

They have diferent functionality so the must have diferent description, and diferect usage section.

https://github.com/OCA/hr-timesheet/tree/8.0/timesheet_task

'description': """
Replace task work items (project.task.work) linked to task with
timesheet lines (hr.analytic.timesheet).

timesheet_tast: _Analytic Timesheet In Task_

https://github.com/OCA/hr-timesheet/tree/8.0/hr_timesheet_task

'description': """Replace project.task.work items linked to task
with hr.analytic.timesheet""",

hr_timesheet_tast: _Task in time sheet_

Please @anthony-muschang @charbeljc review and change README.rst. Thanks a lot.

[11.0] hr_timesheet_sheet: creates trash entries in hr_timesheet_sheet_line table

I've tried your module and it works great!

Expect one thing: I experienced that if I discard a timesheet, that there're still entries without sheet_id in the line table. It's also adding empty lines (hr.timesheet.line) on a page reload.

After I saved the timesheet there're still two entries for every day mapped to the according sheet in the table (+ the old unmapped entries).

Is this the normal behaviour?

hr_attendance_analysis error on installation

When I try to install hr_attendance_analysis on current V8 I get this error, what can I do?

file "/opt/odoo/sources/odoo/openerp/models.py", line 1266, in _validate_fields
    raise ValidationError('\n'.join(errors))
ParseError: "ValidateError
Field(s) `arch` failed against a constraint: Invalid view definition

Error details:
Field `day` does not exist

Error context:
View `hr.attendance.analysis`
[view_id: 924, xml_id: n/a, model: hr.attendance, parent_id: n/a]" while parsing /opt/odoo/additional_addons/hr_attendance_analysis/hr_attendance_view.xml:19, near
<record id="view_attendance_analysis" model="ir.ui.view">
            <field name="name">hr.attendance.analysis</field>
            <field name="model">hr.attendance</field>
            <field name="priority" eval="17"/>
            <field name="arch" type="xml">
                <tree string="Employee attendances analysis">
                    <field name="employee_id"/>
                    <field name="name" string="Start date time"/>
                    <field name="end_datetime"/>
                    <field name="duration" sum="Total hours" widget="float_time"/>
                    <field name="outside_calendar_duration" sum="Overtime" widget="float_time"/>
                    <field name="inside_calendar_duration" sum="Within working schedule" widget="float_time"/>
                    <field name="day" invisible="1"/>
                </tree>
            </field>
        </record>

hr_timesheet_sheet: test_4 fails on specific day

It seems that when executed on Sunday, 19:00 GMT+2, it fails. It happens due to:

  • timesheet_1 gets removed due to it's empty and name is '/'
  • timesheet_3 does not get counted in since it's already next week so not counted in when test is performed on last day of the current week

Thus test has to be adjusted

Any user can 'Approve' himself after submitting to the 'manager'

Odoo11
I have tried all, even installing the timesheet and users complete new. But it's always the same.
After pressing the button "Submitting to the Manager' the Manager of course gets the ability to agree, but the user can do it same way directly afterwards with pressung the button 'Approve'.
But the user hat NO manager rights.

By the way.....same happens on 'Try me on Runbot'....the DEMO user also get the 'approve' button, after sending the 'approve request to the manager'. If used, then the timesheet is done and the manager do not get any message for a timesheet approve for this user. (screenshots below)
submit to manager screen
after submit to manager the demo user can approve himself
approved and ready -no messages anymore to the manager

[RFC] hr_timesheet_sheet: per-project (via PM) mode

Right now hr_timesheet_sheet is only suitable for approving timesheets by the line manager, while it would be good to have an option for a project manager to approve respective part of the sheet. I've discussed this with @jbeficent already and here are conclusions from that talk:

  • for employee, flow should be the same, regardless of how many people approve which part of the sheet .
  • treating sheet entirely non-approved until all relevant people approved won't work since that would be a potential bottleneck where none is required, thus base_tier_validation isn't a solution either
  • there's some dynamic report in Enterprise version related to the project that would be great to have in community as well.

After giving this topic some thought, here are more conclusions:

  • it won't be appropriate to introduce state into account.analytic.line, since that model is more than a timesheet entry
  • it would worth introducing timesheet_state on per-line basis
  • It would worth introducing timesheet_reviewer on per-line basis
  • it would be possible to make state of sheet to be computed of all(timesheet_state)
  • it would be very hard to inject such feature into hr_timesheet_sheet as a side module w/o preparing some hooks before
  • it would be crazy to reinvent the hr_timesheet_sheet just because of that.

Idea of the per-project approval is simple: if project manager is set on the project, and "Approve Timesheets by PM" for that project is True - PM should approve lines relevant to the project. Otherwise - line manager (from HR info) should approve those.

Taking all of that into account, I'd like to ask for more input and ideas how to achieve that. Reason: for service-like verticals such approval is a must, since after some size line manager lacks needed information about all projects to be able to validate the timesheet.

@pedrobaeza @jbeficent please add your vision and CC those who might have one

[8.0] timesheet_task - cannot use api.depends('work_ids') in project.task

It is currently not possible to define a computed field on project.task with a @api.depends('work_ids')

This seems to occure because work_ids is define with comodel_name hr.analytic.timesheet wheras task_id is defined on account.analytic.line

The error raise is the following where trying to create a timesheet line:

  File ".../parts/server/openerp/api.py", line 463, in new_api 
    result = method(self._model, cr, uid, *args, **kwargs)
  File ".../parts/server/openerp/models.py", line 4255, in _create
    recs.modified(self._fields)
  File ".../parts/server/openerp/api.py", line 239, in wrapper
    return new_api(self, *args, **kwargs)
  File ".../parts/server/openerp/models.py", line 5677, in modified
    spec += self._fields[fname].modified(self)
  File ".../parts/server/openerp/fields.py", line 1493, in modified
    spec = super(_Relational, self).modified(records)
  File ".../parts/server/openerp/fields.py", line 960, in modified
    target = env[field.model_name].search([(path, 'in', records.ids)])
  File ".../parts/server/openerp/api.py", line 239, in wrapper
    return new_api(self, *args, **kwargs)
  File ".../parts/server/openerp/api.py", line 463, in new_api
    result = method(self._model, cr, uid, *args, **kwargs)
  File ".../parts/server/openerp/models.py", line 1645, in search
    return self._search(cr, user, args, offset=offset, limit=limit, order=order, context=context, count=count)
  File ".../parts/server/openerp/api.py", line 241, in wrapper
    return old_api(self, *args, **kwargs)
  File ".../parts/server/openerp/models.py", line 4663, in _search
    query = self._where_calc(cr, user, args, context=context)
  File ".../parts/server/openerp/api.py", line 241, in wrapper
    return old_api(self, *args, **kwargs)
  File ".../parts/server/openerp/models.py", line 4474, in _where_calc
    e = expression.expression(cr, user, domain, self, context)
  File ".../parts/server/openerp/osv/expression.py", line 647, in __init__
    self.parse(cr, uid, context=context)
  File ".../parts/server/openerp/osv/expression.py", line 958, in parse
    push(create_substitution_leaf(leaf, ('id', o2m_op, select_distinct_from_where_not_null(cr, column._fields_id, comodel._table)), model))
  File ".../parts/server/openerp/osv/expression.py", line 431, in select_distinct_from_where_not_null
    cr.execute('SELECT distinct("%s") FROM "%s" where "%s" is not null' % (select_field, from_table, select_field))
  File ".../parts/server/openerp/sql_db.py", line 158, in wrapper
    return f(self, *args, **kwargs)
  File ".../parts/server/openerp/sql_db.py", line 234, in execute
    res = self._obj.execute(query, params)
ProgrammingError: column "task_id" does not exist
LINE 1: SELECT distinct("task_id") FROM "hr_analytic_timesheet" wher...

Anything to check if it doesn't work?

module: hr_timesheet_improvement
version: 8.0

Steps to reproduce

  • add additional attendance in the past

Current behavior

constraint check failes, when i try to add acheck-in in the past but after the last entry of that day

Expected behavior

it's possible to add a check-in and a check-out at the end of any day in the past

[11.0][BUG] hr_timesheet_sheet: resetting to draft removes some timesheet lines

Just reproduced on Runbot:

Created a new timesheet sheet with "Timesheet Period" = 02/18/2019 to 02/24/2019 (week8)

In the summary tab added the following projects/tasks:

  • Research & Development / User interface improvements
  • E-Learning Integration / Deploy and review on live system
  • Data Import/Export Plugin / Modifications asked by the customer

Entered 1:00 of time for each of the tasks above, so that in the details tab we have the following situation:

02/21/2019  Research & Development	User interface improvements		/  01:00
02/20/2019  E-Learning Integration	Deploy and review on live system	/  01:00
02/19/2019  Data Import/Export Plugin	Modifications asked by the customer	/  01:00
  • Clicked on Submit to manager
  • Clicked on Refuse

Now the details tab contains only the following line:

02/21/2019	Research & Development	User interface improvements	 /	03:00

Issue is that relevant information about projects and tasks is lost.

Also: what is the reason of merging lines when resetting to draft? If there's no valid reason, can't we just avoid the merging at all?

I propose to avoid the merging of lines when resetting to draft.

Field "Other partner" empty when registering hours from Registered Calls

module: crm_timesheet
version: 8.0

Steps to reproduce
1- enter in the customer form
2- click on calls
3- fill the call content
4- let the clock run fo r a while
5- stop the clock

Current behavior
in HR/Timesheet activities/ Other partner field remains empty
2015-10-05 17_08_05-devel - customers - odoo
2015-10-05 17_08_31-devel - logged calls - odoo
2015-10-05 17_09_49-devel - timesheet activities - odoo

Expected behavior

Partner name in Other Partner field and contact
2015-10-05 17_12_01-devel - timesheet activities - odoo

[8.0] hr_timesheet_improvement - What's mean DESC order

module: hr_timesheet_improvement
version: 8.0

Steps to reproduce

  • Go To Human Resources - > Time Tracking - > Timesheet activities
  • Check how are ordered Timesheet activities (hr.analytic.timesheet)

Current behavior

  • You can check they have DESC order by date (without time)
  • If you have 100 hundred per day, lines are ordered DESC order by?

Expected behavior

As described in README.rst

Modifies timesheet behavior:
Ensure a DESC order on timesheet lines

DESC order by name / by date / by Analytic Account?

hr_timesheet_task 10.0 My Current Timesheet does not show "Total" per lines

After installing this module ( hr_timesheet_task 10.0 ), I do get the Tasks on My Current Timesheet but I lose the total sums at the end of each line. The whole Total is still calculated and showed correctly. Check picture. Maybe I am missing something or this is a bug? My Odoo is fresh 10.0 community.

image

[11.0] hr_timesheet_sheet prevents invoice validation

https://github.com/OCA/hr-timesheet/blob/5e58e438a845fd706d75f14117ba4adea5062925/hr_timesheet_sheet/models/account_analytic_line.py#L60

The _check_state on method does not allow validation of invoices if the timesheet sheet is not in draft state. That seems fine. But on sale_timesheet addon's _compute_timesheet_revenue method of account.invoice model, the analytic lines's timesheet_revenue and timesheet_invoice_id fields are updated:

Here: https://github.com/odoo/odoo/blob/21e44d472dba0810bb7e8cc1d74d29ec3456ec95/addons/sale_timesheet/models/account_invoice.py#L113

And here: https://github.com/odoo/odoo/blob/21e44d472dba0810bb7e8cc1d74d29ec3456ec95/addons/sale_timesheet/models/account_invoice.py#L93

I can see that the _check_state method checks if there is a skip_check_state entry on context. But I can't find that it is been used to avoid the current behavior.

Now, I'm not a hundred percent sure about it, but I assume this is not the intended behavior. If I'm right and get some feedback, I'll try and fix it myself.

hr_timesheet_sheet: v11 vs v12

@mreficent @astirpe - shall we assemble a list of fixes/patches that need to be ported from v11 to v12 and backwards? As I don't feel confident that nothing will be lost/forgotten.

P.S. Should we have a Slack or other similar place to sync-up?

Summary:

  • submit to manager in multicompany: merged into v11 and v12
  • company on projects and employees: merged into V11 and V12
  • fix constraint for company_id in lines: merged into v11 and v12
  • texts & formatting / sheet name: #183 in v12 (+ fix in #222), not backported to v11
  • unlink only generated AAL: #184 in v12 and v11 got it via #196
  • more extendability & cleanup: #155 in v12, partially ported to v11 via #237
  • various improvements: #237 in v11 (previously #233), not ported to v12

[NEW] Control and lock timesheets

Dear community,

this is a feature request according to https://odoo-community.org/page/specify

My idea:

  • After a period of time was invoiced the timesheet should be locked. Changes/deletes should not be possible anymore.
  • It should not be possible to log more hours than the offer was created for (no overbooking).
  • It should be possible to exclude the project root from time logging, especially if there are subtasks.

All options should be customizable in default settings general project settings, for a project and for each project task

Another idea:

  • It would helpful if all tasks where I'm assigned, allowed to book, enough budget, project is still active would be already visible when I go to timesheet application

Next one:

  • It would be nice to receive an alert in case of empty budget, the budget is going to be empty (customizable limit)

Kind regards
Jo

[8.0] hr_timesheet_task - Error in runbot hr-timesheet when adding work in task

In https://runbot.odoo-community.org/runbot/repo/github-com-oca-hr-timesheet-117

  • Create a project
  • Create a task
  • In the task click on "Add an item" to add time of work
  • Get this error:

" File "/srv/openerp/instances/openerp-oca-runbot/parts/odoo-extra/runbot/static/build/3111498-8-0-d13d5c/openerp/api.py", line 241, in wrapper
return old_api(self, _args, *_kwargs)
TypeError: on_change_user_id() takes at least 6 arguments (5 given)"

KeyError on Installation

I'm trying to install hr_timesheet_sheet on Odoo v11. When I click on install I get a KeyError for date_start. Please see the attached. I've installed the required web_widget_x2many_2d_matrix module.

screenshot 2019-01-29 at 14 09 18

[11.0][BUG] hr_timesheet_sheet: wrong amount when reducing time

Create a new timesheet sheet this way:

Timesheet Period:	03/11/2019 to 03/17/2019 (Week 11)

03/13/2019	Data Import/Export Plugin		test1	01:00
03/13/2019	Data Import/Export Plugin		test2	02:00
03/13/2019	Data Import/Export Plugin		test3	03:00

Go to summary tab and change value of "Wed Mar 13" from 6.0 to 1.0. Save.

Issue:

  • In summary tab the value changes to 3.0 (instead of 1.0).
  • In details tab the amounts are wrong.

[11.0][BUG] hr_timesheet_sheet: sheet_id not correct when modifying the timesheet

Create a new fresh DB and install hr_timesheet_sheet.

Create a weekly timesheet sheet for current week, eg.: 02/25/2019 to 03/03/2019 (Week9).
Create a weekly timesheet sheet for previous week, eg.: 02/18/2019 to 02/24/2019 (Week8).

Go to "Timesheet -> All Timesheets".
Create a new timesheet (account.analytic.line) with the date of today (eg.: 02/25/2019). Save.
Edit the timesheet and set a date of previous week (eg.: 02/18/2019). Save.

Open the Week9 weekly sheet: the timesheet line is displayed in the Details tab (should be not).
Open the Week8 weekly sheet: the timesheet line is displayed in the Summary tab but is not displayed in the Details tab.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.