<?xml version="1.0" encoding="utf-8"?> <!-- Copyright 2017-2018 Fabien Bourgeois <fabien@yaltik.com> This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. --> <odoo> <data> <!-- Actions --> <act_window id="golem_member_action" name="Subscribers" res_model="res.partner" view_mode="kanban,tree,form,graph" domain="[('membership_state', 'not in', ['none', 'canceled'])]" /> <act_window id="golem_member_user_action" name="Service Users" res_model="golem.member" view_mode="kanban,tree,form,graph" /> <act_window id="res_partner_category_action" name="GOLEM Members Tags" res_model="res.partner.category" view_mode="tree,form" /> <record id="golem_membership_invoice_action" model="ir.actions.act_window"> <field name="name">Join Membership</field> <field name="res_model">golem.membership.invoice</field> <field name="src_model">golem.member</field> <field name="view_type">form</field> <field name="view_mode">tree,form</field> <field name="view_id" ref="golem_membership.golem_membership_invoice_form"/> <field name="target">new</field> </record> <!-- Forms --> <record id="golem_member_form" model="ir.ui.view"> <field name="name">GOLEM Member Form</field> <field name="model">golem.member</field> <field name="arch" type="xml"> <form> <header></header> <sheet> <div colspan="2" attrs="{'invisible': [('membership_state', '=', 'none')]}" style="background-color: #ccc; color: #fff; font-size: 150%; font-weight: bold; padding: 0.5%; text-align: center; margin-bottom: 1%;">Service User form</div> <div colspan="2" attrs="{'invisible': [('membership_state', '!=', 'none')]}" style="background-color: #ccc; color: #fff; font-size: 150%; font-weight: bold; padding: 0.5%; text-align: center; margin-bottom: 1%;">Member form</div> <group> <div class="oe_title"> <h1> <field name="image" widget="image" class="oe_left oe_avatar" options="{'preview_image': 'image_medium', 'size': [90, 90]}" /> <field name="number_name" class="oe_inline" readonly="True" style="margin-left: 2%" /> </h1> </div> <div class="oe_right oe_button_box" name="buttons" /> <group> <field name="season_ids" widget="many2many_tags" options="{'no_create': True}" /> <field name="category_id" widget="many2many_tags" placeholder="Tags..."/> </group> </group> <group string="Personal details"> <group> <field name="is_number_manual" invisible="True" /> <field name="lastname" required="True" /> <field name="firstname" required="True" /> <field name="number" readonly="True" attrs="{'invisible': ['|', ('membership_state', '=', 'none'), ('is_number_manual', '=', True)]}" /> <field name="number_manual" attrs="{'invisible': ['|', ('membership_state', '=', 'none'), ('is_number_manual', '=', False)], 'required': [('is_number_manual', '=', True), ('membership_state', '!=', 'none')]}" /> </group> <group> <field name="gender" /> <field name="birthdate_date" /> <field name="nationality_id" /> <field name="function" /> </group> </group> <notebook> <page name="contact_details" string="Contact details"> <group string="Address"> <group> <field name="street" placeholder="Street..." /> <field name="street2" /> <field name="area_id" placeholder="Area, quarter..." options="{'no_create': true}" /> <field name="zip" placeholder="ZIP" /> <field name="city" placeholder="City" /> </group> <group> <field name="state_id" class="oe_no_button" placeholder="State" /> <field name="country_id" placeholder="Country" class="oe_no_button" /> </group> </group> <group string="Communication"> <group> <field name="phone" placeholder="0000000000" widget="phonefr" /> <field name="mobile" placeholder="0000000000" widget="phonefr" /> <field name="opt_out_sms" /> <field name="email" widget="email" placeholder="name@example.org" /> <label for="opt_out" string="Out of mailings?" /> <field name="opt_out" nolabel="1" /> </group> <group> <field name="electronic_processing_agreement"/> <field name="pictures_agreement"/> <field name="website" widget="url" placeholder="e.g. www.odoo.com"/> </group> </group> </page> <page name="membership" string="Membership"> <group> <group> <field name="free_member"/> <label for="membership_state"/> <div> <field name="partner_id" invisible="True" required="False" /> <field name="membership_state"/> <button name="%(golem_membership_invoice_action)d" type="action" string="Buy Membership" attrs="{'invisible':[('free_member','=',True)]}" context="{'default_partner_id': partner_id}" class="oe_link"/> </div> </group> <group> <field name="membership_start" attrs="{'invisible':[('membership_start','=',False)]}"/> <field name="membership_stop" attrs="{'invisible':[('membership_stop','=',False)]}"/> <field name="membership_cancel" attrs="{'invisible':[('membership_cancel','=',False)]}"/> </group> </group> <field name="member_lines" nolabel="1" colspan="4" readonly="1"> <tree string="Memberships"> <field name="date"/> <field name="membership_id"/> <field name="member_price"/> <field name="account_invoice_id"/> <field name="state"/> </tree> <form string="Memberships"> <group> <field name="date"/> <field name="member_price"/> <field name="membership_id"/> <field name="account_invoice_id" context="{'form_view_ref': 'account.invoice_form'}"/> <field name="state" colspan="4"/> </group> </form> </field> </page> <page name="other_page" string="Others"> <group> <field name="comment" placeholder="Put an internal note..." /> </group> </page> </notebook> </sheet> <div class="oe_chatter"> <field name="message_follower_ids" widget="mail_followers" /> <field name="message_ids" widget="mail_thread" /> </div> </form> </field> </record> <!-- Kanban --> <record model="ir.ui.view" id="golem_member_kanban"> <field name="name">GOLEM Member Kanban view</field> <field name="model">golem.member</field> <field name="arch" type="xml"> <kanban> <field name="is_company" /> <field name="image" /> <field name="color" /> <field name="display_name" /> <field name="title" /> <field name="email" /> <field name="phone" /> <field name="mobile" /> <field name="city" /> <field name="country_id" /> <field name="number" /> <field name="season_ids" /> <field name="category_id"/> <templates> <t t-name="kanban-box"> <div class="oe_kanban_vignette oe_semantic_html_override"> <div class="o_kanban_image"> <img t-if="record.image.raw_value" t-att-src="'data:image/png;base64,'+ record.image.raw_value"/> <t t-if="!record.image.raw_value"> <img t-if="record.is_company.raw_value === true" t-att-src='_s + "/base/static/src/img/company_image.png"'/> <img t-if="record.is_company.raw_value === false" t-att-src='_s + "/base/static/src/img/avatar.png"'/> </t> </div> <div class="oe_kanban_details"> <h4 class="oe_partner_heading"> <a type="open"><field name="display_name" /></a> <t t-if="record.number.raw_value != ''">(N° <field name="number" />)</t> </h4> <div class="oe_kanban_partner_categories" /> <div class="oe_kanban_partner_links" /> <field name="season_ids" /> <ul> <li t-if="record.city.raw_value and !record.country_id.raw_value"> <field name="city" /> </li> <li t-if="!record.city.raw_value and record.country_id.raw_value"> <field name="country_id" /> </li> <li t-if="record.city.raw_value and record.country_id.raw_value"> <field name="city" />, <field name="country_id" /> </li> <li t-if="record.phone.raw_value or record.mobile.raw_value"> <a t-attf-href="tel:#{record.phone.raw_value}"> <field name="phone" /> </a> <a t-attf-href="tel:#{record.mobile.raw_value}"> <field name="mobile" /> </a> </li> <li t-if="record.email.raw_value"> <a t-attf-href="mailto:#{record.email.raw_value}"> <field name="email" /> </a> </li> </ul> </div> </div> </t> </templates> </kanban> </field> </record> <!-- Trees --> <record model="ir.ui.view" id="golem_member_tree"> <field name="name">GOLEM Member Tree/List</field> <field name="model">golem.member</field> <field name="arch" type="xml"> <tree string="GOLEM Members"> <field name="season_ids" options="{'no_create': True}" /> <field name="number" /> <field name="name" /> <field name="contact_address" /> <field name="phone" /> <field name="mobile" /> <field name="email" widget="email" /> </tree> </field> </record> <!-- Searches --> <record id="golem_member_search" model="ir.ui.view"> <field name="name">GOLEM Member Filters</field> <field name="model">golem.member</field> <field name="arch" type="xml"> <search> <field name="number" /> <field name="name" /> <field name="season_ids" widget="many2one" /> <field name="area_id" /> <field name="contact_address" /> <field name="city" /> <field name="phone" /> <field name="mobile" /> <field name="email" /> <field name="category_id" widget="many2one" /> <filter name="season_default" string="Default season" domain="[('is_default', '=', True)]" /> <separator /> <filter name="is_subscriber" string="Is Subscriber" domain="[('membership_state', '!=', 'none')]" /> <filter name="is_service_user_only" string="Is Service User Only" domain="[('membership_state', '=', 'none')]" /> <group string="Group By"> <filter name="group_age" string="By age" context="{'group_by': 'is_minor'}"/> <filter name="group_gender" string="By gender" context="{'group_by': 'gender'}"/> <filter name="group_area" string="By area" context="{'group_by': 'area_id'}"/> <filter name="group_city" string="By city" context="{'group_by': 'city'}"/> </group> </search> </field> </record> <!-- Graphs --> <record model="ir.ui.view" id="golem_member_graph"> <field name="name">GOLEM Member Graph</field> <field name="model">golem.member</field> <field name="arch" type="xml"> <graph string="Service Users" type="pivot"> <field name="partner_id" /> </graph> </field> </record> <!-- Menu items --> <!-- Add new menu items --> <menuitem id="golem_member_user_menu" name="Service users" parent="golem_membership.menu_association" sequence="5" action="golem_member_user_action" groups="golem_base.group_golem_user" /> <menuitem id="golem_members_menu" name="Subscribers" parent="golem_membership.menu_association" sequence="10" action="golem_member_action" groups="golem_base.group_golem_user" /> <menuitem id="golem_member_tool_menu" name="Tools" parent="golem_membership.menu_association" sequence="80" groups="golem_base.group_golem_user" /> <menuitem id="res_partner_category_menu" name="Service User Tags" parent="golem_membership.menu_config_association" sequence="15" action="res_partner_category_action" groups="golem_base.group_golem_manager" /> </data> </odoo>