Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 1 addition & 5 deletions volunteer/README.rst
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
.. image:: https://odoo-community.org/readme-banner-image
:target: https://odoo-community.org/get-involved?utm_source=readme
:alt: Odoo Community Association

=========
Volunteer
=========
Expand All @@ -17,7 +13,7 @@ Volunteer
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-beescoop%2FObeesdoo-lightgray.png?logo=github
Expand Down
1 change: 1 addition & 0 deletions volunteer/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
"views/volunteer_shift_generator_views.xml",
"views/volunteer_shift_kanban_views.xml",
"views/volunteer_shift_participation_views.xml",
"views/volunteer_shift_generator_kanban_views.xml",
"views/volunteer_shift_subscription_views.xml",
"views/volunteer_shift_category_views.xml",
"views/volunteer_shift_type_views.xml",
Expand Down
119 changes: 46 additions & 73 deletions volunteer/demo/volunteer_shift_demo.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,117 +5,90 @@ SPDX-FileCopyrightText: 2025 Coop IT Easy SC
SPDX-License-Identifier: AGPL-3.0-or-later
-->
<odoo>
<record id="volunteer_shift_demo_today" model="volunteer.shift">
<field name="name">Shift Today</field>
<record id="volunteer_shift_demo_cheese" model="volunteer.shift">
<field name="name">Cheese cutting</field>
<field name="max_volunteer_nb">2</field>
<field name="start_time" eval="datetime.now().strftime('%Y-%m-%d %H:%M:%S')" />
<field
name="end_time"
eval="(datetime.now() + timedelta(hours=2)).strftime('%Y-%m-%d %H:%M:%S')"
/>
<field name="coordinator_id" ref="volunteer_partner_demo_b" />
<field name="start_time" eval="datetime.now()" />
<field name="end_time" eval="datetime.now() + timedelta(hours=2)" />
<field name="coordinator_id" ref="volunteer_partner_demo_john" />
<field name="stage_id" ref="volunteer_shift_stage_confirmed" />
<field name="type_id" ref="volunteer_shift_type_demo_closing" />
<field name="type_id" ref="volunteer_shift_type_demo_cheese_cut" />
</record>

<record id="volunteer_shift_demo_tomorrow" model="volunteer.shift">
<field name="name">Shift Tomorrow</field>
<record id="volunteer_shift_demo_delicatessen" model="volunteer.shift">
<field name="name">Delicatessen cutting</field>
<field name="max_volunteer_nb">3</field>
<field name="start_time" eval="datetime.now() + timedelta(days=1)" />
<field name="end_time" eval="datetime.now() + timedelta(days=1, hours=2)" />
<field name="stage_id" ref="volunteer_shift_stage_canceled" />
<field name="type_id" ref="volunteer_shift_type_demo_delicatessen_cut" />
<field
name="start_time"
eval="(datetime.now() + timedelta(days=1)).strftime('%Y-%m-%d %H:%M:%S')"
/>
<field
name="end_time"
eval="(datetime.now() + timedelta(days=1, hours=2)).strftime('%Y-%m-%d %H:%M:%S')"
name="tag_ids"
eval="[(6, 0, [ref('volunteer_shift_tag_demo_fresh')])]"
/>
<field name="stage_id" ref="volunteer_shift_stage_canceled" />
<field name="type_id" ref="volunteer_shift_type_demo_opening" />
<field name="tag_ids" eval="[(6, 0, [ref('volunteer_shift_demo_tag_a')])]" />
<field name="category_id" ref="volunteer_shift_category_demo_week_b" />
</record>

<record id="volunteer_shift_demo_next_7_days" model="volunteer.shift">
<field name="name">Shift Next 7 days</field>
<record id="volunteer_shift_demo_closing" model="volunteer.shift">
<field name="name">Thursday closing</field>
<field name="max_volunteer_nb">3</field>
<field
name="start_time"
eval="(datetime.now() + timedelta(days=+6)).strftime('%Y-%m-%d %H:%M:%S')"
/>
<field
name="end_time"
eval="(datetime.now() + timedelta(days=+6, hours=2)).strftime('%Y-%m-%d %H:%M:%S')"
/>
<field name="start_time" eval="datetime.now() + timedelta(days=+6)" />
<field name="end_time" eval="datetime.now() + timedelta(days=+6, hours=2)" />
<field name="stage_id" ref="volunteer_shift_stage_confirmed" />
<field
name="tag_ids"
eval="[(6, 0, [ref('volunteer_shift_demo_tag_a'), ref('volunteer_shift_demo_tag_b'), ref('volunteer_shift_demo_tag_c')])]"
eval="[(6, 0, [ref('volunteer_shift_tag_demo_physical'), ref('volunteer_shift_tag_demo_lifting')])]"
/>
<field name="type_id" ref="volunteer_shift_type_demo_cheese_cut" />
<field name="type_id" ref="volunteer_shift_type_demo_closing" />
<field name="category_id" ref="volunteer_shift_category_demo_week_a" />
</record>

