Skip to content
Closed
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
5 changes: 5 additions & 0 deletions .weblate.json
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,11 @@
"filemask": "cleaning_services/i18n/*.po",
"new_base": "cleaning_services/i18n/cleaning_services.pot"
},
{
"name": "climbing_gym",
"filemask": "climbing_gym/i18n/*.po",
"new_base": "climbing_gym/i18n/climbing_gym.pot"
},
{
"name": "clothing_boutique",
"filemask": "clothing_boutique/i18n/*.po",
Expand Down
76 changes: 76 additions & 0 deletions climbing_gym/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
{
'name': 'Climbing Gym',
'version': '1.0',
'category': 'Health and Fitness',
'depends': [
'base_industry_data',
'event_sale',
'knowledge',
'partnership',
'pos_event',
'pos_loyalty',
'pos_online_payment',
'pos_sale_subscription',
'project_sale_subscription',
'sale_crm',
'sale_loyalty',
'sale_planning',
'sale_project_stock',
'sign',
'web_studio',
'website_crm',
'website_event',
],
'data': [
'data/resource_calendar.xml',
'data/ir_attachment.xml',
'data/ir_default.xml',
'data/ir_model_fields.xml',
'data/event_tag_category.xml',
'data/event_tag.xml',
'data/res_config_settings.xml',
'data/product_category.xml',
'data/pos_category.xml',
'data/product_pricelist.xml',
'data/res_partner_grade.xml',
'data/sale_subscription_pricing.xml',
'data/product_template.xml',
'data/product_product.xml',
'data/product_pricelist_item.xml',
'data/knowledge_article.xml',
'data/knowledge_article_favorite.xml',
'data/loyalty_program.xml',
'data/loyalty_reward.xml',
'data/loyalty_rule.xml',
'data/mail_message.xml',
'data/planning_role.xml',
'data/planning_slot_template.xml',
'data/pos_config.xml',
'data/sign_template.xml',
'data/sign_item.xml',
'data/ir_actions_server.xml',
'data/ir_ui_view.xml',
],
'demo': [
'demo/ir_attachment_post.xml',
'demo/res_config_settings.xml',
'demo/event_event.xml',
'demo/event_event_ticket.xml',
'demo/event_slot.xml',
'demo/hr_employee.xml',
'demo/planning_slot.xml',
'demo/sale_order.xml',
'demo/sale_order_line.xml',
'demo/sale_order_confirm.xml',
'demo/website_view.xml',
'demo/website_theme_apply.xml',
'demo/website.xml',
],
'license': 'OPL-1',
'author': 'Odoo S.A.',
"cloc_exclude": [
"data/knowledge_article.xml",
"demo/website_view.xml",
],
'images': ['images/main.png'],
}
15 changes: 15 additions & 0 deletions climbing_gym/data/event_tag.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version='1.0' encoding='UTF-8'?>
<odoo noupdate="1">
<record id="event_tag_1" model="event.tag">
<field name="name">Monthly</field>
<field name="category_id" ref="event_tag_category_1"/>
</record>
<record id="event_tag_2" model="event.tag">
<field name="name">Every 2 weeks</field>
<field name="category_id" ref="event_tag_category_1"/>
</record>
<record id="event_tag_3" model="event.tag">
<field name="name">Annual</field>
<field name="category_id" ref="event_tag_category_1"/>
</record>
</odoo>
6 changes: 6 additions & 0 deletions climbing_gym/data/event_tag_category.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?xml version='1.0' encoding='UTF-8'?>
<odoo noupdate="1">
<record id="event_tag_category_1" model="event.tag.category">
<field name="name">Recurrence</field>
</record>
</odoo>
61 changes: 61 additions & 0 deletions climbing_gym/data/ir_actions_server.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
<?xml version='1.0' encoding='UTF-8'?>
<odoo>
<record id="action_send_waiver" model="ir.actions.server">
<field name="name">Send Waiver</field>
<field name="model_id" ref="base.model_res_partner"/>
<field name="binding_model_id" ref="base.model_res_partner"/>
<field name="state">code</field>
<field name="code"><![CDATA[
template = env['sign.template'].search([('x_is_waiver', '=', True)], limit=1)
if not template:
raise UserError("No waiver template found.")

for customer in records:
sign_request = env['sign.request'].create({
'template_id': template.id,
'reference': template.display_name,
'request_item_ids': [Command.create({
'partner_id': customer.id,
'role_id': env.ref('sign.sign_item_role_customer').id,
})],
})
sign_request.send_signature_accesses()
]]></field>
</record>

<record id="action_use_session" model="ir.actions.server">
<field name="name">Use Session</field>
<field name="model_id" ref="base.model_res_partner"/>
<field name="binding_model_id" ref="base.model_res_partner"/>
<field name="state">code</field>
<field name="code"><![CDATA[
product, discount = False, False

if record.grade_id and record.grade_id.default_pricelist_id == record.property_product_pricelist:
product = env['product.pricelist.item'].search([('product_tmpl_id.x_is_base_entrance', '=', True), ('pricelist_id', '=', record.property_product_pricelist)], order='percent_price desc', limit=1).product_tmpl_id

loyalty_card = env['loyalty.card'].search([('partner_id', '=', record.id), ('points', '>', 0), ('program_id', '!=', False)], limit=1)
if not product and loyalty_card:
product = loyalty_card.program_id.reward_ids.filtered("discount_line_product_id.x_is_base_entrance")[:1].discount_line_product_id
discount = bool(product)

if not product: raise UserError("No entrance available via membership or loyalty.")

order = env['sale.order'].create({
'partner_id': record.id,
'order_line': [Command.create({'product_id': product.id, 'product_uom_qty': 1})],
})

if discount: order.action_open_reward_wizard()

action = {
'type': 'ir.actions.act_window',
'name': 'Use Session',
'res_model': 'sale.order',
'view_mode': 'form',
'res_id': order.id,
'target': 'new',
}
]]></field>
</record>
</odoo>
9 changes: 9 additions & 0 deletions climbing_gym/data/ir_attachment.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version='1.0' encoding='UTF-8'?>
<odoo noupdate="1">
<record id="ir_attachment_1217" model="ir.attachment">
<field name="name">Waiver.pdf</field>
<field name="datas" type="base64" file="climbing_gym/static/src/binary/ir_attachment/1217-Waiver.pdf"/>
<field name="res_model">sign.document</field>
<field name="public" eval="True"/>
</record>
</odoo>
7 changes: 7 additions & 0 deletions climbing_gym/data/ir_default.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<?xml version='1.0' encoding='UTF-8'?>
<odoo noupdate="1">
<record id="company_type_default_record" model="ir.default">
<field name="field_id" ref="base.field_res_partner__company_type"/>
<field name="json_value">"person"</field>
</record>
</odoo>
18 changes: 18 additions & 0 deletions climbing_gym/data/ir_model_fields.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<?xml version='1.0' encoding='UTF-8'?>
<odoo>
<record id="x_is_waiver" model="ir.model.fields">
<field name="ttype">boolean</field>
<field name="copied" eval="True"/>
<field name="field_description">Is Waiver</field>
<field name="model_id" ref="sign.model_sign_template"/>
<field name="name">x_is_waiver</field>
</record>

<record id="x_is_base_entrance" model="ir.model.fields">
<field name="ttype">boolean</field>
<field name="copied" eval="True"/>
<field name="field_description">Is Base Entrance</field>
<field name="model_id" ref="product.model_product_template"/>
<field name="name">x_is_base_entrance</field>
</record>
</odoo>
44 changes: 44 additions & 0 deletions climbing_gym/data/ir_ui_view.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<record id="view_res_partner_form_inherit" model="ir.ui.view">
<field name="name">res.partner.form.inherit</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="active" eval="True"/>
<field name="arch" type="xml">
<div name="warning_tax" position="before">
<header>
<button name="%(action_send_waiver)d"
type="action"
string="Send Waiver"
class="oe_stat_button"
icon="fa-envelope"
invisible="not id or signature_count != 0 or is_company"
/>
<button name="%(action_use_session)d"
type="action"
string="Use Session"
icon="fa-ticket"
class="oe_stat_button"
/>
</header>
</div>
</field>
</record>

<record id="sign_template_view_list" model="ir.ui.view">
<field name="name">sign.template.list</field>
<field name="model">sign.template</field>
<field name="inherit_id" ref="sign.sign_template_view_tree"/>
<field name="active" eval="True"/>
<field name="arch" type="xml">
<xpath expr="//list[1]" position="attributes">
<attribute name="editable">bottom</attribute>
<attribute name="open_form_view">true</attribute>
</xpath>
<xpath expr="//field[@name='name']" position="after">
<field name="x_is_waiver" optional="show"/>
</xpath>
</field>
</record>
</odoo>
Loading