Merge lp:~openerp-dev/openobject-addons/trunk-imp-quote-builder-dka into lp:openobject-addons
- trunk-imp-quote-builder-dka
- Merge into trunk
Status: | Work in progress |
---|---|
Proposed branch: | lp:~openerp-dev/openobject-addons/trunk-imp-quote-builder-dka |
Merge into: | lp:openobject-addons |
Diff against target: |
511 lines (+171/-161) 6 files modified
website_quote/data/website_quotation_data.xml (+1/-1) website_quote/data/website_quotation_demo.xml (+80/-148) website_quote/models/order.py (+26/-4) website_quote/static/src/css/website_quotation.css (+7/-0) website_quote/views/website_quotation.xml (+1/-1) website_quote/views/website_quotation_backend.xml (+56/-7) |
To merge this branch: | bzr merge lp:~openerp-dev/openobject-addons/trunk-imp-quote-builder-dka |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
OpenERP Core Team | Pending | ||
Review via email: mp+217905@code.launchpad.net |
Commit message
Description of the change
- 9382. By Paramjit Singh Sahota(OpenERP)
-
[MERGE] Merged lp:openobject-addons.
- 9383. By Paramjit Singh Sahota(OpenERP)
-
[MERGE]Merged lp:openobject-addons.
- 9384. By Paramjit Singh Sahota(OpenERP)
-
[FIX] Fixed the issue 'send the quote, the url refer to a signup, it shouldn't and it does not work in an incognito window'
- 9385. By Paramjit Singh Sahota(OpenERP)
-
[FIX] Fixed the issue:: mobile preview: the left menu overlapas the quote
- 9386. By Paramjit Singh Sahota(OpenERP)
-
[IMP] Improved code to have ' Promote products with a designed quotation template you send by email. ' added in nocontent of quotations when website_quote is installed.
- 9387. By Paramjit Singh Sahota(OpenERP)
-
[IMP] Improved code 'Create a quotaion, the template is setted by default'
- 9388. By Mahendra Barad(OpenERP)
-
[Merge]with trunk
- 9389. By Mahendra Barad(OpenERP)
-
[FIX]typo
Unmerged revisions
- 9389. By Mahendra Barad(OpenERP)
-
[FIX]typo
- 9388. By Mahendra Barad(OpenERP)
-
[Merge]with trunk
- 9387. By Paramjit Singh Sahota(OpenERP)
-
[IMP] Improved code 'Create a quotaion, the template is setted by default'
- 9386. By Paramjit Singh Sahota(OpenERP)
-
[IMP] Improved code to have ' Promote products with a designed quotation template you send by email. ' added in nocontent of quotations when website_quote is installed.
- 9385. By Paramjit Singh Sahota(OpenERP)
-
[FIX] Fixed the issue:: mobile preview: the left menu overlapas the quote
- 9384. By Paramjit Singh Sahota(OpenERP)
-
[FIX] Fixed the issue 'send the quote, the url refer to a signup, it shouldn't and it does not work in an incognito window'
- 9383. By Paramjit Singh Sahota(OpenERP)
-
[MERGE]Merged lp:openobject-addons.
- 9382. By Paramjit Singh Sahota(OpenERP)
-
[MERGE] Merged lp:openobject-addons.
- 9381. By Darshan Kalola(OpenERP)
-
[IMP]website_
quote:added quote_viewed boolean field to set button highlight or set as gray. - 9380. By Darshan Kalola(OpenERP)
-
[MERGE]sync with trunk.
Preview Diff
1 | === modified file 'website_quote/data/website_quotation_data.xml' | |||
2 | --- website_quote/data/website_quotation_data.xml 2014-01-25 23:25:25 +0000 | |||
3 | +++ website_quote/data/website_quotation_data.xml 2014-05-19 11:53:30 +0000 | |||
4 | @@ -5,7 +5,7 @@ | |||
5 | 5 | Update Email template to send right quote url | 5 | Update Email template to send right quote url |
6 | 6 | --> | 6 | --> |
7 | 7 | 7 | ||
9 | 8 | <record id="sale.email_template_edi_sale" model="email.template"> | 8 | <record id="portal_sale.email_template_edi_sale" model="email.template"> |
10 | 9 | <field name="body_html"><![CDATA[ | 9 | <field name="body_html"><![CDATA[ |
11 | 10 | <div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; "> | 10 | <div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; "> |
12 | 11 | 11 | ||
13 | 12 | 12 | ||
14 | === modified file 'website_quote/data/website_quotation_demo.xml' | |||
15 | --- website_quote/data/website_quotation_demo.xml 2014-01-25 23:08:47 +0000 | |||
16 | +++ website_quote/data/website_quotation_demo.xml 2014-05-19 11:53:30 +0000 | |||
17 | @@ -58,95 +58,70 @@ | |||
18 | 58 | <field name="website_description" type="xml"> | 58 | <field name="website_description" type="xml"> |
19 | 59 | 59 | ||
20 | 60 | <section data-snippet-id="title"> | 60 | <section data-snippet-id="title"> |
22 | 61 | <h1 class="page-header">Our Partnership Offer</h1> | 61 | <h1 class="page-header">Our Customer Offer</h1> |
23 | 62 | </section> | 62 | </section> |
24 | 63 | <section data-snippet-id="text-block"> | 63 | <section data-snippet-id="text-block"> |
25 | 64 | <div class="row"> | 64 | <div class="row"> |
26 | 65 | <div class="col-md-12"> | 65 | <div class="col-md-12"> |
27 | 66 | <p> | 66 | <p> |
31 | 67 | Our partnership offer includes all you need to | 67 | Our partnership offer includes all you need to grow your business |
32 | 68 | grow your business and deliver quality services | 68 | and deliver quality services with the our Partner Program. |
30 | 69 | with the OpenERP Partner Program. | ||
33 | 70 | </p><p> | 69 | </p><p> |
113 | 71 | It includes <strong>discounts on OpenERP | 70 | It includes <strong>discounts</strong>, technical and/or functional |
114 | 72 | Enterprise</strong>, technical and/or functional | 71 | <strong>trainings</strong>, <strong>support</strong> |
115 | 73 | <strong>trainings</strong>, | 72 | services, <strong>marketing documents</strong>, |
116 | 74 | <strong>support</strong> services, | 73 | access to the <strong>portal</strong>, sales support from a |
117 | 75 | <strong>marketing documents</strong>, access to | 74 | <strong>dedicated account manager</strong>. |
118 | 76 | the <strong>partner portal</strong>, rights to | 75 | </p> |
119 | 77 | <strong>use the trademark</strong>, sales support | 76 | </div> |
120 | 78 | from a <strong>dedicated account manager</strong>. | 77 | </div> |
121 | 79 | </p> | 78 | </section> |
122 | 80 | </div> | 79 | |
123 | 81 | </div> | 80 | <section data-snippet-id="pricing1"> |
124 | 82 | </section> | 81 | <div class="panel panel-info"> |
125 | 83 | 82 | <div class="panel-heading"> | |
126 | 84 | <section data-snippet-id="pricing"> | 83 | <h3 class="panel-title">A Valuable Product</h3> |
127 | 85 | <div class="row mt32"> | 84 | </div> |
128 | 86 | <div class="col-md-4"> | 85 | <div class="panel-body"> |
129 | 87 | <div class="panel panel-info"> | 86 | <p> |
130 | 88 | <div class="panel-heading"> | 87 | Deliver <strong>strong value added services</strong> |
131 | 89 | <h3 class="panel-title">A Valuable Product</h3> | 88 | as you can rely on a leading open source software, |
132 | 90 | </div> | 89 | with the support of the publisher. |
133 | 91 | <div class="panel-body"> | 90 | </p> |
134 | 92 | <p> | 91 | </div> |
135 | 93 | Deliver <strong>strong value added services</strong> as you can | 92 | </div> |
136 | 94 | rely on a leading open source software, with | 93 | </section> |
137 | 95 | the support of the publisher. | 94 | <section data-snippet-id="pricing2"> |
138 | 96 | <p></p> | 95 | <div class="panel panel-info"> |
139 | 97 | <strong>Grow with your existing customer base</strong> | 96 | <div class="panel-heading"> |
140 | 98 | by continuously proposing new modules. | 97 | <h3 class="panel-title">A Strong Demand</h3> |
141 | 99 | </p> | 98 | </div> |
142 | 100 | </div> | 99 | <div class="panel-body"> |
143 | 101 | </div> | 100 | <p> |
144 | 102 | </div> | 101 | Enjoy the traction of the <strong>fastest growing management</strong> |
145 | 103 | <div class="col-md-4"> | 102 | in the world. |
146 | 104 | <div class="panel panel-info"> | 103 | </p><p> |
147 | 105 | <div class="panel-heading"> | 104 | Benefit from the growing customer demand and our brand. |
148 | 106 | <h3 class="panel-title">A Strong Demand</h3> | 105 | </p> |
149 | 107 | </div> | 106 | </div> |
150 | 108 | <div class="panel-body"> | 107 | </div> |
151 | 109 | <p> | 108 | </section> |
152 | 110 | Enjoy the traction of the <strong>fastest growing | 109 | <section data-snippet-id="pricing3"> |
153 | 111 | management software</strong> in the world. | 110 | <div class="panel panel-info"> |
154 | 112 | </p><p> | 111 | <div class="panel-heading"> |
155 | 113 | Benefit from the growing customer demand | 112 | <h3 class="panel-title">High Margins</h3> |
156 | 114 | and our OpenERP brand. | 113 | </div> |
157 | 115 | </p> | 114 | <div class="panel-body"> |
158 | 116 | </div> | 115 | <p> |
159 | 117 | </div> | 116 | <strong>Get high billing rates</strong> |
160 | 118 | </div> | 117 | as you deliver a highly valuable product. |
161 | 119 | <div class="col-md-4"> | 118 | </p><p> |
162 | 120 | <div class="panel panel-info"> | 119 | Grow by developing a <strong>recurring revenue flow</strong> |
163 | 121 | <div class="panel-heading"> | 120 | from the Enterprise's commission system. |
164 | 122 | <h3 class="panel-title">High Margins</h3> | 121 | </p> |
165 | 123 | </div> | 122 | </div> |
166 | 124 | <div class="panel-body"> | 123 | </div> |
167 | 125 | <p> | 124 | </section> |
89 | 126 | <strong>Get high billing rates</strong> as you deliver a | ||
90 | 127 | highly valuable software. | ||
91 | 128 | </p><p> | ||
92 | 129 | Grow by developing a <strong>recurring | ||
93 | 130 | revenue flow</strong> from OpenERP | ||
94 | 131 | Enterprise's commission system. | ||
95 | 132 | </p> | ||
96 | 133 | </div> | ||
97 | 134 | </div> | ||
98 | 135 | </div> | ||
99 | 136 | </div> | ||
100 | 137 | </section> | ||
101 | 138 | |||
102 | 139 | <section data-snippet-id="text-block"> | ||
103 | 140 | <h2>A Dedicated Account Manager</h2> | ||
104 | 141 | <p> | ||
105 | 142 | We will assign you a dedicated account manager, an | ||
106 | 143 | experienced sales person, to help you develop your | ||
107 | 144 | OpenERP business. The account manager helps you get | ||
108 | 145 | leads, close deals, gives you feedback and best | ||
109 | 146 | practices, delivers sales training and is your direct | ||
110 | 147 | point of contact for any request you may have. | ||
111 | 148 | </p> | ||
112 | 149 | </section> | ||
168 | 150 | 125 | ||
169 | 151 | <section data-snippet-id="text-block"> | 126 | <section data-snippet-id="text-block"> |
170 | 152 | <div class="row"> | 127 | <div class="row"> |
171 | @@ -155,11 +130,10 @@ | |||
172 | 155 | </div> | 130 | </div> |
173 | 156 | <div class="col-md-7"> | 131 | <div class="col-md-7"> |
174 | 157 | <p> | 132 | <p> |
180 | 158 | For an extra fee, partners can get access to OpenERP's | 133 | For an extra fee, partners can get access to core R&D team members |
181 | 159 | core developers and functional experts. This can help | 134 | and experts. This can help you succeed in delivering more complex or |
182 | 160 | you succeed in delivering more complex or bigger | 135 | bigger projects by getting the support |
183 | 161 | projects by getting the support of highly experienced | 136 | of highly experienced consultants on demand. |
179 | 162 | consultants on demand. | ||
184 | 163 | </p> | 137 | </p> |
185 | 164 | </div> | 138 | </div> |
186 | 165 | <div class="col-md-5"> | 139 | <div class="col-md-5"> |
187 | @@ -175,12 +149,12 @@ | |||
188 | 175 | </div> | 149 | </div> |
189 | 176 | <div class="col-md-7"> | 150 | <div class="col-md-7"> |
190 | 177 | <p> | 151 | <p> |
197 | 178 | OpenERP promotes its partners through various ways: | 152 | Our Team promotes its partners through various ways: |
198 | 179 | publication on our website, official communication, | 153 | publication on our website, official communication, |
199 | 180 | publication of your success stories, etc. As soon as | 154 | publication of your success stories, etc. As soon as |
200 | 181 | you become an OpenERP partner and have followed the | 155 | you become a partner and have followed the official |
201 | 182 | official trainings, you will be visible on the partner | 156 | trainings, you will be visible on the partner directory |
202 | 183 | directory listing. | 157 | listing. |
203 | 184 | </p> | 158 | </p> |
204 | 185 | </div> | 159 | </div> |
205 | 186 | <div class="col-md-5"> | 160 | <div class="col-md-5"> |
206 | @@ -196,12 +170,11 @@ | |||
207 | 196 | </div> | 170 | </div> |
208 | 197 | <div class="col-md-7"> | 171 | <div class="col-md-7"> |
209 | 198 | <p> | 172 | <p> |
216 | 199 | Every year, we redirect more than 100,000 customer | 173 | Every year, we redirect more than 100,000 customer requests to our partners. |
217 | 200 | requests to our official partners. These are prospects | 174 | These are prospects that filled a form on the our website and wanted to use |
218 | 201 | that filled a form on the OpenERP website and wanted to | 175 | the product. The right partner to fulfill the customer request is selected |
219 | 202 | use OpenERP. The right partner to fulfill the customer | 176 | based on the customer localization (nearest partner) and the grade of |
220 | 203 | request is selected based on the customer localization | 177 | the partner. |
215 | 204 | (nearest partner) and the grade of the partner. | ||
221 | 205 | </p> | 178 | </p> |
222 | 206 | </div> | 179 | </div> |
223 | 207 | <div class="col-md-5"> | 180 | <div class="col-md-5"> |
224 | @@ -209,42 +182,6 @@ | |||
225 | 209 | </div> | 182 | </div> |
226 | 210 | </div> | 183 | </div> |
227 | 211 | </section> | 184 | </section> |
228 | 212 | |||
229 | 213 | <section data-snippet-id="text-block"> | ||
230 | 214 | <h2>Benefit from the OpenERP branding</h2> | ||
231 | 215 | <p> | ||
232 | 216 | Every year, we redirect more than 100,000 customer | ||
233 | 217 | requests to our official partners. These are prospects | ||
234 | 218 | that filled a form on the OpenERP website and wanted to | ||
235 | 219 | use OpenERP. The right partner to fulfill the customer | ||
236 | 220 | request is selected based on the customer localization | ||
237 | 221 | (nearest partner) and the grade of the partner. | ||
238 | 222 | </p> | ||
239 | 223 | </section> | ||
240 | 224 | |||
241 | 225 | <section class="mb32" data-snippet-id="text-block"> | ||
242 | 226 | <h2>Test developments automatically</h2> | ||
243 | 227 | <div class="row"> | ||
244 | 228 | <div class="col-md-5"> | ||
245 | 229 | <img src="/website_quote/static/src/img/partner_sc_01.png" class="img shadow"/> | ||
246 | 230 | </div> | ||
247 | 231 | <div class="col-md-7"> | ||
248 | 232 | <p class="mt23"> | ||
249 | 233 | Save time in your implementation project by having your | ||
250 | 234 | developments tested automatically by our automated test | ||
251 | 235 | servers. At every code commit, you get a full OpenERP | ||
252 | 236 | instance that you can try out online. When this | ||
253 | 237 | instance is deployed, your code is automatically put | ||
254 | 238 | through our 2000+ automated unit tests. | ||
255 | 239 | </p><p> | ||
256 | 240 | Our automated testing server software is called Runbot, | ||
257 | 241 | and you can try it out here: http://runbot.openerp.com. | ||
258 | 242 | A dedicated runbot server is available for every | ||
259 | 243 | partner. | ||
260 | 244 | </p> | ||
261 | 245 | </div> | ||
262 | 246 | </div> | ||
263 | 247 | </section> | ||
264 | 248 | </field> | 185 | </field> |
265 | 249 | </record> | 186 | </record> |
266 | 250 | 187 | ||
267 | @@ -258,27 +195,22 @@ | |||
268 | 258 | <field name="discount">10.00</field> | 195 | <field name="discount">10.00</field> |
269 | 259 | <field name="website_description" type="html"> | 196 | <field name="website_description" type="html"> |
270 | 260 | <section data-snippet-id="title"> | 197 | <section data-snippet-id="title"> |
272 | 261 | <h1>Online Training + Certification</h1> | 198 | <h1>Training + Certification</h1> |
273 | 262 | </section> | 199 | </section> |
274 | 263 | <section data-snippet-id="text-image"> | 200 | <section data-snippet-id="text-image"> |
275 | 264 | <div class="row"> | 201 | <div class="row"> |
276 | 265 | <div class="col-md-12 mb32"> | 202 | <div class="col-md-12 mb32"> |
287 | 266 | <p>These courses feature the same high quality course content found in our traditional classroom trainings, supplemented with modular sessions and cloud-based labs. Many of our online learning courses also include dozens of recorded webinars and live sessions by our senior instructors. At the end of the training, you can pass the OpenERP Certification exam in one of the 5000+ Pearson VUE test centers worldwide.</p> | 203 | <p> |
288 | 267 | </div> | 204 | These courses feature the same high quality course content found in our traditional classroom trainings, supplemented with |
289 | 268 | <div class="col-md-offset-1"> | 205 | modular sessions and cloudbased labs. Many of our online learning courses also include dozens of recorded webinars and live |
290 | 269 | <h3>Your advantages</h3> | 206 | sessions by our senior instructors. At the end of the training, you can pass the Certification exam. |
291 | 270 | <ul> | 207 | </p> |
282 | 271 | <li>Modular approach applied to the learning method</li> | ||
283 | 272 | <li>New interactive learning experience</li> | ||
284 | 273 | <li>Lower training budget for the same quality courses</li> | ||
285 | 274 | <li>Better comfort to facilitate your learning process</li> | ||
286 | 275 | </ul> | ||
292 | 276 | </div> | 208 | </div> |
293 | 277 | <div class="col-md-12"> | 209 | <div class="col-md-12"> |
294 | 278 | <h2>Structure of the Training</h2> | 210 | <h2>Structure of the Training</h2> |
295 | 279 | </div> | 211 | </div> |
296 | 280 | <div class="col-md-5 col-md-offset-1 mt16 mb16"> | 212 | <div class="col-md-5 col-md-offset-1 mt16 mb16"> |
298 | 281 | <img class="img img-responsive" src="https://www.openerp.com/saas_master/static/site_new/img/layout/online_training.png"/> | 213 | <img class="img img-responsive" src="https://www.odoo.com/saas_master/static/site_new/img/layout/online_training.png"/> |
299 | 282 | </div> | 214 | </div> |
300 | 283 | <div class="col-md-6 mt32"> | 215 | <div class="col-md-6 mt32"> |
301 | 284 | <h4><strong>There are three components to the training</strong></h4> | 216 | <h4><strong>There are three components to the training</strong></h4> |
302 | 285 | 217 | ||
303 | === modified file 'website_quote/models/order.py' | |||
304 | --- website_quote/models/order.py 2014-04-11 14:20:22 +0000 | |||
305 | +++ website_quote/models/order.py 2014-05-19 11:53:30 +0000 | |||
306 | @@ -32,7 +32,7 @@ | |||
307 | 32 | _columns = { | 32 | _columns = { |
308 | 33 | 'name': fields.char('Quotation Template', size=256, required=True), | 33 | 'name': fields.char('Quotation Template', size=256, required=True), |
309 | 34 | 'website_description': fields.html('Description', translate=True), | 34 | 'website_description': fields.html('Description', translate=True), |
311 | 35 | 'quote_line': fields.one2many('sale.quote.line', 'quote_id', 'Quote Template Lines'), | 35 | 'quote_line': fields.one2many('sale.quote.line', 'quote_id', 'Quotation Template Lines'), |
312 | 36 | 'note': fields.text('Terms and conditions'), | 36 | 'note': fields.text('Terms and conditions'), |
313 | 37 | 'options': fields.one2many('sale.quote.option', 'template_id', 'Optional Products Lines'), | 37 | 'options': fields.one2many('sale.quote.option', 'template_id', 'Optional Products Lines'), |
314 | 38 | 'number_of_days': fields.integer('Quote Duration', help='Number of days for the validaty date computation of the quotation'), | 38 | 'number_of_days': fields.integer('Quote Duration', help='Number of days for the validaty date computation of the quotation'), |
315 | @@ -111,19 +111,38 @@ | |||
316 | 111 | 111 | ||
317 | 112 | _columns = { | 112 | _columns = { |
318 | 113 | 'access_token': fields.char('Security Token', size=256, required=True), | 113 | 'access_token': fields.char('Security Token', size=256, required=True), |
320 | 114 | 'template_id': fields.many2one('sale.quote.template', 'Quote Template'), | 114 | 'template_id': fields.many2one('sale.quote.template', 'Quotation Template'), |
321 | 115 | 'website_description': fields.html('Description'), | 115 | 'website_description': fields.html('Description'), |
322 | 116 | 'options' : fields.one2many('sale.order.option', 'order_id', 'Optional Products Lines'), | 116 | 'options' : fields.one2many('sale.order.option', 'order_id', 'Optional Products Lines'), |
323 | 117 | 'validity_date': fields.date('Validity Date'), | 117 | 'validity_date': fields.date('Validity Date'), |
324 | 118 | 'amount_undiscounted': fields.function(_get_total, string='Amount Before Discount', type="float", | 118 | 'amount_undiscounted': fields.function(_get_total, string='Amount Before Discount', type="float", |
326 | 119 | digits_compute=dp.get_precision('Account')) | 119 | digits_compute=dp.get_precision('Account')), |
327 | 120 | 'quote_viewed': fields.boolean('Quotation Viewed'), | ||
328 | 120 | } | 121 | } |
329 | 122 | |||
330 | 123 | def _default_template(self, cr, uid, context=None): | ||
331 | 124 | if context is None: | ||
332 | 125 | context = {} | ||
333 | 126 | if 'template_id' in context and context['template_id']: | ||
334 | 127 | return context['template_id'] | ||
335 | 128 | model_obj = self.pool.get('ir.model.data') | ||
336 | 129 | res = False | ||
337 | 130 | try: | ||
338 | 131 | res = model_obj.get_object_reference(cr, uid, 'website_quote', 'website_quote_template_1')[1] | ||
339 | 132 | except ValueError: | ||
340 | 133 | res = False | ||
341 | 134 | return res | ||
342 | 135 | |||
343 | 136 | |||
344 | 121 | _defaults = { | 137 | _defaults = { |
346 | 122 | 'access_token': lambda self, cr, uid, ctx={}: str(uuid.uuid4()) | 138 | 'access_token': lambda self, cr, uid, ctx={}: str(uuid.uuid4()), |
347 | 139 | 'template_id': _default_template, | ||
348 | 140 | 'quote_viewed': False | ||
349 | 123 | } | 141 | } |
350 | 124 | 142 | ||
351 | 125 | def open_quotation(self, cr, uid, quote_id, context=None): | 143 | def open_quotation(self, cr, uid, quote_id, context=None): |
352 | 126 | quote = self.browse(cr, uid, quote_id[0], context=context) | 144 | quote = self.browse(cr, uid, quote_id[0], context=context) |
353 | 145 | self.write(cr, uid, quote_id[0], {'quote_viewed': True}, context=context) | ||
354 | 127 | return { | 146 | return { |
355 | 128 | 'type': 'ir.actions.act_url', | 147 | 'type': 'ir.actions.act_url', |
356 | 129 | 'target': 'self', | 148 | 'target': 'self', |
357 | @@ -134,6 +153,9 @@ | |||
358 | 134 | if not template_id: | 153 | if not template_id: |
359 | 135 | return True | 154 | return True |
360 | 136 | 155 | ||
361 | 156 | if not partner: | ||
362 | 157 | return True | ||
363 | 158 | |||
364 | 137 | if context is None: | 159 | if context is None: |
365 | 138 | context = {} | 160 | context = {} |
366 | 139 | context = dict(context, lang=self.pool.get('res.partner').browse(cr, uid, partner, context).lang) | 161 | context = dict(context, lang=self.pool.get('res.partner').browse(cr, uid, partner, context).lang) |
367 | 140 | 162 | ||
368 | === modified file 'website_quote/static/src/css/website_quotation.css' | |||
369 | --- website_quote/static/src/css/website_quotation.css 2014-01-25 17:24:55 +0000 | |||
370 | +++ website_quote/static/src/css/website_quotation.css 2014-05-19 11:53:30 +0000 | |||
371 | @@ -5,6 +5,13 @@ | |||
372 | 5 | border-radius: 5px; | 5 | border-radius: 5px; |
373 | 6 | } | 6 | } |
374 | 7 | 7 | ||
375 | 8 | /* mobile preview: the left menu overlapas the quote */ | ||
376 | 9 | @media (max-width: 768px) { | ||
377 | 10 | .bs-sidebar { | ||
378 | 11 | position: absolute; | ||
379 | 12 | } | ||
380 | 13 | } | ||
381 | 14 | |||
382 | 8 | .bs-sidenav { | 15 | .bs-sidenav { |
383 | 9 | padding-top: 10px; | 16 | padding-top: 10px; |
384 | 10 | padding-bottom: 10px; | 17 | padding-bottom: 10px; |
385 | 11 | 18 | ||
386 | === modified file 'website_quote/views/website_quotation.xml' | |||
387 | --- website_quote/views/website_quotation.xml 2014-01-28 20:50:17 +0000 | |||
388 | +++ website_quote/views/website_quotation.xml 2014-05-19 11:53:30 +0000 | |||
389 | @@ -242,7 +242,7 @@ | |||
390 | 242 | <em t-esc="quotation.name"/> | 242 | <em t-esc="quotation.name"/> |
391 | 243 | <small t-field="quotation.state"/> | 243 | <small t-field="quotation.state"/> |
392 | 244 | <div groups="base.group_website_publisher" t-ignore="true" class="pull-right css_editable_mode_hidden"> | 244 | <div groups="base.group_website_publisher" t-ignore="true" class="pull-right css_editable_mode_hidden"> |
394 | 245 | <a class="btn btn-info hidden-print" t-att-href="'/web#return_label=Website&model=%s&id=%s' % (quotation._name, quotation.id)">Update Quote</a> | 245 | <a class="btn btn-info hidden-print" t-att-href="'/web#return_label=Website&model=%s&id=%s' % (quotation._name, quotation.id)">Update and Send the Quote</a> |
395 | 246 | </div> | 246 | </div> |
396 | 247 | </h1> | 247 | </h1> |
397 | 248 | 248 | ||
398 | 249 | 249 | ||
399 | === modified file 'website_quote/views/website_quotation_backend.xml' | |||
400 | --- website_quote/views/website_quotation_backend.xml 2014-01-25 22:10:59 +0000 | |||
401 | +++ website_quote/views/website_quotation_backend.xml 2014-05-19 11:53:30 +0000 | |||
402 | @@ -7,14 +7,36 @@ | |||
403 | 7 | <field name="inherit_id" ref="sale.view_order_form"/> | 7 | <field name="inherit_id" ref="sale.view_order_form"/> |
404 | 8 | <field name="arch" type="xml"> | 8 | <field name="arch" type="xml"> |
405 | 9 | <xpath expr="//header/button[@name='invoice_corrected']" position="after"> | 9 | <xpath expr="//header/button[@name='invoice_corrected']" position="after"> |
408 | 10 | <button name="open_quotation" string="View Quotation" type="object" | 10 | <button name="open_quotation" string="View & Design Quotation" |
409 | 11 | attrs="{'invisible': [('template_id','=',False)]}"/> | 11 | type="object" |
410 | 12 | class="oe_highlight" | ||
411 | 13 | attrs="{'invisible': ['|',('template_id','=',False),('quote_viewed','=',True)]}"/> | ||
412 | 14 | </xpath> | ||
413 | 15 | <xpath expr="//header/button[@name='invoice_corrected']" position="after"> | ||
414 | 16 | <button name="open_quotation" string="View & Design Quotation" | ||
415 | 17 | type="object" | ||
416 | 18 | attrs="{'invisible': ['|',('template_id','=',False),('quote_viewed','=',False)]}"/> | ||
417 | 19 | </xpath> | ||
418 | 20 | <xpath expr="//header/button[@name='action_quotation_send'][1]" position="replace"> | ||
419 | 21 | <button name="action_quotation_send" string="Send by Email" type="object" | ||
420 | 22 | groups="base.group_user" | ||
421 | 23 | attrs="{'invisible': ['|',('quote_viewed','=',True),('state','!=', 'draft')]}"/> | ||
422 | 24 | <button name="action_quotation_send" string="Send by Email" type="object" | ||
423 | 25 | groups="base.group_user" | ||
424 | 26 | class="oe_highlight" | ||
425 | 27 | attrs="{'invisible': ['|',('quote_viewed','=',False),('state','!=', 'draft')]}"/> | ||
426 | 28 | </xpath> | ||
427 | 29 | <xpath expr="//header/button[@name='print_quotation'][1]" position="replace"> | ||
428 | 30 | <button name="print_quotation" string="Print" type="object" | ||
429 | 31 | states="draft" | ||
430 | 32 | groups="base.group_user"/> | ||
431 | 12 | </xpath> | 33 | </xpath> |
432 | 13 | <xpath expr="//page[@string='Order Lines']" position="after"> | 34 | <xpath expr="//page[@string='Order Lines']" position="after"> |
433 | 14 | <page string="Suggested Products"> | 35 | <page string="Suggested Products"> |
434 | 15 | <label string="Optional Products & Services" for="options"/> | 36 | <label string="Optional Products & Services" for="options"/> |
435 | 37 | <field name="quote_viewed" invisible="1"/> | ||
436 | 16 | <field name="options"> | 38 | <field name="options"> |
438 | 17 | <tree string="Sales Quote Template Lines" editable="bottom"> | 39 | <tree string="Sales Quotation Template Lines" editable="bottom"> |
439 | 18 | <field name="product_id" on_change="on_change_product_id(product_id)"/> | 40 | <field name="product_id" on_change="on_change_product_id(product_id)"/> |
440 | 19 | <field name="name"/> | 41 | <field name="name"/> |
441 | 20 | <field name="quantity"/> | 42 | <field name="quantity"/> |
442 | @@ -59,7 +81,7 @@ | |||
443 | 59 | <notebook> | 81 | <notebook> |
444 | 60 | <page string="Lines"> | 82 | <page string="Lines"> |
445 | 61 | <field name="quote_line"> | 83 | <field name="quote_line"> |
447 | 62 | <form string="Sales Quote Template Lines" version="7.0"> | 84 | <form string="Sales Quotation Template Lines" version="7.0"> |
448 | 63 | <group> | 85 | <group> |
449 | 64 | <group> | 86 | <group> |
450 | 65 | <field name="product_id" on_change="on_change_product_id(product_id)"/> | 87 | <field name="product_id" on_change="on_change_product_id(product_id)"/> |
451 | @@ -84,7 +106,7 @@ | |||
452 | 84 | </page> | 106 | </page> |
453 | 85 | </notebook> | 107 | </notebook> |
454 | 86 | </form> | 108 | </form> |
456 | 87 | <tree string="Sales Quote Template Lines" editable="bottom"> | 109 | <tree string="Sales Quotation Template Lines" editable="bottom"> |
457 | 88 | <field name="product_id" on_change="on_change_product_id(product_id)"/> | 110 | <field name="product_id" on_change="on_change_product_id(product_id)"/> |
458 | 89 | <field name="name"/> | 111 | <field name="name"/> |
459 | 90 | <field name="product_uom_qty"/> | 112 | <field name="product_uom_qty"/> |
460 | @@ -97,7 +119,7 @@ | |||
461 | 97 | </page> | 119 | </page> |
462 | 98 | <page string="Suggested Products"> | 120 | <page string="Suggested Products"> |
463 | 99 | <field name="options"> | 121 | <field name="options"> |
465 | 100 | <tree string="Sales Quote Template Lines" editable="bottom"> | 122 | <tree string="Sales Quotation Template Lines" editable="bottom"> |
466 | 101 | <field name="product_id" on_change="on_change_product_id(product_id)"/> | 123 | <field name="product_id" on_change="on_change_product_id(product_id)"/> |
467 | 102 | <field name="name"/> | 124 | <field name="name"/> |
468 | 103 | <field name="quantity"/> | 125 | <field name="quantity"/> |
469 | @@ -120,7 +142,7 @@ | |||
470 | 120 | <field name="model">sale.quote.template</field> | 142 | <field name="model">sale.quote.template</field> |
471 | 121 | <field name="type">tree</field> | 143 | <field name="type">tree</field> |
472 | 122 | <field name="arch" type="xml"> | 144 | <field name="arch" type="xml"> |
474 | 123 | <tree string="Sale Quote Template"> | 145 | <tree string="Sale Quotation Template"> |
475 | 124 | <field name="name"/> | 146 | <field name="name"/> |
476 | 125 | </tree> | 147 | </tree> |
477 | 126 | </field> | 148 | </field> |
478 | @@ -131,6 +153,33 @@ | |||
479 | 131 | <field name="res_model">sale.quote.template</field> | 153 | <field name="res_model">sale.quote.template</field> |
480 | 132 | <field name="view_type">form</field> | 154 | <field name="view_type">form</field> |
481 | 133 | <field name="view_mode">tree,form</field> | 155 | <field name="view_mode">tree,form</field> |
482 | 156 | <field name="help" type="html"> | ||
483 | 157 | <p class="oe_view_nocontent_create"> | ||
484 | 158 | Click here to create your template. | ||
485 | 159 | </p><p> | ||
486 | 160 | Use templates to create polished, professional quotes in minutes. | ||
487 | 161 | Send these quotes by email and let your customer sign online. | ||
488 | 162 | Use cross-selling and discounts to push and boost your sales. | ||
489 | 163 | </p> | ||
490 | 164 | </field> | ||
491 | 165 | </record> | ||
492 | 166 | |||
493 | 167 | <record id="sale.action_quotations" model="ir.actions.act_window"> | ||
494 | 168 | <field name="help" type="html"> | ||
495 | 169 | <p class="oe_view_nocontent_create"> | ||
496 | 170 | Click to create a quotation, the first step of a new sale. | ||
497 | 171 | </p><p> | ||
498 | 172 | OpenERP will help you handle efficiently the complete sale flow: | ||
499 | 173 | from the quotation to the sales order, the | ||
500 | 174 | delivery, the invoicing and the payment collection. | ||
501 | 175 | </p><p> | ||
502 | 176 | Promote products with a designed quotation template you send by email. | ||
503 | 177 | </p><p> | ||
504 | 178 | The social feature helps you organize discussions on each sales | ||
505 | 179 | order, and allow your customers to keep track of the evolution | ||
506 | 180 | of the sales order. | ||
507 | 181 | </p> | ||
508 | 182 | </field> | ||
509 | 134 | </record> | 183 | </record> |
510 | 135 | 184 | ||
511 | 136 | <menuitem action="action_sale_quotation_template" id="menu_sale_quote_template" parent="base.menu_base_config" sequence="6" groups="base.group_sale_salesman,base.group_sale_manager"/> | 185 | <menuitem action="action_sale_quotation_template" id="menu_sale_quote_template" parent="base.menu_base_config" sequence="6" groups="base.group_sale_salesman,base.group_sale_manager"/> |