<record id="volunteer_shift_demo_next_30_days" model="volunteer.shift">
<field name="name">Shift Next 30 days</field>
<record id="volunteer_shift_demo_future_closing" model="volunteer.shift">
<field name="name">Friday closing</field>
<field name="max_volunteer_nb">9</field>
<field
name="start_time"
eval="(datetime.now() + timedelta(days=+29)).strftime('%Y-%m-%d %H:%M:%S')"
eval="(datetime.now() + timedelta(days=29)).replace(hour=20, minute=0, second=0)"
/>
<field
name="end_time"
eval="(datetime.now() + timedelta(days=+29, hours=2)).strftime('%Y-%m-%d %H:%M:%S')"
eval="(datetime.now() + timedelta(days=30)).replace(hour=2, minute=0, second=0)"
/>
<field name="coordinator_id" ref="volunteer_partner_demo_a" />
<field name="coordinator_id" ref="volunteer_partner_demo_jean" />
<field name="stage_id" ref="volunteer_shift_stage_confirmed" />
<field name="type_id" ref="volunteer_shift_type_demo_closing" />
<field name="tag_ids" eval="[(6, 0, [ref('volunteer_shift_demo_tag_a')])]" />
<field
name="tag_ids"
eval="[(6, 0, [ref('volunteer_shift_tag_demo_physical')])]"
/>
</record>

<record id="volunteer_shift_demo_yesterday" model="volunteer.shift">
<field name="name">Shift Yesterday</field>
<record id="volunteer_shift_demo_past_opening" model="volunteer.shift">
<field name="name">Store opening</field>
<field name="max_volunteer_nb">3</field>
<field
name="start_time"
eval="(datetime.now() + timedelta(days=-1)).strftime('%Y-%m-%d %H:%M:%S')"
/>
<field
name="end_time"
eval="(datetime.now() + timedelta(days=-1, hours=2)).strftime('%Y-%m-%d %H:%M:%S')"
/>
<field name="coordinator_id" ref="volunteer_partner_demo_b" />
<field name="start_time" eval="datetime.now() + timedelta(days=-1)" />
<field name="end_time" eval="datetime.now() + timedelta(days=-1, hours=2)" />
<field name="coordinator_id" ref="volunteer_partner_demo_emma" />
<field name="stage_id" ref="volunteer_shift_stage_confirmed" />
<field name="type_id" ref="volunteer_shift_type_demo_cheese_cut" />
<field name="type_id" ref="volunteer_shift_type_demo_opening" />
</record>

<record id="volunteer_shift_demo_last_7_days" model="volunteer.shift">
<field name="name">Shift Last 7 days</field>
<record id="volunteer_shift_demo_past_cheese" model="volunteer.shift">
<field name="name">Cheese cutting</field>
<field name="max_volunteer_nb">3</field>
<field
name="start_time"
eval="(datetime.now() + timedelta(days=-6)).strftime('%Y-%m-%d %H:%M:%S')"
/>
<field
name="end_time"
eval="(datetime.now() + timedelta(days=-6, hours=2)).strftime('%Y-%m-%d %H:%M:%S')"
/>
<field name="coordinator_id" ref="volunteer_partner_demo_b" />
<field name="start_time" eval="datetime.now() + timedelta(days=-6)" />
<field name="end_time" eval="datetime.now() + timedelta(days=-6, hours=2)" />
<field name="coordinator_id" ref="volunteer_partner_demo_emma" />
<field name="stage_id" ref="volunteer_shift_stage_confirmed" />
<field name="type_id" ref="volunteer_shift_type_demo_cheese_cut" />
</record>

