RemiFr82
1 week ago
10 changed files with 123 additions and 213 deletions
-
71survey_input_dates/i18n/fr.po
-
14survey_input_dates/models/survey_survey.py
-
55survey_input_dates/models/survey_user_input.py
-
65survey_input_dates/views/survey_user_input.xml
-
0survey_input_duration/__init__.py
-
14survey_input_duration/__manifest__.py
-
36survey_input_duration/i18n/fr.po
-
1survey_input_duration/models/__init__.py
-
22survey_input_duration/models/survey_user_input.py
-
58survey_input_duration/views/survey_user_input.xml
@ -1,71 +0,0 @@ |
|||||
# Translation of Odoo Server. |
|
||||
# This file contains the translation of the following modules: |
|
||||
# * survey_input_dates |
|
||||
# |
|
||||
msgid "" |
|
||||
msgstr "" |
|
||||
"Project-Id-Version: Odoo Server 12.0\n" |
|
||||
"Report-Msgid-Bugs-To: \n" |
|
||||
"POT-Creation-Date: 2023-02-28 20:38+0000\n" |
|
||||
"PO-Revision-Date: 2023-02-28 20:38+0000\n" |
|
||||
"Last-Translator: <>\n" |
|
||||
"Language-Team: \n" |
|
||||
"MIME-Version: 1.0\n" |
|
||||
"Content-Type: text/plain; charset=UTF-8\n" |
|
||||
"Content-Transfer-Encoding: \n" |
|
||||
"Plural-Forms: \n" |
|
||||
|
|
||||
#. module: survey_input_dates |
|
||||
#: model:ir.model.fields,field_description:survey_input_dates.field_survey_user_input__date_done |
|
||||
#: model_terms:ir.ui.view,arch_db:survey_input_dates.survey_user_input_search |
|
||||
msgid "Date done" |
|
||||
msgstr "Réponse terminée le" |
|
||||
|
|
||||
#. module: survey_input_dates |
|
||||
#: model:ir.model.fields,field_description:survey_input_dates.field_survey_user_input__duration |
|
||||
#: model:ir.model.fields,field_description:survey_input_dates.field_survey_user_input__duration_txt |
|
||||
msgid "Duration" |
|
||||
msgstr "Durée" |
|
||||
|
|
||||
#. module: survey_input_dates |
|
||||
#: model:ir.model.fields,help:survey_input_dates.field_survey_user_input__duration |
|
||||
msgid "Duration in seconds" |
|
||||
msgstr "Durée en secondes" |
|
||||
|
|
||||
#. module: survey_input_dates |
|
||||
#: code:addons/survey_input_dates/models/survey_user_input.py:39 |
|
||||
#, python-format |
|
||||
msgid "Not done yet" |
|
||||
msgstr "Pas encore terminé" |
|
||||
|
|
||||
#. module: survey_input_dates |
|
||||
#: code:addons/survey_input_dates/models/survey_user_input.py:36 |
|
||||
#, python-format |
|
||||
msgid "Not started yet" |
|
||||
msgstr "Pas encore démarré" |
|
||||
|
|
||||
#. module: survey_input_dates |
|
||||
#: model:ir.model.fields,field_description:survey_input_dates.field_survey_user_input__date_start |
|
||||
msgid "Start date" |
|
||||
msgstr "Début de réponse le" |
|
||||
|
|
||||
#. module: survey_input_dates |
|
||||
#: model:ir.model,name:survey_input_dates.model_survey_survey |
|
||||
msgid "Survey" |
|
||||
msgstr "Sondage" |
|
||||
|
|
||||
#. module: survey_input_dates |
|
||||
#: model:ir.model,name:survey_input_dates.model_survey_user_input |
|
||||
msgid "Survey User Input" |
|
||||
msgstr "Saisie utilisateur du sondage" |
|
||||
|
|
||||
#. module: survey_input_dates |
|
||||
#: model:ir.model.fields,help:survey_input_dates.field_survey_user_input__date_start |
|
||||
msgid "This date is set when the user clicks on \"Start survey\" button for the first time." |
|
||||
msgstr "Cette date est renseignée lorsque le répondant clique sur le bouton \"Répondre\" pour la première fois." |
|
||||
|
|
||||
#. module: survey_input_dates |
|
||||
#: model:ir.model.fields,help:survey_input_dates.field_survey_user_input__date_done |
|
||||
msgid "This date is set when the user input is set ton \"Done\" status." |
|
||||
msgstr "Cette date est renseignée lorsque la réponse passe au statut \"Terminé\"." |
|
||||
|
|
@ -1,14 +0,0 @@ |
|||||
from odoo import models, fields, api |
|
||||
|
|
||||
|
|
||||
class SurveySurvey(models.Model): |
|
||||
_inherit = 'survey.survey' |
|
||||
|
|
||||
@api.model |
|
||||
def next_page(self, user_input, page_id, go_back=False): |
|
||||
res = super(SurveySurvey, self).next_page(user_input, page_id, go_back) |
|
||||
if not user_input.date_start and page_id == 0: |
|
||||
user_input.write({ |
|
||||
'date_start': fields.Datetime.now(), |
|
||||
}) |
|
||||
return res |
|
@ -1,55 +0,0 @@ |
|||||
from odoo import models, fields, api, _ |
|
||||
|
|
||||
|
|
||||
class SurveyUserInput(models.Model): |
|
||||
_inherit = "survey.user_input" |
|
||||
|
|
||||
date_start = fields.Datetime( |
|
||||
string="Start date", |
|
||||
readonly=True, |
|
||||
help='This date is set when the user clicks on "Start survey" button for the first time.', |
|
||||
) |
|
||||
date_done = fields.Datetime( |
|
||||
string="Date done", |
|
||||
readonly=True, |
|
||||
help='This date is set when the user input is set ton "Done" status.', |
|
||||
) |
|
||||
duration = fields.Integer( |
|
||||
string="Duration", |
|
||||
compute="_get_duration", |
|
||||
store=True, |
|
||||
help="Duration in seconds", |
|
||||
) |
|
||||
duration_txt = fields.Char( |
|
||||
string="Duration", |
|
||||
compute="_get_duration", |
|
||||
store=True, |
|
||||
) |
|
||||
|
|
||||
@api.depends("date_start", "date_done") |
|
||||
def _get_duration(self): |
|
||||
for input in self: |
|
||||
start = input.date_start |
|
||||
done = input.date_done |
|
||||
if not start: |
|
||||
input.duration = 0 |
|
||||
input.duration_txt = _("Not started yet") |
|
||||
elif not done: |
|
||||
input.duration = 0 |
|
||||
input.duration_txt = _("Not done yet") |
|
||||
else: |
|
||||
input.duration = int((done - start).total_seconds()) |
|
||||
input.duration_txt = self.env["ir.qweb.field.duration"].value_to_html( |
|
||||
(done - start).total_seconds(), |
|
||||
{"unit": "second", "round": "second"}, |
|
||||
) |
|
||||
|
|
||||
@api.multi |
|
||||
def write(self, vals): |
|
||||
if vals.get("state", False) == "done": |
|
||||
vals.update( |
|
||||
{ |
|
||||
"date_done": fields.Datetime.now(), |
|
||||
} |
|
||||
) |
|
||||
return super(SurveyUserInput, self).write(vals) |
|
@ -1,65 +0,0 @@ |
|||||
<?xml version="1.0" encoding="utf-8"?> |
|
||||
<odoo> |
|
||||
|
|
||||
<record id="survey_user_input_form" model="ir.ui.view"> |
|
||||
<field name="name">survey_input_dates survey.user_input form</field> |
|
||||
<field name="model">survey.user_input</field> |
|
||||
<field name="inherit_id" ref="survey.survey_user_input_form"/> |
|
||||
<field name="priority">26</field> |
|
||||
<field name="groups_id" eval="[(6,0,[ref('survey.group_survey_manager')])]"/> |
|
||||
<field name="arch" type="xml"> |
|
||||
<field name="date_create" position="after"> |
|
||||
<field name="date_start"/> |
|
||||
<field name="date_done"/> |
|
||||
<field name="duration" invisible="1"/> |
|
||||
<field name="duration_txt"/> |
|
||||
</field> |
|
||||
</field> |
|
||||
</record> |
|
||||
|
|
||||
<record id="survey_user_input_tree" model="ir.ui.view"> |
|
||||
<field name="name">survey_input_dates survey.user_input tree</field> |
|
||||
<field name="model">survey.user_input</field> |
|
||||
<field name="inherit_id" ref="survey.survey_user_input_tree"/> |
|
||||
<field name="priority">26</field> |
|
||||
<field name="groups_id" eval="[(6,0,[ref('survey.group_survey_manager')])]"/> |
|
||||
<field name="arch" type="xml"> |
|
||||
<field name="date_create" position="after"> |
|
||||
<field name="date_start"/> |
|
||||
<field name="date_done"/> |
|
||||
<field name="duration" invisible="1"/> |
|
||||
<field name="duration_txt"/> |
|
||||
</field> |
|
||||
</field> |
|
||||
</record> |
|
||||
|
|
||||
<record id="view_survey_user_input_kanban" model="ir.ui.view"> |
|
||||
<field name="name">survey_input_dates survey.user_input kanban</field> |
|
||||
<field name="model">survey.user_input</field> |
|
||||
<field name="inherit_id" ref="survey.view_survey_user_input_kanban"/> |
|
||||
<field name="priority">26</field> |
|
||||
<field name="groups_id" eval="[(6,0,[ref('survey.group_survey_manager')])]"/> |
|
||||
<field name="arch" type="xml"> |
|
||||
<field name="date_create" position="after"> |
|
||||
<field name="date_start"/> |
|
||||
<field name="date_done"/> |
|
||||
<field name="duration"/> |
|
||||
<field name="duration_txt"/> |
|
||||
</field> |
|
||||
</field> |
|
||||
</record> |
|
||||
|
|
||||
<record id="survey_user_input_search" model="ir.ui.view"> |
|
||||
<field name="name">survey_input_dates survey.user_input search</field> |
|
||||
<field name="model">survey.user_input</field> |
|
||||
<field name="inherit_id" ref="survey.survey_user_input_search"/> |
|
||||
<field name="priority">26</field> |
|
||||
<field name="groups_id" eval="[(6,0,[ref('survey.group_survey_manager')])]"/> |
|
||||
<field name="arch" type="xml"> |
|
||||
<filter name="group_by_partner" position="after"> |
|
||||
<filter string="Date done" name="by_date_done" domain="[]" context="{'group_by': 'date_done:week'}"/> |
|
||||
</filter> |
|
||||
</field> |
|
||||
</record> |
|
||||
|
|
||||
</odoo> |
|
@ -0,0 +1,36 @@ |
|||||
|
# Translation of Odoo Server. |
||||
|
# This file contains the translation of the following modules: |
||||
|
# * survey_input_duration |
||||
|
# |
||||
|
msgid "" |
||||
|
msgstr "" |
||||
|
"Project-Id-Version: Odoo Server 16.0-20230613\n" |
||||
|
"Report-Msgid-Bugs-To: \n" |
||||
|
"POT-Creation-Date: 2024-12-28 16:49+0000\n" |
||||
|
"PO-Revision-Date: 2024-12-28 16:49+0000\n" |
||||
|
"Last-Translator: \n" |
||||
|
"Language-Team: \n" |
||||
|
"MIME-Version: 1.0\n" |
||||
|
"Content-Type: text/plain; charset=UTF-8\n" |
||||
|
"Content-Transfer-Encoding: \n" |
||||
|
"Plural-Forms: \n" |
||||
|
|
||||
|
#. module: survey_input_duration |
||||
|
#: model_terms:ir.ui.view,arch_db:survey_input_duration.survey_user_input_view_search |
||||
|
msgid "Date done" |
||||
|
msgstr "Date de fin" |
||||
|
|
||||
|
#. module: survey_input_duration |
||||
|
#: model:ir.model.fields,field_description:survey_input_duration.field_survey_user_input__duration |
||||
|
msgid "Duration" |
||||
|
msgstr "Durée" |
||||
|
|
||||
|
#. module: survey_input_duration |
||||
|
#: model:ir.model.fields,help:survey_input_duration.field_survey_user_input__duration |
||||
|
msgid "Duration in hours" |
||||
|
msgstr "Durée en heures" |
||||
|
|
||||
|
#. module: survey_input_duration |
||||
|
#: model:ir.model,name:survey_input_duration.model_survey_user_input |
||||
|
msgid "Survey User Input" |
||||
|
msgstr "Entrée utilisateur du sondage" |
@ -1,2 +1 @@ |
|||||
from . import survey_survey |
|
||||
from . import survey_user_input |
from . import survey_user_input |
@ -0,0 +1,22 @@ |
|||||
|
from odoo import models, fields, api, _ |
||||
|
|
||||
|
|
||||
|
class SurveyUserInput(models.Model): |
||||
|
_inherit = "survey.user_input" |
||||
|
|
||||
|
duration = fields.Integer( |
||||
|
string="Duration", |
||||
|
compute="_get_duration", |
||||
|
store=True, |
||||
|
help="Duration in hours", |
||||
|
) |
||||
|
|
||||
|
@api.depends("start_datetime", "end_datetime") |
||||
|
def _get_duration(self): |
||||
|
for input in self: |
||||
|
start = input.start_datetime |
||||
|
done = input.end_datetime |
||||
|
if not (start and done): |
||||
|
input.duration = 0 |
||||
|
else: |
||||
|
input.duration = int((done - start).total_seconds()) / 3600 |
@ -0,0 +1,58 @@ |
|||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||
|
<odoo> |
||||
|
|
||||
|
<record id="survey_user_input_view_form" model="ir.ui.view"> |
||||
|
<field name="name">survey_input_duration survey.user_input form</field> |
||||
|
<field name="model">survey.user_input</field> |
||||
|
<field name="inherit_id" ref="survey.survey_user_input_view_form" /> |
||||
|
<field name="priority">26</field> |
||||
|
<field name="arch" type="xml"> |
||||
|
<field name="deadline" position="after"> |
||||
|
<field name="start_datetime" /> |
||||
|
<field name="end_datetime" /> |
||||
|
<field name="duration" widget="float_time" /> |
||||
|
</field> |
||||
|
</field> |
||||
|
</record> |
||||
|
|
||||
|
<record id="survey_user_input_view_tree" model="ir.ui.view"> |
||||
|
<field name="name">survey_input_duration survey.user_input tree</field> |
||||
|
<field name="model">survey.user_input</field> |
||||
|
<field name="inherit_id" ref="survey.survey_user_input_view_tree" /> |
||||
|
<field name="priority">26</field> |
||||
|
<field name="arch" type="xml"> |
||||
|
<field name="deadline" position="after"> |
||||
|
<field name="start_datetime" optional="hide" /> |
||||
|
<field name="end_datetime" optional="hide" /> |
||||
|
<field name="duration" widget="float_time" optional="show" /> |
||||
|
</field> |
||||
|
</field> |
||||
|
</record> |
||||
|
|
||||
|
<record id="survey_user_input_viuew_kanban" model="ir.ui.view"> |
||||
|
<field name="name">survey_input_duration survey.user_input kanban</field> |
||||
|
<field name="model">survey.user_input</field> |
||||
|
<field name="inherit_id" ref="survey.survey_user_input_viuew_kanban" /> |
||||
|
<field name="priority">26</field> |
||||
|
<field name="arch" type="xml"> |
||||
|
<field name="create_date" position="after"> |
||||
|
<field name="start_datetime" /> |
||||
|
<field name="end_datetime" /> |
||||
|
<field name="duration" /> |
||||
|
</field> |
||||
|
</field> |
||||
|
</record> |
||||
|
|
||||
|
<record id="survey_user_input_view_search" model="ir.ui.view"> |
||||
|
<field name="name">survey_input_duration survey.user_input search</field> |
||||
|
<field name="model">survey.user_input</field> |
||||
|
<field name="inherit_id" ref="survey.survey_user_input_view_search" /> |
||||
|
<field name="priority">26</field> |
||||
|
<field name="arch" type="xml"> |
||||
|
<filter name="group_by_partner" position="after"> |
||||
|
<filter string="Date done" name="by_end_datetime" domain="[]" context="{'group_by': 'end_datetime'}" /> |
||||
|
</filter> |
||||
|
</field> |
||||
|
</record> |
||||
|
|
||||
|
</odoo> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue