EnCoach Odoo 19 custom modules
Full backend implementation with custom Odoo modules: - encoach_api: Core API, user management, JWT auth - encoach_exam: Exam generation (reading, writing, listening, speaking) - encoach_evaluate: AI-powered evaluation (writing, speaking) - encoach_training: Training tips and walkthrough - encoach_storage: File storage management - encoach_payment: Stripe, PayPal, Paymob integration - encoach_mail: Email notifications Made-with: Cursor
This commit is contained in:
58
encoach_subscription/views/discount_views.xml
Normal file
58
encoach_subscription/views/discount_views.xml
Normal file
@@ -0,0 +1,58 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<odoo>
|
||||
<record id="view_encoach_discount_tree" model="ir.ui.view">
|
||||
<field name="name">encoach.discount.tree</field>
|
||||
<field name="model">encoach.discount</field>
|
||||
<field name="arch" type="xml">
|
||||
<list string="Discount Codes">
|
||||
<field name="code"/>
|
||||
<field name="percentage"/>
|
||||
<field name="expiry_date"/>
|
||||
<field name="max_uses"/>
|
||||
<field name="uses"/>
|
||||
</list>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_encoach_discount_form" model="ir.ui.view">
|
||||
<field name="name">encoach.discount.form</field>
|
||||
<field name="model">encoach.discount</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Discount Code">
|
||||
<sheet>
|
||||
<group>
|
||||
<group>
|
||||
<field name="code"/>
|
||||
<field name="percentage"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="expiry_date"/>
|
||||
<field name="max_uses"/>
|
||||
<field name="uses"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_encoach_discount" model="ir.actions.act_window">
|
||||
<field name="name">Discount Codes</field>
|
||||
<field name="res_model">encoach.discount</field>
|
||||
<field name="view_mode">list,form</field>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
Create your first discount code.
|
||||
</p>
|
||||
<p>
|
||||
Discount codes offer percentage-based discounts with optional expiry and usage limits.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<menuitem id="menu_encoach_discounts"
|
||||
name="Discount Codes"
|
||||
parent="encoach_core.menu_encoach_subscription"
|
||||
action="action_encoach_discount"
|
||||
sequence="30"/>
|
||||
</odoo>
|
||||
61
encoach_subscription/views/package_views.xml
Normal file
61
encoach_subscription/views/package_views.xml
Normal file
@@ -0,0 +1,61 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<odoo>
|
||||
<record id="view_encoach_package_tree" model="ir.ui.view">
|
||||
<field name="name">encoach.package.tree</field>
|
||||
<field name="model">encoach.package</field>
|
||||
<field name="arch" type="xml">
|
||||
<list string="Packages">
|
||||
<field name="name"/>
|
||||
<field name="price"/>
|
||||
<field name="currency"/>
|
||||
<field name="duration_days"/>
|
||||
<field name="active"/>
|
||||
</list>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_encoach_package_form" model="ir.ui.view">
|
||||
<field name="name">encoach.package.form</field>
|
||||
<field name="model">encoach.package</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Package">
|
||||
<sheet>
|
||||
<group>
|
||||
<group>
|
||||
<field name="name"/>
|
||||
<field name="price"/>
|
||||
<field name="currency"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="duration_days"/>
|
||||
<field name="active"/>
|
||||
</group>
|
||||
</group>
|
||||
<group>
|
||||
<field name="features" widget="json"/>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_encoach_package" model="ir.actions.act_window">
|
||||
<field name="name">Packages</field>
|
||||
<field name="res_model">encoach.package</field>
|
||||
<field name="view_mode">list,form</field>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
Create your first subscription package.
|
||||
</p>
|
||||
<p>
|
||||
Packages define pricing, duration, and features for EnCoach subscriptions.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<menuitem id="menu_encoach_packages"
|
||||
name="Packages"
|
||||
parent="encoach_core.menu_encoach_subscription"
|
||||
action="action_encoach_package"
|
||||
sequence="10"/>
|
||||
</odoo>
|
||||
65
encoach_subscription/views/payment_views.xml
Normal file
65
encoach_subscription/views/payment_views.xml
Normal file
@@ -0,0 +1,65 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<odoo>
|
||||
<record id="view_encoach_subscription_payment_tree" model="ir.ui.view">
|
||||
<field name="name">encoach.subscription.payment.tree</field>
|
||||
<field name="model">encoach.subscription.payment</field>
|
||||
<field name="arch" type="xml">
|
||||
<list string="Payments">
|
||||
<field name="user_id"/>
|
||||
<field name="package_id"/>
|
||||
<field name="provider"/>
|
||||
<field name="status"/>
|
||||
<field name="amount"/>
|
||||
<field name="currency"/>
|
||||
<field name="transaction_id"/>
|
||||
<field name="created_at"/>
|
||||
</list>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_encoach_subscription_payment_form" model="ir.ui.view">
|
||||
<field name="name">encoach.subscription.payment.form</field>
|
||||
<field name="model">encoach.subscription.payment</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Payment">
|
||||
<sheet>
|
||||
<group>
|
||||
<group>
|
||||
<field name="user_id"/>
|
||||
<field name="package_id"/>
|
||||
<field name="provider"/>
|
||||
<field name="status"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="amount"/>
|
||||
<field name="currency"/>
|
||||
<field name="transaction_id"/>
|
||||
<field name="entity_id"/>
|
||||
<field name="created_at"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_encoach_subscription_payment" model="ir.actions.act_window">
|
||||
<field name="name">Payments</field>
|
||||
<field name="res_model">encoach.subscription.payment</field>
|
||||
<field name="view_mode">list,form</field>
|
||||
<field name="help" type="html">
|
||||
<p class="o_view_nocontent_smiling_face">
|
||||
No payments yet.
|
||||
</p>
|
||||
<p>
|
||||
Payment records track Stripe, PayPal, and Paymob transactions for subscription purchases.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<menuitem id="menu_encoach_payments"
|
||||
name="Payments"
|
||||
parent="encoach_core.menu_encoach_subscription"
|
||||
action="action_encoach_subscription_payment"
|
||||
sequence="20"/>
|
||||
</odoo>
|
||||
Reference in New Issue
Block a user