diff options
| author | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
|---|---|---|
| committer | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
| commit | 3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch) | |
| tree | a44932296ef4a9b71d5f010906253d8c53727726 /addons/project/data | |
| parent | 0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff) | |
initial commit 2
Diffstat (limited to 'addons/project/data')
| -rw-r--r-- | addons/project/data/digest_data.xml | 23 | ||||
| -rw-r--r-- | addons/project/data/project_data.xml | 96 | ||||
| -rw-r--r-- | addons/project/data/project_demo.xml | 331 | ||||
| -rw-r--r-- | addons/project/data/project_mail_template_data.xml | 99 |
4 files changed, 549 insertions, 0 deletions
diff --git a/addons/project/data/digest_data.xml b/addons/project/data/digest_data.xml new file mode 100644 index 00000000..b12ddc42 --- /dev/null +++ b/addons/project/data/digest_data.xml @@ -0,0 +1,23 @@ +<?xml version='1.0' encoding='utf-8'?> +<odoo> + <data noupdate="1"> + <record id="digest.digest_digest_default" model="digest.digest"> + <field name="kpi_project_task_opened">True</field> + </record> + </data> + + <data> + <record id="digest_tip_project_0" model="digest.tip"> + <field name="name">Tip: Customize tasks and stages according to the project</field> + <field name="sequence">1200</field> + <field name="group_id" ref="project.group_project_manager"/> + <field name="tip_description" type="html"> +<div> + <p class="tip_title">Tip: Customize tasks and stages according to the project</p> + <p class="tip_content">Customize how tasks are named according to the project and create tailor made status messages for each step of the workflow. It helps to document your workflow: what should be done at which step.</p> + <img src="/project/static/src/img/project-custom-tasks.gif" class="illustration_border" /> +</div> + </field> + </record> + </data> +</odoo> diff --git a/addons/project/data/project_data.xml b/addons/project/data/project_data.xml new file mode 100644 index 00000000..6c17952e --- /dev/null +++ b/addons/project/data/project_data.xml @@ -0,0 +1,96 @@ +<?xml version="1.0" encoding="utf-8"?> +<odoo noupdate="1"> + + <record id="ir_cron_rating_project" model="ir.cron"> + <field name="name">Project: Send rating</field> + <field name="model_id" ref="project.model_project_project"/> + <field name="state">code</field> + <field name="code">model._send_rating_all()</field> + <field name="interval_type">days</field> + <field name="numbercall">-1</field> + </record> + + <record id="ir_cron_recurring_tasks" model="ir.cron"> + <field name="name">Project: Create Recurring Tasks</field> + <field name="model_id" ref="project.model_project_task_recurrence"/> + <field name="state">code</field> + <field name="code">model._cron_create_recurring_tasks()</field> + <field name="interval_type">days</field> + <field name="numbercall">-1</field> + <field name="nextcall" eval="(DateTime.now().replace(hour=3, minute=0) + timedelta(days=1)).strftime('%Y-%m-%d %H:%M:%S')" /> + </record> + + <!-- Task-related subtypes for messaging / Chatter --> + <record id="mt_task_new" model="mail.message.subtype"> + <field name="name">Task Created</field> + <field name="res_model">project.task</field> + <field name="default" eval="False"/> + <field name="hidden" eval="True"/> + <field name="description">Task Created</field> + </record> + <record id="mt_task_blocked" model="mail.message.subtype"> + <field name="name">Task Blocked</field> + <field name="res_model">project.task</field> + <field name="default" eval="False"/> + <field name="description">Task blocked</field> + </record> + <record id="mt_task_ready" model="mail.message.subtype"> + <field name="name">Task Ready</field> + <field name="res_model">project.task</field> + <field name="default" eval="False"/> + <field name="description">Task ready for Next Stage</field> + </record> + <record id="mt_task_stage" model="mail.message.subtype"> + <field name="name">Stage Changed</field> + <field name="res_model">project.task</field> + <field name="default" eval="False"/> + <field name="description">Stage changed</field> + </record> + <record id="mt_task_rating" model="mail.message.subtype"> + <field name="name">Task Rating</field> + <field name="res_model">project.task</field> + <field name="default" eval="True"/> + <field name="description">Ratings</field> + </record> + <!-- Project-related subtypes for messaging / Chatter --> + <record id="mt_project_task_new" model="mail.message.subtype"> + <field name="name">Task Created</field> + <field name="sequence">10</field> + <field name="res_model">project.project</field> + <field name="default" eval="False"/> + <field name="parent_id" ref="mt_task_new"/> + <field name="relation_field">project_id</field> + </record> + <record id="mt_project_task_blocked" model="mail.message.subtype"> + <field name="name">Task Blocked</field> + <field name="sequence">11</field> + <field name="res_model">project.project</field> + <field name="default" eval="False"/> + <field name="parent_id" ref="mt_task_blocked"/> + <field name="relation_field">project_id</field> + </record> + <record id="mt_project_task_ready" model="mail.message.subtype"> + <field name="name">Task Ready</field> + <field name="sequence">12</field> + <field name="res_model">project.project</field> + <field name="default" eval="False"/> + <field name="parent_id" ref="mt_task_ready"/> + <field name="relation_field">project_id</field> + </record> + <record id="mt_project_task_stage" model="mail.message.subtype"> + <field name="name">Task Stage Changed</field> + <field name="sequence">13</field> + <field name="res_model">project.project</field> + <field name="default" eval="False"/> + <field name="parent_id" ref="mt_task_stage"/> + <field name="relation_field">project_id</field> + </record> + <record id="mt_project_task_rating" model="mail.message.subtype"> + <field name="name">Task Rating</field> + <field name="sequence">14</field> + <field name="res_model">project.project</field> + <field name="default" eval="True"/> + <field name="parent_id" ref="mt_task_rating"/> + <field name="relation_field">project_id</field> + </record> +</odoo> diff --git a/addons/project/data/project_demo.xml b/addons/project/data/project_demo.xml new file mode 100644 index 00000000..be21ed9d --- /dev/null +++ b/addons/project/data/project_demo.xml @@ -0,0 +1,331 @@ +<?xml version="1.0" encoding="utf-8"?> +<odoo> + <data noupdate="1"> + + <!-- Users --> + <record id="base.user_demo" model="res.users"> + <field name="groups_id" eval="[(4, ref('group_project_manager'))]"/> + </record> + + <!-- Categories --> + <record id="project_tags_00" model="project.tags"> + <field name="name">Bug</field> + </record> + <record id="project_tags_01" model="project.tags"> + <field name="name">New Feature</field> + </record> + <record id="project_tags_02" model="project.tags"> + <field name="name">Experiment</field> + </record> + <record id="project_tags_03" model="project.tags"> + <field name="name">Usability</field> + </record> + + <!-- Stages --> + <record id="project_stage_0" model="project.task.type"> + <field name="sequence">1</field> + <field name="name">New</field> + <field name="legend_blocked">Blocked</field> + <field name="mail_template_id" ref="project.mail_template_data_project_task"/> + </record> + <record id="project_stage_1" model="project.task.type"> + <field name="sequence">10</field> + <field name="name">In Progress</field> + <field name="legend_blocked">Need functional or technical help</field> + <field name="legend_done">Buzz or set as done</field> + </record> + <record id="project_stage_2" model="project.task.type"> + <field name="sequence">20</field> + <field name="name">Done</field> + <field name="fold" eval="True"/> + <field name="is_closed" eval="True"/> + </record> + <record id="project_stage_3" model="project.task.type"> + <field name="sequence">30</field> + <field name="name">Cancelled</field> + <field name="legend_done">Ready to reopen</field> + <field name="fold" eval="True"/> + <field name="is_closed" eval="True"/> + </record> + + <record id="project_project_1" model="project.project"> + <field name="date_start" eval="time.strftime('%Y-%m-01 10:00:00')"/> + <field name="name">Office Design</field> + <field name="color">3</field> + <field name="user_id" ref="base.user_demo"/> + <field name="type_ids" eval="[(4, ref('project_stage_0')), (4, ref('project_stage_1')), (4, ref('project_stage_2')), (4, ref('project_stage_3'))]"/> + <field name="partner_id" ref="base.partner_demo_portal"/> + <field name="privacy_visibility">portal</field> + <field name="favorite_user_ids" eval="[(4, ref('base.user_admin'))]"/> + </record> + + <record id="project_project_2" model="project.project"> + <field name="name">Research & Development</field> + <field name="privacy_visibility">followers</field> + <field name="user_id" ref="base.user_demo"/> + <field name="type_ids" eval="[(4, ref('project_stage_0')), (4, ref('project_stage_1')), (4, ref('project_stage_2')), (4, ref('project_stage_3'))]"/> + <field name="favorite_user_ids" eval="[(4, ref('base.user_admin'))]"/> + </record> + + <!-- Channel --> + <record id="mail_channel_project_task" model="mail.channel"> + <field name="name">Projects & Tasks</field> + <field name="group_public_id" ref="group_project_user"/> + <field name="group_ids" eval="[(4, ref('group_project_user'))]"/> + </record> + + <!-- Channel follows all above projects --> + <function model="project.project" name="message_subscribe" + eval="[ref('project_project_1'), ref('project_project_2') + ], None, [ref('mail_channel_project_task')]"/> + + <!-- Tasks --> + <record id="project_task_1" model="project.task"> + <field name="planned_hours" eval="40.0"/> + <field name="user_id" ref="base.user_demo"/> + <field name="priority">0</field> + <field name="project_id" ref="project.project_project_1"/> + <field name="name">Meeting Room Furnitures</field> + <field name="stage_id" ref="project_stage_0"/> + <field name="color">3</field> + </record> + <record id="project_task_2" model="project.task"> + <field name="planned_hours" eval="32.0"/> + <field name="user_id" ref="base.user_demo"/> + <field name="priority">0</field> + <field name="project_id" ref="project.project_project_1"/> + <field name="name">Lunch Room: kitchen</field> + <field name="stage_id" ref="project_stage_1"/> + </record> + <record id="project_task_3" model="project.task"> + <field name="planned_hours" eval="10.0"/> + <field name="user_id" ref="base.user_admin"/> + <field name="priority">0</field> + <field name="project_id" ref="project.project_project_1"/> + <field name="name">Noise Reduction</field> + <field name="date_deadline" eval="time.strftime('%Y-%m-24')"/> + <field name="stage_id" ref="project_stage_2"/> + <field name="color">4</field> + </record> + <record id="project_task_4" model="project.task"> + <field name="planned_hours" eval="60.0"/> + <field name="user_id" ref="base.user_demo"/> + <field name="priority">0</field> + <field name="project_id" ref="project.project_project_1"/> + <field name="name">Black Chairs for managers</field> + <field name="description">Use the account_budget module</field> + <field name="date_deadline" eval="time.strftime('%Y-%m-19')"/> + <field name="color">5</field> + <field name="stage_id" ref="project_stage_1"/> + <field name="tag_ids" eval="[(6, 0, [ + ref('project_tags_01')])]"/> + </record> + <record id="project_task_5" model="project.task"> + <field name="planned_hours" eval="76.0"/> + <field name="user_id" ref="base.user_admin"/> + <field name="priority">1</field> + <field name="project_id" ref="project.project_project_1"/> + <field name="name">Room 1: Decoration</field> + <field name="kanban_state">done</field> + <field name="priority">0</field> + <field name="date_deadline" eval="time.strftime('%Y-%m-%d')"/> + <field name="stage_id" ref="project_stage_1"/> + <field name="tag_ids" eval="[(6, 0, [ + ref('project_tags_01')])]"/> + </record> + <record id="project_task_6" model="project.task"> + <field name="planned_hours" eval="24.0"/> + <field name="user_id" ref="base.user_admin"/> + <field name="priority">1</field> + <field name="project_id" ref="project.project_project_1"/> + <field name="name">Room 2: Decoration</field> + <field name="stage_id" ref="project_stage_1"/> + </record> + <record id="project_task_7" model="project.task"> + <field name="planned_hours" eval="15.0"/> + <field name="user_id" ref="base.user_admin"/> + <field name="priority">1</field> + <field name="project_id" ref="project.project_project_1"/> + <field name="name">Energy Certificate</field> + <field name="stage_id" ref="project_stage_1"/> + </record> + <record id="project_task_8" model="project.task"> + <field name="planned_hours" eval="22.0"/> + <field name="user_id" ref="base.user_demo"/> + <field name="priority">1</field> + <field name="project_id" ref="project.project_project_2"/> + <field name="name">New portal system</field> + <field name="priority">0</field> + <field name="stage_id" ref="project_stage_2"/> + <field name="tag_ids" eval="[(6, 0, [ + ref('project.project_tags_02')])]"/> + </record> + <record id="project_task_9" model="project.task"> + <field name="planned_hours" eval="18.0"/> + <field name="user_id" ref="base.user_demo"/> + <field name="priority">1</field> + <field name="project_id" ref="project.project_project_2"/> + <field name="name">Document management</field> + <field name="stage_id" ref="project_stage_0"/> + </record> + <record id="project_task_10" model="project.task"> + <field name="planned_hours" eval="38.0"/> + <field name="user_id" ref="base.user_demo"/> + <field name="priority">1</field> + <field name="project_id" ref="project.project_project_2"/> + <field name="name">Social network integration</field> + <field name="kanban_state">blocked</field> + <field name="stage_id" ref="project_stage_1"/> + </record> + <record id="project_task_11" model="project.task"> + <field name="planned_hours" eval="16.0"/> + <field name="user_id" ref="base.user_admin"/> + <field name="priority">1</field> + <field name="project_id" ref="project.project_project_2"/> + <field name="name">User interface improvements</field> + <field name="tag_ids" eval="[(6, 0, [ + ref('project.project_tags_01'), + ref('project.project_tags_03')])]"/> + <field name="stage_id" ref="project_stage_1"/> + </record> + + <record id="project_task_12" model="project.task"> + <field name="planned_hours" eval="40.0"/> + <field name="user_id" ref="base.user_admin"/> + <field name="priority">1</field> + <field name="project_id" ref="project.project_project_2"/> + <field name="name">Planning and budget</field> + <field name="stage_id" ref="project_stage_0"/> + <field name="color">6</field> + </record> + + <record id="project_task_19" model="project.task"> + <field name="planned_hours">24.0</field> + <field name="stage_id" ref="project_stage_3"/> + <field name="user_id" eval="False"/> + <field name="project_id" ref="project.project_project_2"/> + <field name="name">Basic outline</field> + <field name="tag_ids" eval="[(6, 0, [ + ref('project_tags_02')])]"/> + </record> + + <record id="project_task_20" model="project.task"> + <field name="planned_hours">42.0</field> + <field name="user_id" eval="False"/> + <field name="stage_id" ref="project_stage_0"/> + <field name="project_id" ref="project.project_project_2"/> + <field name="name">Create new components</field> + </record> + + <record id="project_task_21" model="project.task"> + <field name="planned_hours">14.0</field> + <field name="user_id" eval="False"/> + <field name="stage_id" ref="project_stage_1"/> + <field name="project_id" ref="project.project_project_2"/> + <field name="name">Useablity review</field> + <field name="tag_ids" eval="[(6, 0, [ + ref('project_tags_03')])]"/> + </record> + + <record id="project_task_22" model="project.task"> + <field name="planned_hours">12.0</field> + <field name="stage_id" ref="project_stage_1"/> + <field name="user_id" eval="False"/> + <field name="priority">0</field> + <field name="project_id" ref="project.project_project_2"/> + <field name="name">Customer analysis + Architecture</field> + <field name="color">7</field> + </record> + <record id="project_task_24" model="project.task"> + <field name="sequence">17</field> + <field name="planned_hours">8.0</field> + <field name="stage_id" ref="project_stage_2"/> + <field name="user_id" eval="False"/> + <field name="priority">1</field> + <field name="project_id" ref="project.project_project_1"/> + <field name="name">Modifications asked by the customer</field> + <field name="tag_ids" eval="[(6, 0, [ + ref('project_tags_00')])]"/> + </record> + + <record id="project_task_25" model="project.task"> + <field name="sequence">20</field> + <field name="planned_hours">20.0</field> + <field name="user_id" eval="False"/> + <field name="project_id" ref="project.project_project_1"/> + <field name="name">Office planning</field> + <field name="stage_id" ref="project_stage_0"/> + </record> + + <record id="project_task_26" model="project.task"> + <field name="sequence">20</field> + <field name="planned_hours">35.0</field> + <field name="user_id" eval="False"/> + <field name="project_id" ref="project.project_project_2"/> + <field name="name">Unit Testing</field> + <field name="stage_id" ref="project_stage_0"/> + </record> + + <record id="message_task_1" model="mail.message"> + <field name="model">project.task</field> + <field name="res_id" ref="project_task_22"/> + <field name="body">Hello Demo, +There is a change in customer requirement. +Can you check the document from customer again. +Thanks,</field> + <field name="message_type">comment</field> + <field name="author_id" ref="base.partner_root"/> + </record> + <record id="message_task_2" model="mail.message"> + <field name="model">project.task</field> + <field name="res_id" ref="project_task_22"/> + <field name="parent_id" ref="message_task_1"/> + <field name="body">Ok, I have checked the mail, +I will update the document and let you know.</field> + <field name="message_type">comment</field> + <field name="author_id" ref="base.partner_demo"/> + </record> + <record id="message_task_3" model="mail.message"> + <field name="model">project.task</field> + <field name="res_id" ref="project_task_22"/> + <field name="parent_id" ref="message_task_2"/> + <field name="body">Fine! +Send it ASAP, its urgent.</field> + <field name="message_type">comment</field> + <field name="author_id" ref="base.partner_root"/> + </record> + + <function model="project.project" name="message_subscribe" + eval="[ref('project.project_project_1')], [ref('base.partner_demo_portal')]"/> + + + <!-- Rating Demo Data --> + <record id="rating_task_1" model="rating.rating"> + <field name="res_model_id" ref="project.model_project_task"/> + <field name="rated_partner_id" ref="base.partner_root"/> + <field name="partner_id" ref="base.partner_demo"/> + <field name="res_id" ref="project.project_task_3"/> + </record> + <record id="rating_task_2" model="rating.rating"> + <field name="res_model_id" ref="project.model_project_task"/> + <field name="rated_partner_id" ref="base.partner_demo"/> + <field name="partner_id" ref="base.partner_demo"/> + <field name="res_id" ref="project.project_task_8"/> + </record> + <record id="rating_task_5" model="rating.rating"> + <field name="res_model_id" ref="project.model_project_task"/> + <field name="rated_partner_id" ref="base.partner_root"/> + <field name="partner_id" ref="base.res_partner_4"/> + <field name="res_id" ref="project.project_task_24"/> + </record> + + <!-- add the email template as value for the project stage 2 --> + <record id="project.project_stage_2" model="project.task.type"> + <field name="rating_template_id" ref="rating_project_request_email_template"/> + </record> + + <function model="project.task" name="rating_apply" eval="([ref('project.project_task_3')], 5)"/> + <function model="project.task" name="rating_apply" eval="([ref('project.project_task_24')], 5)"/> + <function model="project.task" name="rating_apply" eval="([ref('project.project_task_8')], 1)"/> + </data> +</odoo> diff --git a/addons/project/data/project_mail_template_data.xml b/addons/project/data/project_mail_template_data.xml new file mode 100644 index 00000000..347d4ae4 --- /dev/null +++ b/addons/project/data/project_mail_template_data.xml @@ -0,0 +1,99 @@ +<?xml version="1.0" encoding="utf-8"?> +<odoo> + <data noupdate="1"> + <!-- Sample stage-related template --> + <record id="mail_template_data_project_task" model="mail.template"> + <field name="name">Task: Reception Acknowledgment</field> + <field name="model_id" ref="project.model_project_task"/> + <field name="subject">Reception of ${object.name}</field> + <field name="use_default_to" eval="True"/> + <field name="body_html" type="html"> +<div> + Dear ${object.partner_id.name or 'customer'},<br/> + Thank you for your enquiry.<br /> + If you have any questions, please let us know. + <br/><br/> + Thank you, + % if user.signature + <br /> + ${user.signature | safe} + % endif +</div> + </field> + <field name="lang">${object.partner_id.lang}</field> + <field name="auto_delete" eval="True"/> + </record> + + <!-- Mail sent to request a rating for a task --> + <record id="rating_project_request_email_template" model="mail.template"> + <field name="name">Task: Rating Request</field> + <field name="model_id" ref="project.model_project_task"/> + <field name="subject">${object.project_id.company_id.name}: Satisfaction Survey</field> + <field name="email_from">${(object.rating_get_rated_partner_id().email_formatted if object.rating_get_rated_partner_id() else user.email_formatted) | safe}</field> + <field name="partner_to" >${object.rating_get_partner_id().id}</field> + <field name="body_html" type="html"> +<div> + % set access_token = object.rating_get_access_token() + % set partner = object.rating_get_partner_id() + <table border="0" cellpadding="0" cellspacing="0" width="590" style="width:100%; margin:0px auto;"> + <tbody> + <tr><td valign="top" style="font-size: 13px;"> + % if partner.name: + Hello ${partner.name},<br/><br/> + % else: + Hello,<br/><br/> + % endif + Please take a moment to rate our services related to the task "<strong>${object.name}</strong>" + % if object.rating_get_rated_partner_id().name: + assigned to <strong>${object.rating_get_rated_partner_id().name}</strong>.<br/> + % else: + .<br/> + % endif + </td></tr> + <tr><td style="text-align: center;"> + <table border="0" cellpadding="0" cellspacing="0" width="590" summary="o_mail_notification" style="width:100%; margin: 32px 0px 32px 0px;"> + <tr><td style="font-size: 13px;"> + <strong>Tell us how you feel about our service</strong><br/> + <span style="text-color: #888888">(click on one of these smileys)</span> + </td></tr> + <tr><td style="font-size: 13px;"> + <table style="width:100%;text-align:center;"> + <tr> + <td> + <a href="/rate/${access_token}/5"> + <img alt="Satisfied" src="/rating/static/src/img/rating_5.png" title="Satisfied"/> + </a> + </td> + <td> + <a href="/rate/${access_token}/3"> + <img alt="Not satisfied" src="/rating/static/src/img/rating_3.png" title="Not satisfied"/> + </a> + </td> + <td> + <a href="/rate/${access_token}/1"> + <img alt="Highly Dissatisfied" src="/rating/static/src/img/rating_1.png" title="Highly Dissatisfied"/> + </a> + </td> + </tr> + </table> + </td></tr> + </table> + </td></tr> + <tr><td valign="top" style="font-size: 13px;"> + We appreciate your feedback. It helps us to improve continuously. + % if object.project_id.rating_status == 'stage': + <br/><span style="margin: 0px 0px 0px 0px; font-size: 12px; opacity: 0.5; color: #454748;">This customer survey has been sent because your task has been moved to the stage <b>${object.stage_id.name}</b></span> + % endif + % if object.project_id.rating_status == 'periodic': + <br/><span style="margin: 0px 0px 0px 0px; font-size: 12px; opacity: 0.5; color: #454748;">This customer survey is sent <b>${object.project_id.rating_status_period}</b> as long as the task is in the <b>${object.stage_id.name}</b> stage.</span> + % endif + </td></tr> + </tbody> + </table> +</div> + </field> + <field name="lang">${object.rating_get_partner_id().lang}</field> + <field name="auto_delete" eval="True"/> + </record> + </data> +</odoo> |
