|
222 | 222 | </field> |
223 | 223 | </record> |
224 | 224 |
|
225 | | - <!-- ═══════════════════════════════════════════════════════════════════════ |
226 | | - Farm membership-completeness UX (#939) |
227 | | - ═══════════════════════════════════════════════════════════════════════ --> |
228 | | - |
229 | | - <!-- Search filters: surface farms with no members or no head member --> |
230 | | - <record id="view_registry_groups_filter_farm" model="ir.ui.view"> |
231 | | - <field name="name">res.partner.search.farm.member_completeness</field> |
232 | | - <field name="model">res.partner</field> |
233 | | - <field name="inherit_id" ref="spp_registry.view_registry_groups_filter" /> |
234 | | - <field name="priority">50</field> |
235 | | - <field name="arch" type="xml"> |
236 | | - <xpath expr="//filter[@name='has_phone']" position="after"> |
237 | | - <separator /> |
238 | | - <filter |
239 | | - string="No Members" |
240 | | - name="no_members" |
241 | | - domain="[('member_count', '=', 0)]" |
242 | | - /> |
243 | | - <filter |
244 | | - string="No Head Member" |
245 | | - name="no_head_member" |
246 | | - domain="[('has_head_member', '=', False)]" |
247 | | - /> |
248 | | - </xpath> |
249 | | - </field> |
250 | | - </record> |
251 | | - |
252 | | - <!-- List view: warning decoration + optional column for member count. |
253 | | - The decoration scopes to farm records (those with farm_type_id set) |
254 | | - so it doesn't fire on plain group registrants. --> |
255 | | - <record id="view_groups_list_tree_farm" model="ir.ui.view"> |
256 | | - <field name="name">res.partner.list.farm.member_completeness</field> |
257 | | - <field name="model">res.partner</field> |
258 | | - <field name="inherit_id" ref="spp_registry.view_groups_list_tree" /> |
259 | | - <field name="priority">50</field> |
260 | | - <field name="arch" type="xml"> |
261 | | - <xpath expr="//list" position="inside"> |
262 | | - <field name="member_count" optional="hide" /> |
263 | | - <field name="has_head_member" optional="hide" widget="boolean" /> |
264 | | - </xpath> |
265 | | - </field> |
266 | | - </record> |
267 | | - |
268 | | - <!-- Form-top banners: warn when a group has no members, or has members |
269 | | - but no designated head. The two banners are mutually exclusive: |
270 | | - no-members fires only when member_count == 0; no-head fires only |
271 | | - when there are members but none flagged as head. Scoped to |
272 | | - is_group so neither appears on individuals. --> |
273 | | - <record id="view_individuals_form_farm_no_members" model="ir.ui.view"> |
274 | | - <field name="name">res.partner.form.farm.member_completeness_banners</field> |
275 | | - <field name="model">res.partner</field> |
276 | | - <field name="inherit_id" ref="spp_registry.view_individuals_form" /> |
277 | | - <field name="priority">50</field> |
278 | | - <field name="arch" type="xml"> |
279 | | - <xpath expr="//div[@name='button_box']" position="before"> |
280 | | - <div |
281 | | - class="alert alert-warning text-center" |
282 | | - role="alert" |
283 | | - invisible="not is_group or member_count != 0" |
284 | | - > |
285 | | - <i class="fa fa-exclamation-triangle me-2" title="Warning" /> |
286 | | - No members linked to this group yet. |
287 | | - </div> |
288 | | - <div |
289 | | - class="alert alert-danger text-center" |
290 | | - role="alert" |
291 | | - invisible="not is_group or member_count == 0 or has_head_member" |
292 | | - > |
293 | | - <i class="fa fa-exclamation-triangle me-2" title="Warning" /> |
294 | | - No head member designated. |
295 | | - </div> |
296 | | - </xpath> |
297 | | - </field> |
298 | | - </record> |
299 | | - |
300 | 225 | <!-- Add view activity actions to res.partner --> |
301 | 226 | <record id="res_partner_view_crop_activities" model="ir.actions.server"> |
302 | 227 | <field name="name">View Crop Activities</field> |
|
0 commit comments