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
1 change: 1 addition & 0 deletions partner_segmentation/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
],
"data": [
"security/ir.model.access.csv",
"data/partner_segmentation_links.xml",
"data/partner_segmentation_data.xml",
"data/partner_segmentation_survey.xml",
"views/survey_view.xml",
Expand Down
450 changes: 80 additions & 370 deletions partner_segmentation/data/partner_segmentation_data.xml

Large diffs are not rendered by default.

131 changes: 131 additions & 0 deletions partner_segmentation/data/partner_segmentation_links.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record
id="segment_link_latest_updates_fr"
model="res.partner.segment.link"
>
<field name="label">Latest Updates (FR)</field>
<field name="url">https://compassion.ch/news/</field>
<field name="language_id" ref="base.lang_fr_CH" />
</record>
<record
id="segment_link_latest_updates_de"
model="res.partner.segment.link"
>
<field name="label">Latest Updates (DE)</field>
<field name="url">https://compassion.ch/de/neues/</field>
<field name="language_id" ref="base.lang_de" />
</record>
<record
id="segment_link_latest_updates_it"
model="res.partner.segment.link"
>
<field name="label">Latest Updates (IT)</field>
<field name="url">https://compassion.ch/it/notizie/</field>
<field name="language_id" ref="base.lang_it" />
</record>

<record id="segment_link_finances_fr" model="res.partner.segment.link">
<field name="label">Finances (FR)</field>
<field name="url">https://compassion.ch/finances/</field>
<field name="language_id" ref="base.lang_fr_CH" />
</record>
<record id="segment_link_finances_de" model="res.partner.segment.link">
<field name="label">Finances (DE)</field>
<field name="url">https://compassion.ch/de/finanzen/</field>
<field name="language_id" ref="base.lang_de" />
</record>
<record id="segment_link_finances_it" model="res.partner.segment.link">
<field name="label">Finances (IT)</field>
<field name="url">https://compassion.ch/it/finanze/</field>
<field name="language_id" ref="base.lang_it" />
</record>

<record id="segment_link_volunteering_fr" model="res.partner.segment.link">
<field name="label">Volunteering (FR)</field>
<field name="url">https://compassion.ch/participer/</field>
<field name="language_id" ref="base.lang_fr_CH" />
</record>
<record id="segment_link_volunteering_de" model="res.partner.segment.link">
<field name="label">Volunteering (DE)</field>
<field name="url">https://compassion.ch/de/sich-mehr-engagieren/</field>
<field name="language_id" ref="base.lang_de" />
</record>
<record id="segment_link_volunteering_it" model="res.partner.segment.link">
<field name="label">Volunteering (IT)</field>
<field name="url">https://compassion.ch/it/participare/</field>
<field name="language_id" ref="base.lang_it" />
</record>

<record id="segment_link_support_funds_fr" model="res.partner.segment.link">
<field name="label">Support Funds (FR)</field>
<field name="url">https://compassion.ch/donations/</field>
<field name="language_id" ref="base.lang_fr_CH" />
</record>
<record id="segment_link_support_funds_de" model="res.partner.segment.link">
<field name="label">Support Funds (DE)</field>
<field name="url">https://compassion.ch/de/spenden/</field>
<field name="language_id" ref="base.lang_de" />
</record>
<record id="segment_link_support_funds_it" model="res.partner.segment.link">
<field name="label">Support Funds (IT)</field>
<field name="url">https://compassion.ch/it/donare/</field>
<field name="language_id" ref="base.lang_it" />
</record>

<record id="segment_link_facebook_fr" model="res.partner.segment.link">
<field name="label">Facebook (FR)</field>
<field name="url">https://facebook.com/compassionsuisse/</field>
<field name="language_id" ref="base.lang_fr_CH" />
</record>
<record id="segment_link_facebook_de" model="res.partner.segment.link">
<field name="label">Facebook (DE)</field>
<field name="url">https://facebook.com/compassionschweiz/</field>
<field name="language_id" ref="base.lang_de" />
</record>
<record id="segment_link_facebook_it" model="res.partner.segment.link">
<field name="label">Facebook (IT)</field>
<field name="url">https://www.facebook.com/compassionsvizzera</field>
<field name="language_id" ref="base.lang_it" />
</record>
<record id="segment_link_instagram" model="res.partner.segment.link">
<field name="label">Instagram</field>
<field name="url">https://www.instagram.com/compassionswiss/</field>
<field name="language_id" ref="base.lang_en" />
</record>
<record id="segment_link_vimeo" model="res.partner.segment.link">
<field name="label">Vimeo</field>
<field name="url">https://vimeo.com/compassionswitzerland</field>
<field name="language_id" ref="base.lang_en" />
</record>
<record id="segment_link_watch_videos" model="res.partner.segment.link">
<field name="label">Watch Videos</field>
<field name="url">https://vimeo.com/compassionswitzerland</field>
<field name="language_id" ref="base.lang_en" />
</record>

<record id="segment_link_together_project" model="res.partner.segment.link">
<field name="label">TOGETHER Project</field>
<field name="url">https://together.compassion.ch/homepage</field>
<field name="language_id" ref="base.lang_en" />
</record>
<record id="segment_link_sims_fr" model="res.partner.segment.link">
<field name="label">Step In My Shoes (FR)</field>
<field
name="url"
>https://compassion.ch/bienvenue-dans-mon-monde-philippines/</field>
<field name="language_id" ref="base.lang_fr_CH" />
</record>
<record id="segment_link_sims_de" model="res.partner.segment.link">
<field name="label">Step In My Shoes (DE)</field>
<field name="url">https://compassion.ch/de/komm-mit/</field>
<field name="language_id" ref="base.lang_de" />
</record>
<record id="segment_link_cool_de" model="res.partner.segment.link">
<field name="label">Cool (DE)</field>
<field
name="url"
>https://compassion.ch/de/sonntagschulmaterial//</field>
<field name="language_id" ref="base.lang_de" />
</record>
</odoo>
1 change: 1 addition & 0 deletions partner_segmentation/models/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
parter_segment_affinity,
partner_compassion,
partner_segment,
partner_segment_link,
survey,
survey_user_input,
)
9 changes: 8 additions & 1 deletion partner_segmentation/models/partner_segment.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,14 @@ class ResPartnerSegment(models.Model):
)

