Skip to content
Open
Show file tree
Hide file tree
Changes from all 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