<record id="volunteer_shift_demo_last_year" model="volunteer.shift">
<field name="name">Shift Last year</field>
<record id="volunteer_shift_demo_past_delicatessen" model="volunteer.shift">
<field name="name">Delicatessen cutting</field>
<field name="max_volunteer_nb">3</field>
<field
name="start_time"
eval="(datetime.now() + timedelta(days=-367)).strftime('%Y-%m-%d %H:%M:%S')"
/>
<field
name="end_time"
eval="(datetime.now() + timedelta(days=-367, hours=2)).strftime('%Y-%m-%d %H:%M:%S')"
/>
<field name="coordinator_id" ref="volunteer_partner_demo_b" />
<field name="type_id" ref="volunteer_shift_type_demo_cheese_cut" />
<field name="start_time" eval="datetime.now() + timedelta(days=-367)" />
<field name="end_time" eval="datetime.now() + timedelta(days=-367, hours=2)" />
<field name="coordinator_id" ref="volunteer_partner_demo_emma" />
<field name="type_id" ref="volunteer_shift_type_demo_delicatessen_cut" />
</record>
</odoo>
41 changes: 22 additions & 19 deletions volunteer/demo/volunteer_shift_participation_demo.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,69 +9,72 @@ SPDX-License-Identifier: AGPL-3.0-or-later
id="volunteer_shift_participation_demo_a"
model="volunteer.shift.participation"
>
<field name="volunteer_id" ref="volunteer_demo_a" />
<field name="shift_id" ref="volunteer_shift_demo_next_7_days" />
<field name="volunteer_id" ref="volunteer_demo_jean" />
<field name="shift_id" ref="volunteer_shift_demo_closing" />
</record>

<record
id="volunteer_shift_participation_demo_b"
model="volunteer.shift.participation"
>
<field name="volunteer_id" ref="volunteer_demo_b" />
<field name="shift_id" ref="volunteer_shift_demo_next_7_days" />
<field name="volunteer_id" ref="volunteer_demo_john" />
<field name="shift_id" ref="volunteer_shift_demo_closing" />
</record>

<record
id="volunteer_shift_participation_demo_c"
model="volunteer.shift.participation"
>
<field name="volunteer_id" ref="volunteer_demo_a" />
<field name="shift_id" ref="volunteer_shift_demo_next_30_days" />
<field name="volunteer_id" ref="volunteer_demo_jean" />
<field name="shift_id" ref="volunteer_shift_demo_future_closing" />
</record>

<record
id="volunteer_shift_participation_demo_d"
model="volunteer.shift.participation"
>
<field name="volunteer_id" ref="volunteer_demo_a" />
<field name="shift_id" ref="volunteer_shift_demo_today" />
<field name="volunteer_id" ref="volunteer_demo_jean" />
<field name="shift_id" ref="volunteer_shift_demo_cheese" />
</record>

<record id="shift_participation_demo_e" model="volunteer.shift.participation">
<field name="volunteer_id" ref="volunteer_demo_b" />
<field name="shift_id" ref="volunteer_shift_demo_today" />
<record
id="volunteer_shift_participation_demo_e"
model="volunteer.shift.participation"
>
<field name="volunteer_id" ref="volunteer_demo_emma" />
<field name="shift_id" ref="volunteer_shift_demo_cheese" />
</record>

<record
id="volunteer_shift_participation_demo_f"
model="volunteer.shift.participation"
>
<field name="volunteer_id" ref="volunteer_demo_c" />
<field name="shift_id" ref="volunteer_shift_demo_today" />
<field name="volunteer_id" ref="volunteer_demo_john" />
<field name="shift_id" ref="volunteer_shift_demo_cheese" />
<field name="registration_state">canceled</field>
</record>

<record
id="volunteer_shift_participation_demo_g"
model="volunteer.shift.participation"
>
<field name="volunteer_id" ref="volunteer_demo_c" />
<field name="shift_id" ref="volunteer_shift_demo_last_7_days" />
<field name="volunteer_id" ref="volunteer_demo_john" />
<field name="shift_id" ref="volunteer_shift_demo_past_cheese" />
</record>

<record
id="volunteer_shift_participation_demo_h"
model="volunteer.shift.participation"
>
<field name="volunteer_id" ref="volunteer_demo_c" />
<field name="shift_id" ref="volunteer_shift_demo_yesterday" />
<field name="volunteer_id" ref="volunteer_demo_john" />
<field name="shift_id" ref="volunteer_shift_demo_past_opening" />
</record>