survey_result = fields.Html(translate=True, sanitize=False)
personalized_links = fields.Html(translate=True, sanitize=False)

link_ids = fields.One2many(
"res.partner.segment.link",
"category_id",
string="Personalized Links",
help="Useful resources for partners in this segment",
)

image = fields.Binary(help="segment illustration")

primary_partners_ids = fields.One2many(
Expand Down
45 changes: 45 additions & 0 deletions partner_segmentation/models/partner_segment_link.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
##############################################################################
#
# Copyright (C) 2026 Compassion CH (http://www.compassion.ch)
# Releasing children from poverty in Jesus' name
# @author: Daniel Gergely <dgergely@compassion.ch>
#
# The licence is in the file __manifest__.py
#
##############################################################################
from odoo import fields, models


class ResPartnerSegmentLink(models.Model):
"""
Model to store the
- URL
- Label
- Language
- Category
of a partner segmentation link, which then can be used to
provide useful links to the partners based on their segmentation
category and language.
"""

_name = "res.partner.segment.link"
_description = "Partner Segmentation Link"

url = fields.Char(
required=True, help="URL of the link to be provided to the partner"
)
label = fields.Char(
required=True, help="Label of the link to be provided to the partner"
)
language_id = fields.Many2one(
"res.lang",
string="Language",
help="Language of the link, used to provide the link to "
"the partner based on their language",
)
category_id = fields.Many2one(
"res.partner.segment",
string="Category",
help="Segmentation category of the link, used to provide the "
"link to the partner based on their segmentation category",
)
2 changes: 2 additions & 0 deletions partner_segmentation/security/ir.model.access.csv
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,5 @@ full_access_partner_segmentation, Full access on partner segmentation,model_res_
read_access_partner_segmentation_affinity, Read access on partner segmentation affinity,model_res_partner_segment_affinity,base.group_user,1,0,0,0
read_access_partner_segmentation_affinity_portal, Read access on partner segmentation affinity,model_res_partner_segment_affinity,base.group_portal,1,0,0,0
full_access_partner_segmentation_affinity, Full access on partner segmentation affinity,model_res_partner_segment_affinity,base.group_system,1,1,1,1
read_access_res_partner_segmentation_link, Read access on partner segmentation link,model_res_partner_segment_link,base.group_user,1,0,0,0
full_access_partner_segmentation_link, Full access on partner segmentation link,model_res_partner_segment_link,base.group_system,1,1,1,1
9 changes: 8 additions & 1 deletion partner_segmentation/views/partner_segmentation_view.xml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,14 @@
</group>
<group>
<field name="survey_result" />
<field name="personalized_links" />
<field name="link_ids">
<tree editable="bottom">
<field name="label" />
<field name="url" />
<field name="language_id" />
<field name="category_id" invisible="1" />
</tree>
</field>
</group>
<group>
<group string="Primary Partners">
Expand Down