Pre-alpha. No tagged release and no upgrade path between versions. Use for evaluation and development only, not production.
Core DevPre-alpha

View types

Sumeru workspace views are declared in XML (type on ) and rendered by SWC components registered in core/swc/src/main.ts. Include view modes in window actions: view_mode="kanban,list,form".

Live examples: every type below is implemented in sumeru_custom_addons/addons/engagement_cookbook/views/ — see engagement_cookbook cookbook.

Summary

TypeSWC classStatusPurpose
list / treeListViewFullTabular records, search, bulk delete
formFormViewFullSingle-record edit with sheet layout
kanbanKanbanViewFullBoard grouped by a field
pivotPivotViewFullHTML aggregation table
graphGraphViewv1Bar chart via read_group RPC
calendarCalendarViewv1Date-bucketed event list
ganttGanttViewv1CSS bars from date_start–date_stop
mapMapViewv1Marker list + OpenStreetMap links
cohortCohortViewv1Period table from date_start + measure

List / tree

xml
xml
<view id="view_crm_lead_tree" model="crm.lead" type="list">
  <field name="name"/>
  <field name="partner_id"/>
  <field name="stage_id"/>
  <field name="priority" widget="priority"/>
  <field name="user_id"/>
</view>
View attributeEffect
open="0"Disable row click → form

SWC behaviour: Toolbar with New, search (?q= param), export/import, row selection + bulk delete, server page/sort. When two or more rows are selected, list header object buttons (arch.header.buttons) run via call with active_ids. Row click opens form via SPA navigation.

Form

xml
xml
<view id="view_crm_lead_form" model="crm.lead" type="form">
  <header>
    <button name="action_convert_wizard" type="object" string="Convert"/>
    <button name="action_merge_wizard" type="object" string="Merge"/>
    <button name="action_lost_wizard" type="object" string="Lost"/>
    <field name="stage_id" widget="statusbar" options="clickable:1"/>
  </header>
  <sheet>
    <div class="sum_title">
      <h1><field name="name"/></h1>
    </div>
    <div class="sum_button_box">
      <button type="object" name="action_view_opportunities" string="Opportunities"/>
    </div>
    <group>
      <group string="Lead">
        <field name="partner_id"/>
        <field name="email" widget="email"/>
        <field name="phone" widget="phone"/>
      </group>
      <group string="Assignment">
        <field name="user_id"/>
        <field name="priority" widget="priority"/>
      </group>
    </group>
    <notebook>
      <page string="Internal notes">
        <field name="description" widget="text"/>
      </page>
    </notebook>
  </sheet>
  <chatter/>
</view>

Form layout CSS classes

Div classEffect
sum_titleHero title row (optional avatar column)
sum-title-contact-rowInline email/phone under title
sum_button_box / button_boxStat buttons row

SWC behaviour: Record toolbar (Edit/Save/Cancel/New/Duplicate/Delete), field widgets via registry, optional ChatterPanel when is present. Object buttons toast RPC errors; validation stays inline. Wizards that return {open} open a form dialog; {close} dismisses it without an extra success toast.

Kanban

xml
xml
<view id="view_crm_lead_kanban" model="crm.lead" type="kanban"
      default_group_by="stage_id" records_draggable="1">
  <field name="name"/>
  <field name="partner_id"/>
  <field name="priority" widget="priority"/>
  <field name="user_id" widget="many2one"/>
</view>
View attributeEffect
default_group_byColumn group field
group_byAllowed group fields
records_draggableDrag cards between columns
quick_createInline create in a grouped column. Off when 0 / false / off / no. Default on when grouped.

SWC behaviour: Toolbar with New + search (?q=), grouped columns from server arch.kanban.columns, card click opens form. Quick-create merges workspace defaults into rpc.create. Drag-move errors toast; successful moves stay silent.

Pivot

xml
xml
<view id="view_sale_order_pivot" model="sale.order" type="pivot">
  <field name="partner_id" type="row"/>
  <field name="date_order" type="col"/>
  <field name="amount_total" type="measure"/>
</view>

Read-only HTML table. Aggregates up to 500 rows from action domain.

Graph

Same field roles as pivot (type="row|col|measure" on fields). SWC GraphView calls read_group RPC and renders a bar chart (v1).

Calendar

List-style arch with date/datetime fields. SWC buckets records by date for a month grid (v1).

Gantt (v1)

xml
xml
<gantt date_start="date_start" date_stop="date_stop">
  <field name="name"/>
  <field name="date_start"/>
  <field name="date_stop"/>
</gantt>

Or . Rows are records; bar left/width come from the date range versus the visible scale (day/week/month). Click opens form. Same record set as calendar (500-row collection load).

Map (v1)

xml
xml
<map latitude="latitude" longitude="longitude">
  <field name="name"/>
  <field name="latitude"/>
  <field name="longitude"/>
</map>

No map SDK. Rows with numeric lat/lng become a list plus an OpenStreetMap link (?mlat=&mlon=). Clicking the name opens form. Rows without coordinates are skipped.

Cohort (v1)

xml
xml
<cohort date_start="create_date" interval="month" measure="amount">
  <field name="create_date"/>
  <field name="amount"/>
</cohort>

interval is week or month (default month). measure is a numeric field, or record count when omitted. Client-side HTML table from payload.records (same 500-row cap as pivot). Later-period cells show that period’s measure (not server-side retention SQL).

Report toolbar

On list, form, and kanban views:

xml
xml
<view model="sale.order" type="list" report_download="csv,pdf" bulk_upload="1">

Or nested:

xml
xml
<report download="csv,pdf" upload="1"/>

Enables Export CSV/PDF and Import CSV in the SWC toolbar.

See also