|
4 | 4 | <field name="name">Properties</field> |
5 | 5 | <field name="res_model">estate.property</field> |
6 | 6 | <field name="view_mode">list,form</field> |
| 7 | + <field name="context">{'search_default_avaliable': 1}</field> |
7 | 8 | <field name="help" type="html"> |
8 | 9 | <p class="o_view_nocontent_smiling_face"> |
9 | 10 | Create your first Property! |
|
33 | 34 | </field> |
34 | 35 | </record> |
35 | 36 |
|
36 | | - <record id="action_estate_view_list" model="ir.ui.view"> |
37 | | - <field name="name">estate.property.list</field> |
38 | | - <field name="model">estate.property</field> |
| 37 | + <record id="action_estate_property_offer" model="ir.actions.act_window"> |
| 38 | + <field name="name">Property Offers</field> |
| 39 | + <field name="res_model">estate.property.offer</field> |
| 40 | + <field name="view_mode">list,form</field> |
| 41 | + <field name="domain">[('property_type_id', '=', active_id)]</field> |
| 42 | + </record> |
| 43 | + |
| 44 | + <record id="action_estate_property_type_form" model="ir.ui.view"> |
| 45 | + <field name="name">estate.property.type.form</field> |
| 46 | + <field name="model">estate.property.type</field> |
39 | 47 | <field name="arch" type="xml"> |
40 | | - <list string="Channel"> |
41 | | - <field name="name" string="Title"/> |
42 | | - <field name="property_type_id"/> |
43 | | - <field name="postcode"/> |
44 | | - <field name="bedrooms"/> |
45 | | - <field name="living_area" string="Living Area(sqm)"/> |
46 | | - <field name="expected_price"/> |
47 | | - <field name="selling_price"/> |
48 | | - <field name="date_avaliability" string="Avaliable From"/> |
49 | | - </list> |
| 48 | + <form name="Property Type List"> |
| 49 | + <header> |
| 50 | + <button class="oe_stat_button" type="action" name="%(estate.action_estate_property_offer)d" icon="fa-list" string="offer"/> |
| 51 | + <field name="offer_count"/> |
| 52 | + </header> |
| 53 | + <sheet> |
| 54 | + <h1> |
| 55 | + <field name="name"/> |
| 56 | + </h1> |
| 57 | + <notebook> |
| 58 | + <page string="Properties"> |
| 59 | + <field name="property_ids"> |
| 60 | + <list> |
| 61 | + <field name="name" string="Title"/> |
| 62 | + <field name="expected_price"/> |
| 63 | + <field name="state"/> |
| 64 | + </list> |
| 65 | + </field> |
| 66 | + </page> |
| 67 | + </notebook> |
| 68 | + </sheet> |
| 69 | + </form> |
50 | 70 | </field> |
51 | 71 | </record> |
52 | 72 |
|
|
56 | 76 | <field name="arch" type="xml"> |
57 | 77 | <form string="Property"> |
58 | 78 | <header> |
59 | | - <button name="action_sold_property" type="object" string="Sold"/> |
60 | | - <button name="action_cancel_offer" type="object" string="Cancel"/> |
| 79 | + <button name="action_sold_property" type="object" string="Sold" invisible="state in ('sold','cancelled')"/> |
| 80 | + <button name="action_cancel_offer" type="object" string="Cancel" invisible="state in ('sold','cancelled')"/> |
| 81 | + <field name="state" widget="statusbar"/> |
61 | 82 | </header> |
62 | 83 | <sheet> |
63 | 84 | <h1> |
64 | 85 | <field name="name" string="Title"/> |
65 | 86 | </h1> |
| 87 | + <field name="tag_ids" widget="many2many_tags" options="{'color_field': 'color'}"/> |
| 88 | + <hr/> |
66 | 89 | <group> |
67 | 90 | <group> |
68 | | - <field name="state" string="Status"/> |
69 | | - <field name="tag_ids" widget="many2many_tags"/> |
70 | | - <field name="postcode"/> |
| 91 | + <field name="postcode"/> |
71 | 92 | <field name="date_avaliability" string="Avaliable From"/> |
72 | 93 | </group> |
73 | 94 | <group> |
74 | | - <field name="property_type_id"/> |
| 95 | + <field name="property_type_id" options="{'no_create': true}"/> |
75 | 96 | <field name="expected_price"/> |
76 | 97 | <field name="selling_price"/> |
77 | 98 | <field name="best_price" string="Best Offer"/> |
|
87 | 108 | <field name="facades"/> |
88 | 109 | <field name="garage"/> |
89 | 110 | <field name="garden"/> |
90 | | - <field name="garden_area" string="Garden Area(sqm)"/> |
91 | | - <field name="garden_orientation"/> |
| 111 | + <field name="garden_area" string="Garden Area(sqm)" invisible="not garden"/> |
| 112 | + <field name="garden_orientation" invisible="not garden"/> |
92 | 113 | <field name="total_area" string="Total Area(sqm)"/> |
93 | 114 | <field name="active"/> |
94 | 115 | </group> |
95 | 116 | </group> |
96 | 117 | </page> |
97 | 118 | <page string="Offers"> |
98 | | - <field name="offer_ids"/> |
| 119 | + <field name="offer_ids" readonly="state in ('offer_accepted','sold','cancelled')"/> |
99 | 120 | </page> |
100 | 121 | <page string="Other info"> |
101 | 122 | <group> |
|
109 | 130 | </field> |
110 | 131 | </record> |
111 | 132 |
|
| 133 | + <record id="action_estate_property_type_view_list" model="ir.ui.view"> |
| 134 | + <field name="name">estate.property.type.list</field> |
| 135 | + <field name="model">estate.property.type</field> |
| 136 | + <field name="arch" type="xml"> |
| 137 | + <list string="Types"> |
| 138 | + <field name="sequence" widget="handle"/> |
| 139 | + <field name="name" string="Type"/> |
| 140 | + </list> |
| 141 | + </field> |
| 142 | + </record> |
| 143 | + |
| 144 | + <record id="action_estate_view_list" model="ir.ui.view"> |
| 145 | + <field name="name">estate.property.list</field> |
| 146 | + <field name="model">estate.property</field> |
| 147 | + <field name="arch" type="xml"> |
| 148 | + <list string="Property" decoration-success="state in ('offer_received','offer_accepted')" decoration-bf="state in ('offer_accepted')" decoration-muted="state in ('sold')"> |
| 149 | + <field name="name" string="Title"/> |
| 150 | + <field name="property_type_id"/> |
| 151 | + <field name="postcode"/> |
| 152 | + <field name="bedrooms"/> |
| 153 | + <field name="living_area" string="Living Area(sqm)"/> |
| 154 | + <field name="expected_price"/> |
| 155 | + <field name="selling_price"/> |
| 156 | + <field name="date_avaliability" string="Avaliable From" optional="hide"/> |
| 157 | + </list> |
| 158 | + </field> |
| 159 | + </record> |
| 160 | + |
112 | 161 | <record id="action_estate_offer_view_list" model="ir.ui.view"> |
113 | 162 | <field name="name">estate.property.offer.list</field> |
114 | 163 | <field name="model">estate.property.offer</field> |
115 | | - <field name="arch" type="xml"> |
116 | | - <list string="Channel"> |
| 164 | + <field name="arch" type="xml"> |
| 165 | + <list string="Offer" editable="bottom" decoration-danger="status=='refused'" decoration-success="status=='accepted'"> |
117 | 166 | <field name="price"/> |
118 | 167 | <field name="partner_id"/> |
119 | 168 | <field name="validity" string="Validity(days)"/> |
120 | 169 | <field name="date_deadline"/> |
121 | 170 | <button name="action_accept" string="Accept" type="object" icon="fa-check" invisible="status in ('accepted', 'refused')"/> |
122 | 171 | <button name="action_refuse" string="Refuse" type="object" icon="fa-times" invisible="status in ('accepted', 'refused')"/> |
123 | | - <field name="status"/> |
124 | 172 | </list> |
125 | 173 | </field> |
126 | 174 | </record> |
127 | 175 |
|
128 | | - <record id="action_estate_offer_view_form" model="ir.ui.view"> |
129 | | - <field name="name">estate.property.offer.form</field> |
130 | | - <field name="model">estate.property.offer</field> |
131 | | - <field name="arch" type="xml"> |
132 | | - <form string="Property"> |
133 | | - <sheet> |
134 | | - <group> |
135 | | - <field name="price"/> |
136 | | - <field name="partner_id"/> |
137 | | - <field name="validity" string="Validity(days)"/> |
138 | | - <field name="date_deadline"/> |
139 | | - <field name="status"/> |
140 | | - </group> |
141 | | - </sheet> |
142 | | - </form> |
| 176 | + <record id="action_estate_property_tag_view_list" model="ir.ui.view"> |
| 177 | + <field name="name">estate.property.tag.list</field> |
| 178 | + <field name="model">estate.property.tag</field> |
| 179 | + <field name="arch" type="xml"> |
| 180 | + <list string="Tag" editable="bottom"> |
| 181 | + <field name="name"/> |
| 182 | + <field name="color" widget="color_picker"/> |
| 183 | + </list> |
143 | 184 | </field> |
144 | 185 | </record> |
145 | 186 |
|
146 | 187 | <record id="action_estate_view_search" model="ir.ui.view"> |
147 | | - <field name="name">estate.property.search</field> |
148 | | - <field name="model">estate.property</field> |
149 | | - <field name="arch" type="xml"> |
150 | | - <search string="Delivery Carrier"> |
151 | | - <field name="name" string="Title"/> |
152 | | - <field name="postcode"/> |
153 | | - <field name="bedrooms"/> |
154 | | - <field name="living_area" string="Living Area(sqm)"/> |
155 | | - <field name="expected_price"/> |
156 | | - <field name="facades"/> |
157 | | - <field name="property_type_id"/> |
158 | | - <separator/> |
159 | | - <filter string="Archived" name="inactive" domain="[('active', '=', False)]"/> |
160 | | - <filter string="Postcode" name="postcode" context="{'group_by':'postcode'}"/> |
161 | | - <filter string="State" name="state" domain="['|',('state', '=', 'new'),('state', '=', 'offer_received')]"/> |
162 | | - </search> |
163 | | - </field> |
| 188 | + <field name="name">estate.property.search</field> |
| 189 | + <field name="model">estate.property</field> |
| 190 | + <field name="arch" type="xml"> |
| 191 | + <search string="Delivery Carrier"> |
| 192 | + <field name="name" string="Title"/> |
| 193 | + <field name="postcode"/> |
| 194 | + <field name="bedrooms"/> |
| 195 | + <field name="living_area" string="Living Area(sqm)" filter_domain="[('living_area', '>=', self)]"/> |
| 196 | + <field name="expected_price"/> |
| 197 | + <field name="facades"/> |
| 198 | + <field name="property_type_id"/> |
| 199 | + <separator/> |
| 200 | + <filter string="Avaliable" name="avaliable" domain="[('state', '=', 'new')]"/> |
| 201 | + <filter string="Archived" name="inactive" domain="[('active', '=', False)]"/> |
| 202 | + <filter string="Postcode" name="postcode" context="{'group_by':'postcode'}"/> |
| 203 | + <filter string="State" name="state" domain="['|',('state', '=', 'new'),('state', '=', 'offer_received')]"/> |
| 204 | + </search> |
| 205 | + </field> |
164 | 206 | </record> |
165 | 207 | </odoo> |
0 commit comments