Files
encoach_backend_new_v2/odoo/addons/stock/data/stock_demo2.xml
Yamen Ahmad 3e83d8d7d5 feat: add complete EnCoach backend — Odoo 19 + all addons
Includes:
- Odoo 19 framework (odoo/)
- 27 custom EnCoach addons (new_project/custom_addons/)
  - encoach_core, encoach_api, encoach_lms_api, encoach_adaptive_api
  - encoach_exam, encoach_taxonomy, encoach_adaptive, encoach_assignment
  - encoach_ai, encoach_ai_grading, encoach_ai_generation, encoach_ai_media
  - encoach_courseware, encoach_communication, encoach_subscription
  - encoach_notification, encoach_approval, encoach_branding
  - encoach_classroom, encoach_registration, encoach_stats
  - encoach_faq, encoach_ticket, encoach_training, encoach_resources
  - encoach_adaptive_ai, encoach_sis
- 21 OpenEduCat Enterprise modules (new_project/enterprise-19/)
- 14 OpenEduCat Community modules (new_project/openeducat_erp-19.0/)
- Configuration: odoo.conf, requirements.txt, scripts
- 200+ REST API endpoints with JWT authentication
- SRS and test documentation

Made-with: Cursor
2026-04-01 17:10:04 +04:00

346 lines
18 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<record id="location_refrigerator_small" model="stock.location">
<field name="name">Small Refrigerator</field>
<field name="usage">internal</field>
<field name="location_id" ref="stock.stock_location_14"/>
<field name="barcode">REFRIG</field>
</record>
<record id="product_cable_management_box" model="product.product">
<field name="default_code">FURN_5555</field>
<field name="name">Cable Management Box</field>
<field name="is_storable" eval="True"/>
<field name="weight">0.01</field>
<field name="categ_id" ref="product.product_category_office"/>
<field name="lst_price">100.0</field>
<field name="standard_price">70.0</field>
<field name="weight">1.0</field>
<field name="tracking">lot</field>
<field name="uom_id" ref="uom.product_uom_unit"/>
<field name="image_1920" type="base64" file="stock/static/img/cable_management.jpg"/>
</record>
<record id="lot_product_cable_management" model="stock.lot">
<field name="name">LOT-000001</field>
<field name="product_id" ref="stock.product_cable_management_box"/>
</record>
<record id="lot_product_product_cable_management_box_0" model="stock.lot">
<field name="name">CM-BOX-00001</field>
<field name="product_id" ref="stock.product_cable_management_box"/>
</record>
<record id="lot_product_product_cable_management_box_1" model="stock.lot">
<field name="name">CM-BOX-00002</field>
<field name="product_id" ref="stock.product_cable_management_box"/>
</record>
<record id="stock_inventory_icecream_lot_0" model="stock.quant">
<field name="product_id" ref="stock.product_cable_management_box"/>
<field name="inventory_quantity">50.0</field>
<field name="location_id" ref="stock.stock_location_14"/>
<field name="lot_id" ref="lot_product_product_cable_management_box_0"/>
</record>
<record id="stock_inventory_icecream_lot_1" model="stock.quant">
<field name="product_id" ref="stock.product_cable_management_box"/>
<field name="inventory_quantity">40.0</field>
<field name="location_id" ref="stock.stock_location_14"/>
<field name="lot_id" ref="lot_product_product_cable_management_box_1"/>
</record>
<function model="stock.quant" name="action_apply_inventory">
<function eval="[[('id', 'in', (ref('stock_inventory_icecream_lot_0'),
ref('stock_inventory_icecream_lot_1')
))]]" model="stock.quant" name="search"/>
</function>
<!-- Create STOCK_MOVE for OUT -->
<record id="outgoing_shipment_main_warehouse" model="stock.picking">
<field name="picking_type_id" ref="stock.picking_type_out"/>
<field name="origin">outgoing shipment</field>
<field name="user_id"></field>
<field name="partner_id" ref="base.res_partner_1"/>
<field name="scheduled_date" eval="DateTime.today()"/>
<field name="location_id" ref="stock.stock_location_stock"/>
<field name="location_dest_id" ref="stock.stock_location_customers"/>
<field name="state">draft</field>
<field name="move_ids" model="stock.move" eval="[(0, 0, {
'product_id': ref('product.product_product_27'),
'product_uom': ref('uom.product_uom_unit'),
'product_uom_qty': 15.0,
'picking_type_id': ref('stock.picking_type_out'),
'location_id': ref('stock.stock_location_stock'),
'location_dest_id': ref('stock.stock_location_customers'),
})]"/>
</record>
<record id="outgoing_shipment_main_warehouse1" model="stock.picking">
<field name="picking_type_id" ref="stock.picking_type_out"/>
<field name="origin">outgoing shipment</field>
<field name="user_id"></field>
<field name="partner_id" ref="base.res_partner_1"/>
<field name="scheduled_date" eval="DateTime.today() - timedelta(days=15)"/>
<field name="location_id" ref="stock.stock_location_stock"/>
<field name="location_dest_id" ref="stock.stock_location_customers"/>
<field name="state">draft</field>
<field name="move_ids" model="stock.move" eval="[(0, 0, {
'product_id': ref('product.product_product_6'),
'product_uom': ref('uom.product_uom_unit'),
'product_uom_qty': 180.0,
'picking_type_id': ref('stock.picking_type_out'),
'location_id': ref('stock.stock_location_stock'),
'location_dest_id': ref('stock.stock_location_customers'),
})]"/>
</record>
<record id="outgoing_shipment_main_warehouse2" model="stock.picking">
<field name="picking_type_id" ref="stock.picking_type_out"/>
<field name="origin">outgoing shipment</field>
<field name="user_id"></field>
<field name="partner_id" ref="base.res_partner_1"/>
<field name="scheduled_date" eval="DateTime.today() - timedelta(days=5)"/>
<field name="location_id" ref="stock.stock_location_stock"/>
<field name="location_dest_id" ref="stock.stock_location_customers"/>
<field name="state">draft</field>
<field name="move_ids" model="stock.move" eval="[(0, 0, {
'product_id': ref('product.product_delivery_02'),
'product_uom': ref('uom.product_uom_unit'),
'product_uom_qty': 45.0,
'picking_type_id': ref('stock.picking_type_out'),
'location_id': ref('stock.stock_location_stock'),
'location_dest_id': ref('stock.stock_location_customers'),
})]"/>
</record>
<record id="outgoing_shipment_main_warehouse3" model="stock.picking">
<field name="picking_type_id" ref="stock.picking_type_out"/>
<field name="user_id"></field>
<field name="origin">your company warehouse</field>
<field name="partner_id" ref="base.res_partner_1"/>
<field name="scheduled_date" eval="DateTime.today()"/>
<field name="location_id" ref="stock.stock_location_stock"/>
<field name="location_dest_id" ref="stock.stock_location_customers"/>
<field name="state">draft</field>
<field name="move_ids" model="stock.move" eval="[(0, 0, {
'product_id': ref('product.product_product_5'),
'product_uom': ref('uom.product_uom_unit'),
'product_uom_qty': 75.0,
'picking_type_id': ref('stock.picking_type_out'),
'location_id': ref('stock.stock_location_stock'),
'location_dest_id': ref('stock.stock_location_customers'),
})]"/>
</record>
<record id="outgoing_shipment_main_warehouse4" model="stock.picking">
<field name="picking_type_id" ref="stock.picking_type_out"/>
<field name="origin">outgoing shipment</field>
<field name="user_id"></field>
<field name="partner_id" ref="base.res_partner_1"/>
<field name="scheduled_date" eval="DateTime.today() - timedelta(days=7)"/>
<field name="location_id" ref="stock.stock_location_stock"/>
<field name="location_dest_id" ref="stock.stock_location_customers"/>
<field name="state">draft</field>
<field name="move_ids" model="stock.move" eval="[(0, 0, {
'product_id': ref('product.product_product_3'),
'product_uom': ref('uom.product_uom_unit'),
'product_uom_qty': 16.0,
'picking_type_id': ref('stock.picking_type_out'),
'location_id': ref('stock.stock_location_stock'),
'location_dest_id': ref('stock.stock_location_customers'),
})]"/>
</record>
<record id="outgoing_shipment_main_warehouse5" model="stock.picking">
<field name="picking_type_id" ref="stock.picking_type_out"/>
<field name="origin">outgoing shipment</field>
<field name="user_id"></field>
<field name="partner_id" ref="base.res_partner_1"/>
<field name="scheduled_date" eval="DateTime.today() - timedelta(days=12)"/>
<field name="location_id" ref="stock.stock_location_stock"/>
<field name="location_dest_id" ref="stock.stock_location_customers"/>
<field name="state">draft</field>
<field name="move_ids" model="stock.move" eval="[(0, 0, {
'product_id': ref('product.product_product_3'),
'product_uom': ref('uom.product_uom_unit'),
'product_uom_qty': 40.0,
'picking_type_id': ref('stock.picking_type_out'),
'location_id': ref('stock.stock_location_stock'),
'location_dest_id': ref('stock.stock_location_customers'),
})]"/>
</record>
<record id="outgoing_shipment_main_warehouse6" model="stock.picking">
<field name="picking_type_id" ref="stock.picking_type_out"/>
<field name="origin">outgoing shipment</field>
<field name="user_id"></field>
<field name="partner_id" ref="base.res_partner_1"/>
<field name="scheduled_date" eval="DateTime.today() - timedelta(days=20)"/>
<field name="location_id" ref="stock.stock_location_stock"/>
<field name="location_dest_id" ref="stock.stock_location_customers"/>
<field name="state">draft</field>
<field name="move_ids" model="stock.move" eval="[(0, 0, {
'product_id': ref('product.product_product_6'),
'product_uom': ref('uom.product_uom_unit'),
'product_uom_qty': 50.0,
'picking_type_id': ref('stock.picking_type_out'),
'location_id': ref('stock.stock_location_stock'),
'location_dest_id': ref('stock.stock_location_customers'),
})]"/>
</record>
<!-- Create STOCK_PICKING for IN -->
<record id="incomming_shipment" model="stock.picking">
<field name="user_id"></field>
<field name="picking_type_id" ref="stock.picking_type_in"/>
<field name="location_id" ref="stock.stock_location_suppliers"/>
<field name="location_dest_id" ref="stock.stock_location_stock"/>
<field name="state">draft</field>
<field name="move_ids" model="stock.move" eval="[(0, 0, {
'product_id': ref('stock.product_cable_management_box'),
'product_uom': ref('uom.product_uom_unit'),
'product_uom_qty': 50.0,
'picking_type_id': ref('stock.picking_type_in'),
'location_id': ref('stock.stock_location_suppliers'),
'location_dest_id': ref('stock.stock_location_stock'),
})]"/>
</record>
<record id="incomming_shipment1" model="stock.picking">
<field name="user_id"></field>
<field name="picking_type_id" ref="stock.picking_type_in"/>
<field name="partner_id" ref="base.res_partner_1"/>
<field name="scheduled_date" eval="DateTime.today() - timedelta(days=5)"/>
<field name="location_id" ref="stock.stock_location_suppliers"/>
<field name="location_dest_id" ref="stock.stock_location_stock"/>
<field name="state">draft</field>
<field name="move_ids" model="stock.move" eval="[(0, 0, {
'product_id': ref('product.product_delivery_01'),
'product_uom': ref('uom.product_uom_unit'),
'product_uom_qty': 35.0,
'picking_type_id': ref('stock.picking_type_in'),
'location_id': ref('stock.stock_location_suppliers'),
'location_dest_id': ref('stock.stock_location_stock'),
})]"/>
</record>
<record id="incomming_shipment2" model="stock.picking">
<field name="user_id"></field>
<field name="picking_type_id" ref="stock.picking_type_in"/>
<field name="partner_id" ref="base.res_partner_1"/>
<field name="location_id" ref="stock.stock_location_suppliers"/>
<field name="location_dest_id" ref="stock.stock_location_stock"/>
<field name="state">draft</field>
<field name="move_ids" model="stock.move" eval="[(0, 0, {
'product_id': ref('product.product_product_22'),
'product_uom': ref('uom.product_uom_unit'),
'product_uom_qty': 125.0,
'picking_type_id': ref('stock.picking_type_in'),
'location_id': ref('stock.stock_location_suppliers'),
'location_dest_id': ref('stock.stock_location_stock'),
})]"/>
</record>
<record id="incomming_shipment3" model="stock.picking">
<field name="user_id"></field>
<field name="picking_type_id" ref="stock.picking_type_in"/>
<field name="partner_id" ref="base.res_partner_1"/>
<field name="location_id" ref="stock.stock_location_suppliers"/>
<field name="location_dest_id" ref="stock.stock_location_stock"/>
<field name="state">draft</field>
<field name="move_ids" model="stock.move" eval="[(0, 0, {
'product_id': ref('product.product_product_10'),
'product_uom': ref('uom.product_uom_unit'),
'product_uom_qty': 120.0,
'picking_type_id': ref('stock.picking_type_in'),
'location_id': ref('stock.stock_location_suppliers'),
'location_dest_id': ref('stock.stock_location_stock'),
})]"/>
</record>
<record id="incomming_shipment4" model="stock.picking">
<field name="user_id"></field>
<field name="picking_type_id" ref="stock.picking_type_in"/>
<field name="partner_id" ref="base.res_partner_1"/>
<field name="location_id" ref="stock.stock_location_suppliers"/>
<field name="location_dest_id" ref="stock.stock_location_stock"/>
<field name="state">draft</field>
<field name="move_ids" model="stock.move" eval="[(0, 0, {
'product_id': ref('product.product_delivery_02'),
'product_uom': ref('uom.product_uom_unit'),
'product_uom_qty': 50.0,
'picking_type_id': ref('stock.picking_type_in'),
'location_id': ref('stock.stock_location_suppliers'),
'location_dest_id': ref('stock.stock_location_stock'),
})]"/>
</record>
<function model="stock.picking" name="action_confirm">
<value model="stock.picking" eval="[
obj().env.ref('stock.outgoing_shipment_main_warehouse').id,
obj().env.ref('stock.outgoing_shipment_main_warehouse1').id,
obj().env.ref('stock.outgoing_shipment_main_warehouse4').id,
obj().env.ref('stock.outgoing_shipment_main_warehouse5').id,
obj().env.ref('stock.outgoing_shipment_main_warehouse6').id,
obj().env.ref('stock.incomming_shipment1').id,
obj().env.ref('stock.incomming_shipment2').id,
obj().env.ref('stock.incomming_shipment3').id,]"/>
</function>
<function model="stock.picking" name="action_assign">
<value model="stock.picking" eval="[
obj().env.ref('stock.outgoing_shipment_main_warehouse1').id,
obj().env.ref('stock.outgoing_shipment_main_warehouse5').id,
obj().env.ref('stock.outgoing_shipment_main_warehouse6').id,
]"/>
</function>
<!-- Adds move lines qty. done -->
<function model="stock.move.line" name="write">
<value model="stock.move.line" search="[('picking_id', '=', ref('stock.outgoing_shipment_main_warehouse1'))]"/>
<value eval="{'quantity': 100}"/>
</function>
<function model="stock.move.line" name="write">
<value model="stock.move.line" search="[('picking_id', '=', ref('stock.outgoing_shipment_main_warehouse5'))]"/>
<value eval="{'quantity': 32}"/>
</function>
<function model="stock.move.line" name="write">
<value model="stock.move.line" search="[('picking_id', '=', ref('stock.outgoing_shipment_main_warehouse6'))]"/>
<value eval="{'quantity': 50}"/>
</function>
<function model="stock.picking" name="_action_done">
<value model="stock.picking" eval="[
obj().env.ref('stock.outgoing_shipment_main_warehouse1').id,
obj().env.ref('stock.outgoing_shipment_main_warehouse5').id,
obj().env.ref('stock.outgoing_shipment_main_warehouse6').id]"/>
</function>
<record id="stock.outgoing_shipment_main_warehouse5" model="stock.picking">
<field name="date_done" eval="DateTime.today() - timedelta(days=17)"/>
</record>
<record id="stock.outgoing_shipment_main_warehouse6" model="stock.picking">
<field name="date_done" eval="DateTime.today() - timedelta(days=7)"/>
</record>
<function model="stock.move" name="write">
<value model="stock.move" search="[('picking_id', '=', ref('stock.outgoing_shipment_main_warehouse4'))]"/>
<value eval="{'date': DateTime.today() + timedelta(days=3)}"/>
</function>
<function model="stock.move" name="write">
<value model="stock.move" search="[('picking_id', '=', ref('stock.outgoing_shipment_main_warehouse5'))]"/>
<value eval="{'date': DateTime.today() - timedelta(days=18)}"/>
</function>
<function model="stock.move" name="write">
<value model="stock.move" search="[('picking_id', '=', ref('stock.outgoing_shipment_main_warehouse6'))]"/>
<value eval="{'date': DateTime.today() - timedelta(days=7)}"/>
</function>
</data>
</odoo>