🎉 Initialize module repository

This commit is contained in:
Marc Wempe
2026-04-03 23:08:57 +02:00
commit c679a207d4
16 changed files with 1394 additions and 0 deletions

View File

@@ -0,0 +1,200 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="mvd_tcg_card_view_search" model="ir.ui.view">
<field name="name">mvd.tcg.card.view.search</field>
<field name="model">mvd.tcg.card</field>
<field name="arch" type="xml">
<search string="Cards">
<field
name="name"
string="Card"
filter_domain="[('name', 'ilike', self)]"
/>
<field name="game_id"/>
<field name="external_ref" groups="mvd_tcg_base.mvd_tcg_base_group_administrator,base.group_system"/>
<field name="state"/>
<separator/>
<filter name="draft" string="Draft" domain="[('state', '=', 'draft')]"/>
<filter name="validated" string="Validated" domain="[('state', '=', 'validated')]"/>
<filter name="inactive" string="Archived" domain="[('active', '=', False)]"/>
<group>
<filter
name="group_by_game_id"
string="Game"
context="{'group_by': 'game_id'}"
/>
<filter
name="group_by_state"
string="State"
context="{'group_by': 'state'}"
/>
</group>
</search>
</field>
</record>
<record id="mvd_tcg_card_view_list" model="ir.ui.view">
<field name="name">mvd.tcg.card.view.list</field>
<field name="model">mvd.tcg.card</field>
<field name="arch" type="xml">
<list string="Cards" sample="1" default_order="game_id, sequence, name, id">
<field name="sequence" widget="handle"/>
<field name="name"/>
<field name="game_id" optional="show"/>
<field name="state" widget="badge" optional="show"/>
<field name="active" column_invisible="True"/>
</list>
</field>
</record>
<record id="mvd_tcg_card_view_kanban" model="ir.ui.view">
<field name="name">mvd.tcg.card.view.kanban</field>
<field name="model">mvd.tcg.card</field>
<field name="arch" type="xml">
<kanban sample="1">
<field name="name"/>
<field name="game_id"/>
<field name="image_128"/>
<templates>
<t t-name="card" class="flex-row">
<main class="pe-2">
<div class="mb-1">
<div class="mb-0 h5">
<field name="name"/>
</div>
<div class="text-muted">
<field name="game_id"/>
</div>
</div>
</main>
<aside>
<field
name="image_128"
widget="image"
alt="Card"
options="{'img_class': 'w-100 object-fit-contain'}"
invisible="not image_128"
/>
</aside>
</t>
</templates>
</kanban>
</field>
</record>
<record id="mvd_tcg_card_view_form" model="ir.ui.view">
<field name="name">mvd.tcg.card.view.form</field>
<field name="model">mvd.tcg.card</field>
<field name="arch" type="xml">
<form string="Card">
<header>
<button
name="action_validate"
string="Validate"
type="object"
class="btn-primary"
invisible="state != 'draft'"
groups="mvd_tcg_base.mvd_tcg_base_group_manager,base.group_system"
/>
<button
name="action_reset_to_draft"
string="Reset to Draft"
type="object"
invisible="state != 'validated'"
groups="mvd_tcg_base.mvd_tcg_base_group_manager,base.group_system"
/>
<field name="state" widget="statusbar" statusbar_visible="draft,validated"/>
</header>
<sheet name="card_form" readonly="state == 'validated'">
<div class="oe_button_box" name="button_box"/>
<widget name="web_ribbon" title="Archived" bg_color="text-bg-danger" invisible="active"/>
<field name="id" invisible="1"/>
<field name="active" invisible="1"/>
<field name="state" invisible="1"/>
<field
name="image_1920"
widget="image"
class="oe_avatar"
options="{'convert_to_webp': True, 'preview_image': 'image_128'}"
readonly="state == 'validated'"
/>
<div class="oe_title">
<label for="name" string="Card"/>
<h1>
<field
class="text-break"
name="name"
widget="text"
options="{'line_breaks': False}"
placeholder="e.g. Black Lotus"
readonly="state == 'validated'"
/>
</h1>
<div class="text-muted fs-6">
<field name="game_id" readonly="state == 'validated'"/>
</div>
</div>
<notebook>
<page string="General Information" name="general_information">
<group readonly="state == 'validated'">
<group name="group_identity">
<field name="game_id"/>
</group>
<group name="group_management">
<field name="sequence" groups="mvd_tcg_base.mvd_tcg_base_group_manager,base.group_system"/>
</group>
</group>
<group string="Description" name="description_group">
<field
colspan="2"
name="description"
widget="html"
nolabel="1"
placeholder="Add a shared card reference description."
/>
</group>
</page>
<page
string="Internal Notes"
name="internal_notes"
groups="mvd_tcg_base.mvd_tcg_base_group_manager,base.group_system"
>
<field
name="note"
placeholder="Add internal neutral notes for this card reference."
readonly="state == 'validated'"
/>
</page>
<page string="Technical" name="technical_information" groups="mvd_tcg_base.mvd_tcg_base_group_administrator,base.group_system">
<group readonly="1">
<group>
<field name="external_ref"/>
</group>
<group>
<field name="sequence"/>
</group>
</group>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="mvd_tcg_card_action" model="ir.actions.act_window">
<field name="name">Cards</field>
<field name="res_model">mvd.tcg.card</field>
<field name="view_mode">kanban,list,form</field>
<field name="view_id" ref="mvd_tcg_base.mvd_tcg_card_view_kanban"/>
<field name="search_view_id" ref="mvd_tcg_base.mvd_tcg_card_view_search"/>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Create a new card reference
</p>
<p>
Card references in the base module stay game-neutral and can be
enriched later by game-specific adapters such as MTG.
</p>
</field>
</record>
</odoo>