Merge lp:~camptocamp/openerp-mrp-reports/7.0-add_serpentcs_mrp_repair_webkit-afe into lp:~openerp-community-reviewer/openerp-mrp-reports/7.0

Proposed by Alexandre Fayolle - camptocamp on 2014-03-03
Status: Rejected
Rejected by: Alexandre Fayolle - camptocamp on 2014-08-19
Proposed branch: lp:~camptocamp/openerp-mrp-reports/7.0-add_serpentcs_mrp_repair_webkit-afe
Merge into: lp:~openerp-community-reviewer/openerp-mrp-reports/7.0
Diff against target: 597 lines (+566/-0)
6 files modified
mrp_repair_webkit/__init__.py (+23/-0)
mrp_repair_webkit/__openerp__.py (+41/-0)
mrp_repair_webkit/mrp_repair_report.xml (+194/-0)
mrp_repair_webkit/report/__init__.py (+24/-0)
mrp_repair_webkit/report/order.mako (+235/-0)
mrp_repair_webkit/report/order.py (+49/-0)
To merge this branch: bzr merge lp:~camptocamp/openerp-mrp-reports/7.0-add_serpentcs_mrp_repair_webkit-afe
Reviewer Review Type Date Requested Status
Yannick Vaucher @ Camptocamp 2014-03-03 Abstain on 2014-05-02
Lorenzo Battistini (community) Needs Fixing on 2014-03-21
Review via email: mp+209044@code.launchpad.net

Description of the change

Extraction of mrp_repair_report from lp:~serpentcs/openobject-addons/7.0-webkit-reports for inclusion in OCA

To post a comment you must log in.
Lorenzo Battistini (elbati) wrote :

Hello Alexandre,

just checked with https://code.launchpad.net/~savoirfairelinux-openerp/lp-community-utils/checkout-pep8

$ ./checkout-flake8.sh lp:~camptocamp/openerp-mrp-reports/7.0-add_serpentcs_mrp_repair_webkit-afe mrp_repair_webkit
Making a temp directory
branching to /tmp/checkout-flake/~camptocamp.openerp-mrp-reports.7.0-add_serpentcs_mrp_repair_webkit-afe
Branched 3 revisions.

mrp_repair_webkit/__init__.py:24:1: W391 blank line at end of file
mrp_repair_webkit/report/__init__.py:25:1: W391 blank line at end of file
mrp_repair_webkit/report/order.py:25:1: E302 expected 2 blank lines, found 1
mrp_repair_webkit/report/order.py:34:23: E231 missing whitespace after ','
mrp_repair_webkit/report/order.py:37:12: E111 indentation is not a multiple of four
mrp_repair_webkit/report/order.py:39:12: E111 indentation is not a multiple of four
mrp_repair_webkit/report/order.py:49:1: W391 blank line at end of file

mrp_repair_webkit/__init__.py:5:80: E501 line too long (95 > 79 characters)
mrp_repair_webkit/__openerp__.py:5:80: E501 line too long (95 > 79 characters)
mrp_repair_webkit/report/__init__.py:5:80: E501 line too long (95 > 79 characters)
mrp_repair_webkit/report/order.py:5:80: E501 line too long (95 > 79 characters)

Thanks

review: Needs Fixing
4. By Yannick Vaucher @ Camptocamp on 2014-03-21

[PEP8]

mrp_repair_webkit/__init__.py:5:80: E501 line too long (95 > 79 characters)
mrp_repair_webkit/__openerp__.py:5:80: E501 line too long (95 > 79 characters)
mrp_repair_webkit/report/__init__.py:5:80: E501 line too long (95 > 79 characters)
mrp_repair_webkit/report/order.py:5:80: E501 line too long (95 > 79 characters)

Those are due to serpents copyrights :/

Don't have they a better copyright ?

Lorenzo Battistini (elbati) wrote :

On 03/21/2014 05:51 PM, Yannick Vaucher @ Camptocamp wrote:
> mrp_repair_webkit/__init__.py:5:80: E501 line too long (95 > 79 characters)
> mrp_repair_webkit/__openerp__.py:5:80: E501 line too long (95 > 79 characters)
> mrp_repair_webkit/report/__init__.py:5:80: E501 line too long (95 > 79 characters)
> mrp_repair_webkit/report/order.py:5:80: E501 line too long (95 > 79 characters)
>
> Those are due to serpents copyrights :/
>
> Don't have they a better copyright ?