<record
id="volunteer_shift_participation_demo_i"
model="volunteer.shift.participation"
>
<field name="volunteer_id" ref="volunteer_demo_c" />
<field name="shift_id" ref="volunteer_shift_demo_last_year" />
<field name="volunteer_id" ref="volunteer_demo_john" />
<field name="shift_id" ref="volunteer_shift_demo_past_delicatessen" />
</record>
</odoo>
94 changes: 87 additions & 7 deletions volunteer/demo/volunteer_shift_recurrent_generator_demo.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,24 +5,104 @@ SPDX-FileCopyrightText: 2025 Coop IT Easy SC
SPDX-License-Identifier: AGPL-3.0-or-later
-->
<odoo>
<record
id="volunteer_generator_demo_opening"
<record
id="volunteer_generator_demo_friday_opening"
model="volunteer.shift.recurrent.generator"
>
<field name="name">Store Opening</field>
<field name="max_volunteer_nb">5</field>
<field name="name">Friday opening</field>
<field name="max_volunteer_nb">3</field>
<field
name="start_time"
eval="(datetime.now() - timedelta(days=30)).replace(hour=6, minute=0, second=0).strftime('%Y-%m-%d %H:%M:%S')"
eval="(datetime.now() - timedelta(days=30)).replace(hour=6, minute=0, second=0)"
/>
<field
name="end_time"
eval="(datetime.now() - timedelta(days=30)).replace(hour=9, minute=0, second=0).strftime('%Y-%m-%d %H:%M:%S')"
eval="(datetime.now() - timedelta(days=30)).replace(hour=9, minute=0, second=0)"
/>
<field name="interval_type">days</field>
<field name="interval">1</field>
<field name="state">draft</field>
<field name="state">confirmed</field>
<field name="type_id" ref="volunteer_shift_type_demo_opening" />
<field name="category_id" ref="volunteer_shift_category_demo_week_b" />
<field
name="tag_ids"
eval="[(6, 0, [ref('volunteer_shift_tag_demo_fresh'), ref('volunteer_shift_tag_demo_lifting')])]"
/>
<field name="tz">Europe/Brussels</field>
</record>

<record
id="volunteer_generator_demo_thursday_closing"
model="volunteer.shift.recurrent.generator"
>
<field name="name">Thursday closing</field>
<field name="max_volunteer_nb">3</field>
<field
name="start_time"
eval="datetime.now().replace(hour=20, minute=0, second=0)"
/>
<field
name="end_time"
eval="(datetime.now() + timedelta(days=1)).replace(hour=2, minute=0, second=0)"
/>
<field name="interval_type">weeks</field>
<field name="interval">1</field>
<field name="state">draft</field>
<field name="type_id" ref="volunteer_shift_type_demo_closing" />
<field name="category_id" ref="volunteer_shift_category_demo_week_b" />
<field
name="tag_ids"
eval="[(6, 0, [ref('volunteer_shift_tag_demo_fresh'), ref('volunteer_shift_tag_demo_lifting')])]"
/>
<field name="tz">Europe/Brussels</field>
</record>

<record
id="volunteer_generator_demo_saturday_opening"
model="volunteer.shift.recurrent.generator"
>
<field name="name">Saturday opening</field>
<field name="max_volunteer_nb">3</field>
<field
name="start_time"
eval="(datetime.now() + timedelta(days=3)).replace(hour=6, minute=0, second=0)"
/>
<field
name="end_time"
eval="(datetime.now() + timedelta(days=3)).replace(hour=9, minute=0, second=0)"
/>
<field name="interval_type">weeks</field>
<field name="interval">2</field>
<field name="state">canceled</field>
<field name="type_id" ref="volunteer_shift_type_demo_closing" />
<field name="category_id" ref="volunteer_shift_category_demo_week_a" />
<field
name="tag_ids"
eval="[(6, 0, [ref('volunteer_shift_tag_demo_lifting')])]"
/>
<field name="tz">Europe/Brussels</field>
</record>

<record
id="volunteer_generator_demo_cheese"
model="volunteer.shift.recurrent.generator"
>
<field name="name">Cheese cutting</field>
<field name="max_volunteer_nb">2</field>
<field
name="start_time"
eval="datetime.now().replace(hour=8, minute=0, second=0)"
/>
<field
name="end_time"
eval="datetime.now().replace(hour=12, minute=0, second=0)"
/>
<field name="interval_type">months</field>
<field name="interval">1</field>
<field name="until_date" eval="datetime.now() + timedelta(days=62)" />
<field name="state">confirmed</field>
<field name="type_id" ref="volunteer_shift_type_demo_cheese_cut" />
<field name="coordinator_id" ref="volunteer_partner_demo_emma" />
<field name="tz">Europe/Brussels</field>
</record>
</odoo>
Loading
Loading