Can we send
'(<http://www.serpentcs.com>)'
to the following line?

review: Abstain

submitted to github

Unmerged revisions

4. By Yannick Vaucher @ Camptocamp on 2014-03-21

[PEP8]

3. By Alexandre Fayolle - camptocamp on 2014-03-03

[REF] small code cleanup

2. By Hemangini on 2013-11-14

[ADD]Added sale_delivery_exact module
(/home/afayolle/work/community_addons/serpentcs/7.0-webkit-reports rev 14)

1. By Hemangini on 2013-09-18

[ADD] Added Module converted rml reports into webkit: mrp_repair_webkit .
(/home/afayolle/work/community_addons/serpentcs/7.0-webkit-reports rev 5)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== added directory 'mrp_repair_webkit'
=== added file 'mrp_repair_webkit/__init__.py'
--- mrp_repair_webkit/__init__.py 1970-01-01 00:00:00 +0000
+++ mrp_repair_webkit/__init__.py 2014-03-21 16:49:59 +0000
@@ -0,0 +1,23 @@
1# -*- coding: utf-8 -*-
2##############################################################################
3#
4# This module uses OpenERP, Open Source Management Solution Framework.
5# Copyright (C) 2012-Today Serpent Consulting Services Pvt. Ltd.(<http://www.serpentcs.com>)
6#
7# This program is free software: you can redistribute it and/or modify
8# it under the terms of the GNU General Public License as published by
9# the Free Software Foundation, either version 3 of the License, or
10# (at your option) any later version.
11#
12# This program is distributed in the hope that it will be useful,
13# but WITHOUT ANY WARRANTY; without even the implied warranty of
14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15# GNU General Public License for more details.
16#
17# You should have received a copy of the GNU General Public License
18# along with this program. If not, see <http://www.gnu.org/licenses/>
19#
20##############################################################################
21from . import report
22
23# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
024
=== added file 'mrp_repair_webkit/__openerp__.py'
--- mrp_repair_webkit/__openerp__.py 1970-01-01 00:00:00 +0000
+++ mrp_repair_webkit/__openerp__.py 2014-03-21 16:49:59 +0000
@@ -0,0 +1,41 @@
1# -*- coding: utf-8 -*-
2##############################################################################
3#
4# This module uses OpenERP, Open Source Management Solution Framework.
5# Copyright (C) 2012-Today Serpent Consulting Services Pvt. Ltd.(<http://www.serpentcs.com>)
6#
7# This program is free software: you can redistribute it and/or modify
8# it under the terms of the GNU General Public License as published by
9# the Free Software Foundation, either version 3 of the License, or
10# (at your option) any later version.
11#
12# This program is distributed in the hope that it will be useful,
13# but WITHOUT ANY WARRANTY; without even the implied warranty of
14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15# GNU General Public License for more details.
16#
17# You should have received a copy of the GNU General Public License
18# along with this program. If not, see <http://www.gnu.org/licenses/>
19#
20##############################################################################
21
22{
23 'name': 'Repairs Management',
24 'version': '1.0',
25 'category': 'Manufacturing',
26 'description': """
27The aim is to have a complete module to manage all products repairs.
28====================================================================
29 It is conversion of rml report to Webkit Report.
30
31""",
32 'author': 'Serpent Consulting Services Pvt. Ltd.',
33 'website': 'http://www.serpentcs.com',
34 'depends': ['mrp_repair', 'report_webkit'],
35 'data': [
36 'mrp_repair_report.xml',
37 ],
38 'installable': True,
39 'auto_install': False,
40}
41# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
042
=== added file 'mrp_repair_webkit/mrp_repair_report.xml'
--- mrp_repair_webkit/mrp_repair_report.xml 1970-01-01 00:00:00 +0000
+++ mrp_repair_webkit/mrp_repair_report.xml 2014-03-21 16:49:59 +0000
@@ -0,0 +1,194 @@
1<?xml version="1.0" encoding="utf-8"?>
2<openerp>
3 <data>
4 <record id="mrp_header" model="ir.header_webkit">
5 <field name="footer_html"><![CDATA[
6 <html>
7 <head>
8 <meta content="text/html; charset=UTF-8" http-equiv="content-type"/>
9 <script>
10 function subst() {
11 var vars={};
12 var x=document.location.search.substring(1).split('&');
13 for(var i in x) {var z=x[i].split('=',2);vars[z[0]] = unescape(z[1]);}
14 var x=['frompage','topage','page','webpage','section','subsection','subsubsection'];
15 for(var i in x) {
16 var y = document.getElementsByClassName(x[i]);
17 for(var j=0; j<y.length; ++j) y[j].textContent = vars[x[i]];
18 }
19 }
20 </script>
21 <style type="text/css">
22
23 ${css}
24 </style>
25 </head>
26 <body style="border:0; margin: 0;" onload="subst()">
27 <table class="header" style="border-top: 1px solid black; width: 100%">
28 <tr >
29 <td style="text-align:center;font-size:12;" >${ company.rml_footer or '' }</td>
30 </tr>
31 <tr >
32 <td style="text-align:center;font-size:12;" >Contact : ${ user.name }</td>
33 </tr>
34 </table> ${_debug or ''|n} </body>
35 </html>
36 ]]></field>
37 <field name="orientation">Portrait</field>
38 <field name="format">A4</field>
39 <field name="html"><![CDATA[
40 <html>
41 <head>
42 <meta content="text/html; charset=UTF-8" http-equiv="content-type"/>
43 <script>
44 function subst() {
45 var vars={};
46 var x=document.location.search.substring(1).split('&');
47 for(var i in x) {var z=x[i].split('=',2);vars[z[0]] = unescape(z[1]);}
48 var x=['frompage','topage','page','webpage','section','subsection','subsubsection'];
49 for(var i in x) {
50 var y = document.getElementsByClassName(x[i]);
51 for(var j=0; j<y.length; ++j) y[j].textContent = vars[x[i]];
52 }
53 }
54 </script>
55 <style type="text/css">
56
57 ${css}
58 </style>
59 </head>
60 <body style="border:0; margin: 0;" onload="subst()">
61 <table class="header" style="border-bottom: 1px solid black; width: 100%">
62 <tr >
63 <td style="text-align:left;font-size:12;" width="20%">${ helper.embed_image('png',company.logo,200,50)|n }</td>
64 <td style="text-align:right;font-size:12;" width="80%"></br></br>${ company.rml_header1 }</td>
65 </tr>
66 </table> ${_debug or ''|n} </body>
67 <p style="text-align:left;font-size:12;">${company.name}</p></br></br>
68 <table width="100%">
69 <tr>
70 <td style="text-align:left;font-size:10;" width="25%">
71 Phone: ${company.phone or ''}
72 </td>
73 <td width="75%"></td>
74 </tr>
75
76 <tr>
77 <td style="text-align:left;font-size:10; border-bottom: 1px solid black;" width="25%">
78 Mail: ${company.email}
79 </td>
80 <td width="75%"></td>
81 </tr>
82 </table>
83 </html>]]>
84 </field>
85 <field eval="45.0" name="margin_top"/>
86 <field eval="25.0" name="margin_bottom"/>
87 <field name="css"><![CDATA[
88
89 body, table, td, span, div {
90 font-family: Helvetica;
91 }
92
93 body {
94 font-family;
95 font-size:9;
96
97 }
98
99
100 .header {
101 margin-left:0;
102 text-align:left;
103 width:300px;
104 font-size:12;
105 }
106 .title {
107 font-size:16px;
108 font-weight: bold;
109 font-family: Helvetica;
110 padding-bottom:20px;
111 padding-top:20px;
112 }
113
114
115 .basic_table{
116 width:100%;
117 text-align:center;
118 border:1px solid lightGrey;
119 border-collapse: collapse;
120 font-family: Helvetica;
121 padding-bottom:20px;
122 padding-top:20px;
123 }
124
125 .basic_table td {
126 border:1px solid lightGrey;
127 font-size:11px;
128 font-family: Helvetica;
129 padding:3px 3px 3px 3px;
130 }
131
132 .list_table {
133 border-bottom:1px solid black;
134 font-size:13px;
135 border-collapse: collapse;
136 font-family: Helvetica;
137 font-weight: bold;
138 width:100%;
139 padding-top:30px;
140 }
141 .add{
142 width:100%;
143 font-size:12px;
144 font-family: Helvetica; }
145 .tbl_header{
146 width:100%;
147 font-size:10px;
148 font-family: Helvetica;
149 border:1px solid lightGrey;
150 border-collapse: collapse;
151 }
152 .tr_bottom_line{
153 border-bottom: thin solid black;
154 width:100%;
155 font-size:12px;
156 font-family: Helvetica;
157 }
158 .tr_bottom_line_dark_grey{
159 border-bottom: thin solid #ccc;
160 width:100%;
161 font-size:12px;
162 font-family: Helvetica;
163 padding-left: 3px ;
164 }
165 .tr_top{
166 border-top: 1px solid black;
167 width:100%;
168 font-size:12px;
169 font-family: Helvetica;
170 }
171
172 .td_f12{
173 font-size:12px;
174 font-family: Helvetica;
175 }
176
177
178
179 ]]>
180 </field>
181 <field name="name">MRP Header</field>
182 </record>
183
184 <report
185 id="report_mrp_repair_webkit"
186 string="Quotation / Order"
187 model="mrp.repair"
188 name="repair.order.webkit"
189 file="mrp_repair_webkit/report/order.mako"
190 auto="False"
191 report_type="webkit"
192 webkit_header="mrp_header"/>
193 </data>
194</openerp>
0195
=== added directory 'mrp_repair_webkit/report'
=== added file 'mrp_repair_webkit/report/__init__.py'
--- mrp_repair_webkit/report/__init__.py 1970-01-01 00:00:00 +0000
+++ mrp_repair_webkit/report/__init__.py 2014-03-21 16:49:59 +0000
@@ -0,0 +1,24 @@
1# -*- coding: utf-8 -*-
2##############################################################################
3#
4# This module uses OpenERP, Open Source Management Solution Framework.
5# Copyright (C) 2013-Today Serpent Consulting Services Pvt. Ltd.(<http://www.serpentcs.com>)
6#
7# This program is free software: you can redistribute it and/or modify
8# it under the terms of the GNU General Public License as published by
9# the Free Software Foundation, either version 3 of the License, or
10# (at your option) any later version.
11#
12# This program is distributed in the hope that it will be useful,
13# but WITHOUT ANY WARRANTY; without even the implied warranty of
14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15# GNU General Public License for more details.
16#
17# You should have received a copy of the GNU General Public License
18# along with this program. If not, see <http://www.gnu.org/licenses/>
19#
20##############################################################################
21
22from . import order
23
24# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
025
=== added file 'mrp_repair_webkit/report/order.mako'
--- mrp_repair_webkit/report/order.mako 1970-01-01 00:00:00 +0000
+++ mrp_repair_webkit/report/order.mako 2014-03-21 16:49:59 +0000
@@ -0,0 +1,235 @@
1<html>
2 <head>
3 <style type="text/css">
4 ${css}
5 </style>
6 <title>qutation_order.pdf</title>
7 </head>
8 <body>
9 %for o in objects:
10 <table class="add">
11 <tr>
12 <td width="70%">
13 </br>
14 <b>Shipping address :</b></br>
15 ${ o.partner_id.name }</br>
16 ${ o.address_id.street or '' }</br>
17 ${ o.address_id.city or '' }&nbsp;${ o.address_id.zip or '' }</br>
18 ${ o.address_id.country_id.name or '' }</br>
19 %if (o.address_id.phone):
20 Tel. : ${ o.address_id.phone or '' }</br>
21 %endif
22 %if o.address_id.fax:
23 Fax : ${ o.address_id.fax or '' }</br>
24 %endif
25 %if o.address_id.vat:
26 ${ o.address_id.vat or '' }</br>
27 %endif
28
29
30 </td>
31 <td width="30%" colspan="2">
32 ${ o.partner_id.name or '' }
33 ${ o.default_address_id.street or '' }</br>
34 ${ o.default_address_id.city or '' }&nbsp;${ o.default_address_id.zip or '' }</br>
35 ${ o.default_address_id.country_id.name or '' }</br>
36 %if (o.default_address_id.phone):
37 Tel. : ${ o.default_address_id.phone or '' }</br>
38 %endif
39 %if o.default_address_id.fax:
40 Fax : ${ o.default_address_id.fax or '' }</br>
41 %endif
42 %if o.default_address_id.vat:
43 ${ o.default_address_id.vat or '' }
44 %endif
45 </td>
46 </tr>
47 <tr>
48 <td>
49 <b>Invoice address :</b></br>
50 ${ o.partner_id and o.partner_id.property_payment_term.name or ''}</br>
51 ${ o.partner_invoice_id.name or ''}</br>
52 ${ o.partner_invoice_id.street or '' }</br>
53 ${ o.partner_invoice_id.city or '' }&nbsp;${ o.partner_invoice_id.zip or '' }</br>
54 ${ o.partner_invoice_id.country_id.name or '' }</br>
55 %if (o.partner_invoice_id.phone):
56 Tel. : ${ o.partner_invoice_id.phone or '' }</br>
57 %endif
58 %if o.partner_invoice_id.fax:
59 Fax : ${ o.partner_invoice_id.fax or '' }</br>
60 %endif
61 %if o.partner_invoice_id.vat:
62 ${ o.partner_invoice_id.vat or '' }
63 %endif
64
65 </td>
66 </tr>
67 </table>
68 <p class="title">
69 %if o.state <> 'draft' or '':
70 Repair Quotation N° : ${ o.name }
71 %endif
72 %if o.state=='draft' or '' :
73 Repair Order N° : ${ o.name }
74 %endif
75 </p>
76 <table class="basic_table">
77 <tr>
78 <td class="25%">
79 <b>${_("Product to Repair")} </b>
80 </td>
81 <td class="25%">
82 <b>${_("Lot Number")}</b>
83 </td>
84 <td class="25%">
85 <b>${_("Guarantee Limit")}</b>
86 </td>
87 <td class="25%">
88 <b>${_("Printing Date")}</b>
89 </td>
90 </tr>
91 <tr>
92 <td class="25%">
93 ${ o.product_id.name or '' }
94 </td>
95 <td class="25%">
96 ${ o.prodlot_id.name or ' ' }
97 </td>
98 <td class="25%">
99 ${ formatLang(o.guarantee_limit,date = True) }
100 </td>
101 <td class="25%">
102 ${ formatLang(time.strftime('%Y-%m-%d'),date = True)}
103 </td>
104 </tr>
105 </table>
106 </br>
107 <table class="list_table">
108 <tr>
109 <td width="57%">
110 ${_("Description")}
111 </td>
112 <td width="10%">
113 ${_("Tax")}
114 </td>
115 <td width="10%" align="right">
116 ${_("Quantity")}
117 </td>
118 <td width="8%" align="right">
119 ${_("Unit Price")}
120 </td>
121 <td width="15%" align="right">
122 ${_("Price")}
123 </td>
124 </tr>
125 </table>
126 <h3><b>Operation Line(s)</b></h3>
127 %for line in o.operations:
128 %if line['to_invoice']==True:
129 <table class="tr_bottom_line_dark_grey">
130 <tr>
131 <td width="57%">
132 %if line.type == 'add' or '':
133 (Add)${ line.name }
134 %endif
135 %if line.type == 'remove' or '':
136 (Remove) ${ line.name }
137 %endif
138 </td>
139 <td width="10%">
140 ${ ','.join(map( lambda x: x.name, line.tax_id)) }
141 </td>
142 <td width="10%" align="right">
143 ${ formatLang(line.product_uom_qty) } ${ line.product_uom.name }
144 </td>
145 <td width="8%" align="right">
146 ${ formatLang(line.price_unit) }
147 </td>
148 <td width="15%" align="right">
149 ${ formatLang(line.price_subtotal, currency_obj = o.pricelist_id.currency_id) }
150 </td>
151 </tr>
152 </table>
153 %endif
154 %endfor
155 %if len(o.fees_lines) != 0 :
156
157 <h3><b>Fees Line(s)</b></h3>
158 %for fees in o.fees_lines:
159 %if fees.to_invoice==True:
160 <table class="tr_bottom_line_dark_grey">
161 <tr>
162 <td width="57%">
163 ${ fees.name }
164 </td>
165 <td width="10%">
166 ${ ','.join(map( lambda x: x.name, fees.tax_id)) }
167 </td>
168 <td width="10%" align="right">
169 ${ formatLang(fees.product_uom_qty) } ${ fees.product_uom.name }
170 </td>
171 <td width="8" align="right">
172 ${ formatLang(fees.price_unit) }
173 </td>
174 <td width="15%" align="right">
175 ${ formatLang(fees.price_subtotal, currency_obj = o.pricelist_id.currency_id) }
176 </td>
177 </tr>
178 </table>
179 %endif
180 %endfor
181 %endif
182 <table width="100%">
183 <tr>
184 <td width="70%">
185 </td>
186 <td width="30%">
187 <table class="tr_top">
188 <tr>
189 <td>
190 <b>Net Total :</b>
191 </td>
192 <td align="right">
193 ${ formatLang(o.amount_untaxed, dp='Sale Price', currency_obj=o.pricelist_id.currency_id) }
194 </td>
195 </tr>
196 <tr>
197 <td>
198 <b>${_("Taxes:")}</b>
199 </td>
200 <td align="right">
201 ${ formatLang(o.amount_tax, dp='Account', currency_obj=o.pricelist_id.currency_id) }
202 </td>
203 </tr>
204 </table>
205 </td>
206 </tr>
207 <tr>
208 <td width="70%">
209 </td>
210 <td width="30%">
211 <table class="tr_top">
212 <tr>
213 <td><b>
214 ${_("Total :")}</b>
215 </td>
216 <td align="right"> <b>
217 ${ formatLang(total(o), dp='Sale Price', currency_obj=o.pricelist_id.currency_id) }</b>
218 </td>
219 </tr>
220 </table>
221 </td>
222 </tr>
223 </table>
224 <table width="100%">
225 <tr>
226 <td class="td_f12">
227 ${ o.quotation_notes or '' }
228 </td>
229 </tr>
230 </table>
231 <p style="page-break-after:always">
232 </p>
233 %endfor
234 </body>
235</html>
0236
=== added file 'mrp_repair_webkit/report/order.py'
--- mrp_repair_webkit/report/order.py 1970-01-01 00:00:00 +0000
+++ mrp_repair_webkit/report/order.py 2014-03-21 16:49:59 +0000
@@ -0,0 +1,49 @@
1# -*- coding: utf-8 -*-
2##############################################################################
3#
4# This module uses OpenERP, Open Source Management Solution Framework.
5# Copyright (C) 2012-Today Serpent Consulting Services Pvt. Ltd.(<http://www.serpentcs.com>)
6#
7# This program is free software: you can redistribute it and/or modify
8# it under the terms of the GNU General Public License as published by
9# the Free Software Foundation, either version 3 of the License, or
10# (at your option) any later version.
11#
12# This program is distributed in the hope that it will be useful,
13# but WITHOUT ANY WARRANTY; without even the implied warranty of
14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15# GNU General Public License for more details.
16#
17# You should have received a copy of the GNU General Public License
18# along with this program. If not, see <http://www.gnu.org/licenses/>
19#
20##############################################################################
21import time
22
23from openerp.report import report_sxw
24
25
26class order(report_sxw.rml_parse):
27 def __init__(self, cr, uid, name, context):
28 super(order, self).__init__(cr, uid, name, context=context)
29 self.localcontext.update({
30 'time': time,
31 'total': self.total,
32 })
33
34 def total(self, repair):
35 print "repair", repair
36 total = 0.0
37 for operation in repair.operations:
38 total += operation.price_subtotal
39 for fee in repair.fees_lines:
40 total += fee.price_subtotal
41 total = total + repair.amount_tax
42 return total
43
44report_sxw.report_sxw('report.repair.order.webkit',
45 'mrp.repair',
46 'addons/mrp_repair_webkit/report/order.mako',
47 parser=order)
48
49# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

Subscribers

People subscribed via source and target branches