update to 15 sample
@@ -270,9 +270,9 @@
|
|||||||
<p><h4>
|
<p><h4>
|
||||||
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:guohuadeng@hotmail.com"><span
|
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:odoo@china.com"><span
|
||||||
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
||||||
<i class="fa fa-envelope"></i> guohuadeng@hotmail.com</a>
|
<i class="fa fa-envelope"></i> odoo@china.com</a>
|
||||||
<p><h4>
|
<p><h4>
|
||||||
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
|
|||||||
@@ -270,9 +270,9 @@
|
|||||||
<p><h4>
|
<p><h4>
|
||||||
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:guohuadeng@hotmail.com"><span
|
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:odoo@china.com"><span
|
||||||
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
||||||
<i class="fa fa-envelope"></i> guohuadeng@hotmail.com</a>
|
<i class="fa fa-envelope"></i> odoo@china.com</a>
|
||||||
<p><h4>
|
<p><h4>
|
||||||
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
|
|||||||
@@ -70,9 +70,9 @@
|
|||||||
<p><h4>
|
<p><h4>
|
||||||
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:guohuadeng@hotmail.com"><span
|
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:odoo@china.com"><span
|
||||||
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
||||||
<i class="fa fa-envelope"></i> guohuadeng@hotmail.com</a>
|
<i class="fa fa-envelope"></i> odoo@china.com</a>
|
||||||
<p><h4>
|
<p><h4>
|
||||||
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
|
|||||||
@@ -461,9 +461,9 @@
|
|||||||
<p><h4>
|
<p><h4>
|
||||||
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:guohuadeng@hotmail.com"><span
|
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:odoo@china.com"><span
|
||||||
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
||||||
<i class="fa fa-envelope"></i> guohuadeng@hotmail.com</a>
|
<i class="fa fa-envelope"></i> odoo@china.com</a>
|
||||||
<p><h4>
|
<p><h4>
|
||||||
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
|
|||||||
@@ -314,9 +314,9 @@
|
|||||||
<p><h4>
|
<p><h4>
|
||||||
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:guohuadeng@hotmail.com"><span
|
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:odoo@china.com"><span
|
||||||
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
||||||
<i class="fa fa-envelope"></i> guohuadeng@hotmail.com</a>
|
<i class="fa fa-envelope"></i> odoo@china.com</a>
|
||||||
<p><h4>
|
<p><h4>
|
||||||
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
|
|||||||
@@ -77,9 +77,9 @@
|
|||||||
<p><h4>
|
<p><h4>
|
||||||
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:guohuadeng@hotmail.com"><span
|
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:odoo@china.com"><span
|
||||||
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
||||||
<i class="fa fa-envelope"></i> guohuadeng@hotmail.com</a>
|
<i class="fa fa-envelope"></i> odoo@china.com</a>
|
||||||
<p><h4>
|
<p><h4>
|
||||||
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
|
|||||||
@@ -270,9 +270,9 @@
|
|||||||
<p><h4>
|
<p><h4>
|
||||||
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:guohuadeng@hotmail.com"><span
|
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:odoo@china.com"><span
|
||||||
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
||||||
<i class="fa fa-envelope"></i> guohuadeng@hotmail.com</a>
|
<i class="fa fa-envelope"></i> odoo@china.com</a>
|
||||||
<p><h4>
|
<p><h4>
|
||||||
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
|
|||||||
@@ -292,9 +292,9 @@
|
|||||||
<p><h4>
|
<p><h4>
|
||||||
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:guohuadeng@hotmail.com"><span
|
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:odoo@china.com"><span
|
||||||
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
||||||
<i class="fa fa-envelope"></i> guohuadeng@hotmail.com</a>
|
<i class="fa fa-envelope"></i> odoo@china.com</a>
|
||||||
<p><h4>
|
<p><h4>
|
||||||
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
|
|||||||
@@ -160,9 +160,9 @@
|
|||||||
<p><h4>
|
<p><h4>
|
||||||
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:guohuadeng@hotmail.com"><span
|
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:odoo@china.com"><span
|
||||||
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
||||||
<i class="fa fa-envelope"></i> guohuadeng@hotmail.com</a>
|
<i class="fa fa-envelope"></i> odoo@china.com</a>
|
||||||
<p><h4>
|
<p><h4>
|
||||||
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
|
|||||||
@@ -447,9 +447,9 @@
|
|||||||
<p><h4>
|
<p><h4>
|
||||||
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:guohuadeng@hotmail.com"><span
|
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:odoo@china.com"><span
|
||||||
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
||||||
<i class="fa fa-envelope"></i> guohuadeng@hotmail.com</a>
|
<i class="fa fa-envelope"></i> odoo@china.com</a>
|
||||||
<p><h4>
|
<p><h4>
|
||||||
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
|
|||||||
@@ -311,9 +311,9 @@
|
|||||||
<p><h4>
|
<p><h4>
|
||||||
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:guohuadeng@hotmail.com"><span
|
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:odoo@china.com"><span
|
||||||
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
||||||
<i class="fa fa-envelope"></i> guohuadeng@hotmail.com</a>
|
<i class="fa fa-envelope"></i> odoo@china.com</a>
|
||||||
<p><h4>
|
<p><h4>
|
||||||
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
|
|||||||
@@ -192,9 +192,9 @@
|
|||||||
<p><h4>
|
<p><h4>
|
||||||
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:guohuadeng@hotmail.com"><span
|
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:odoo@china.com"><span
|
||||||
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
||||||
<i class="fa fa-envelope"></i> guohuadeng@hotmail.com</a>
|
<i class="fa fa-envelope"></i> odoo@china.com</a>
|
||||||
<p><h4>
|
<p><h4>
|
||||||
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
|
|||||||
@@ -370,9 +370,9 @@
|
|||||||
<p><h4>
|
<p><h4>
|
||||||
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:guohuadeng@hotmail.com"><span
|
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:odoo@china.com"><span
|
||||||
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
||||||
<i class="fa fa-envelope"></i> guohuadeng@hotmail.com</a>
|
<i class="fa fa-envelope"></i> odoo@china.com</a>
|
||||||
<p><h4>
|
<p><h4>
|
||||||
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
|
|||||||
@@ -44,9 +44,9 @@
|
|||||||
<p><h4>
|
<p><h4>
|
||||||
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:guohuadeng@hotmail.com"><span
|
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:odoo@china.com"><span
|
||||||
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
||||||
<i class="fa fa-envelope"></i> guohuadeng@hotmail.com</a>
|
<i class="fa fa-envelope"></i> odoo@china.com</a>
|
||||||
<p><h4>
|
<p><h4>
|
||||||
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
|
|||||||
@@ -640,9 +640,9 @@
|
|||||||
<p><h4>
|
<p><h4>
|
||||||
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:guohuadeng@hotmail.com"><span
|
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:odoo@china.com"><span
|
||||||
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
||||||
<i class="fa fa-envelope"></i> guohuadeng@hotmail.com</a>
|
<i class="fa fa-envelope"></i> odoo@china.com</a>
|
||||||
<p><h4>
|
<p><h4>
|
||||||
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
|
|||||||
@@ -393,9 +393,9 @@
|
|||||||
<p><h4>
|
<p><h4>
|
||||||
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:guohuadeng@hotmail.com"><span
|
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:odoo@china.com"><span
|
||||||
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
||||||
<i class="fa fa-envelope"></i> guohuadeng@hotmail.com</a>
|
<i class="fa fa-envelope"></i> odoo@china.com</a>
|
||||||
<p><h4>
|
<p><h4>
|
||||||
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
|
|||||||
@@ -370,9 +370,9 @@
|
|||||||
<p><h4>
|
<p><h4>
|
||||||
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:guohuadeng@hotmail.com"><span
|
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:odoo@china.com"><span
|
||||||
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
||||||
<i class="fa fa-envelope"></i> guohuadeng@hotmail.com</a>
|
<i class="fa fa-envelope"></i> odoo@china.com</a>
|
||||||
<p><h4>
|
<p><h4>
|
||||||
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
|
|||||||
@@ -191,9 +191,9 @@
|
|||||||
<p><h4>
|
<p><h4>
|
||||||
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:guohuadeng@hotmail.com"><span
|
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:odoo@china.com"><span
|
||||||
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
||||||
<i class="fa fa-envelope"></i> guohuadeng@hotmail.com</a>
|
<i class="fa fa-envelope"></i> odoo@china.com</a>
|
||||||
<p><h4>
|
<p><h4>
|
||||||
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
|
|||||||
@@ -407,9 +407,9 @@
|
|||||||
<p><h4>
|
<p><h4>
|
||||||
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:guohuadeng@hotmail.com"><span
|
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:odoo@china.com"><span
|
||||||
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
||||||
<i class="fa fa-envelope"></i> guohuadeng@hotmail.com</a>
|
<i class="fa fa-envelope"></i> odoo@china.com</a>
|
||||||
<p><h4>
|
<p><h4>
|
||||||
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
|
|||||||
@@ -500,9 +500,9 @@
|
|||||||
<p><h4>
|
<p><h4>
|
||||||
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:guohuadeng@hotmail.com"><span
|
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:odoo@china.com"><span
|
||||||
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
||||||
<i class="fa fa-envelope"></i> guohuadeng@hotmail.com</a>
|
<i class="fa fa-envelope"></i> odoo@china.com</a>
|
||||||
<p><h4>
|
<p><h4>
|
||||||
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
|
|||||||
@@ -161,9 +161,9 @@
|
|||||||
<p><h4>
|
<p><h4>
|
||||||
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:guohuadeng@hotmail.com"><span
|
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:odoo@china.com"><span
|
||||||
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
||||||
<i class="fa fa-envelope"></i> guohuadeng@hotmail.com</a>
|
<i class="fa fa-envelope"></i> odoo@china.com</a>
|
||||||
<p><h4>
|
<p><h4>
|
||||||
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
|
|||||||
@@ -390,9 +390,9 @@
|
|||||||
<p><h4>
|
<p><h4>
|
||||||
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:guohuadeng@hotmail.com"><span
|
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:odoo@china.com"><span
|
||||||
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
||||||
<i class="fa fa-envelope"></i> guohuadeng@hotmail.com</a>
|
<i class="fa fa-envelope"></i> odoo@china.com</a>
|
||||||
<p><h4>
|
<p><h4>
|
||||||
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
|
|||||||
@@ -121,9 +121,9 @@
|
|||||||
<p><h4>
|
<p><h4>
|
||||||
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:guohuadeng@hotmail.com"><span
|
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:odoo@china.com"><span
|
||||||
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
||||||
<i class="fa fa-envelope"></i> guohuadeng@hotmail.com</a>
|
<i class="fa fa-envelope"></i> odoo@china.com</a>
|
||||||
<p><h4>
|
<p><h4>
|
||||||
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
|
|||||||
@@ -270,9 +270,9 @@
|
|||||||
<p><h4>
|
<p><h4>
|
||||||
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:guohuadeng@hotmail.com"><span
|
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:odoo@china.com"><span
|
||||||
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
||||||
<i class="fa fa-envelope"></i> guohuadeng@hotmail.com</a>
|
<i class="fa fa-envelope"></i> odoo@china.com</a>
|
||||||
<p><h4>
|
<p><h4>
|
||||||
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
|
|||||||
@@ -121,9 +121,9 @@
|
|||||||
<p><h4>
|
<p><h4>
|
||||||
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:guohuadeng@hotmail.com"><span
|
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:odoo@china.com"><span
|
||||||
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
||||||
<i class="fa fa-envelope"></i> guohuadeng@hotmail.com</a>
|
<i class="fa fa-envelope"></i> odoo@china.com</a>
|
||||||
<p><h4>
|
<p><h4>
|
||||||
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
|
|||||||
@@ -270,9 +270,9 @@
|
|||||||
<p><h4>
|
<p><h4>
|
||||||
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:guohuadeng@hotmail.com"><span
|
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:odoo@china.com"><span
|
||||||
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
||||||
<i class="fa fa-envelope"></i> guohuadeng@hotmail.com</a>
|
<i class="fa fa-envelope"></i> odoo@china.com</a>
|
||||||
<p><h4>
|
<p><h4>
|
||||||
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
|
|||||||
@@ -500,9 +500,9 @@
|
|||||||
<p><h4>
|
<p><h4>
|
||||||
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:guohuadeng@hotmail.com"><span
|
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:odoo@china.com"><span
|
||||||
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
||||||
<i class="fa fa-envelope"></i> guohuadeng@hotmail.com</a>
|
<i class="fa fa-envelope"></i> odoo@china.com</a>
|
||||||
<p><h4>
|
<p><h4>
|
||||||
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
|
|||||||
12
app_sample/__init__.py
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
# please comment follow for produce
|
||||||
|
from . import models
|
||||||
|
from . import report
|
||||||
|
from . import controllers
|
||||||
|
|
||||||
|
# hook form install and uninstall
|
||||||
|
|
||||||
|
from .hooks import pre_init_hook
|
||||||
|
from .hooks import post_init_hook
|
||||||
|
from .hooks import uninstall_hook
|
||||||
113
app_sample/__manifest__.py
Normal file
@@ -0,0 +1,113 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
# Created on 2023-10-06
|
||||||
|
# author: 欧度智能,https://www.odooai.cn
|
||||||
|
# email: 300883@qq.com
|
||||||
|
# Copyright (C) 2009~2023 odooAi.cn
|
||||||
|
|
||||||
|
# Odoo16在线用户手册(长期更新)
|
||||||
|
# https://www.odooai.cn/documentation/16.0/zh_CN/index.html
|
||||||
|
|
||||||
|
# Odoo16在线开发者手册(长期更新)
|
||||||
|
# https://www.odooai.cn/documentation/16.0/zh_CN/developer.html
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
# Copyright (C) 2009-TODAY odooAi.cn Ltd. https://www.odooai.cn
|
||||||
|
# Author: Ivan Deng,300883@qq.com
|
||||||
|
# You can modify it under the terms of the GNU LESSER
|
||||||
|
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3.
|
||||||
|
# See <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# It is forbidden to publish, distribute, sublicense, or sell copies
|
||||||
|
# of the Software or modified copies of the Software.
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
|
{
|
||||||
|
'name': 'Odoo Module Sample. module app addons template sample with widget. Developer guidelines. Odoo开发规范模板',
|
||||||
|
'version': '15.23.10.07',
|
||||||
|
'author': 'odooai.cn',
|
||||||
|
'category': 'Base',
|
||||||
|
'website': 'https://www.odooai.cn',
|
||||||
|
'live_test_url': 'https://demo.odooapp.cn',
|
||||||
|
'license': 'OPL-1',
|
||||||
|
'sequence': 2,
|
||||||
|
'price': 3.00,
|
||||||
|
'currency': 'EUR',
|
||||||
|
'images': ['static/description/banner.gif'],
|
||||||
|
'summary': '''
|
||||||
|
Odoo module template. module sample with 170+ widget list. Clone this sample to your name to quick create your odoo addons.
|
||||||
|
Developer reference guides, Developer Tutorials.
|
||||||
|
Sample manifest, .py, .xml views and data. report, action, menu..
|
||||||
|
''',
|
||||||
|
'description': '''
|
||||||
|
Just Rename the sample app to your name to quick create new module.
|
||||||
|
All file follow odoo rule with comments.
|
||||||
|
Support Odoo 17,16,15,14,13,12, Enterprise and Community and odoo.sh Edition
|
||||||
|
Odoo Developr rule from here
|
||||||
|
https://www.odooai.cn/documentation/16.0/developer.html
|
||||||
|
1. A full Sample module app of odoo addons. All the code, views, data ,banner, icon and description sample follow the odoo rule.
|
||||||
|
2. Sample manifest file. Including structure and name and description etc, all field sample. Security xml and csv file for role group access rule.
|
||||||
|
Sample icon, banner, index.html, install/uninstall hooks.
|
||||||
|
Follow most odoo rule follow
|
||||||
|
https://www.odooai.cn/documentation/16.0/contributing/development/coding_guidelines.html
|
||||||
|
3. Sample .py models file, for new model and inherit model
|
||||||
|
4. Sample .xml views file for models, with list, kanban, form, search
|
||||||
|
5. Sample controllers file for website data publish and api developer. including how inherit odoo portal home.
|
||||||
|
6. Sample report design file. .py file with how sql define. .xml file for graph and pivot.
|
||||||
|
7. Sample action and menu file. Root menu and menu group and action menu.
|
||||||
|
8. Ui misc sample. Alert like info and special field setup.
|
||||||
|
9. Odoo Widget sample. 170+ widget list document and Frequently Used Sample.
|
||||||
|
10. Quick access odoo developer Tutorials online. Document online for chinese and english. Fast visit in China.
|
||||||
|
11. Multi-language Support. Multi-Company Support.
|
||||||
|
12. Support Odoo 17,16,15,14,13,12, Enterprise and Community and odoo.sh Edition.
|
||||||
|
13. Full Open Source.
|
||||||
|
========== 中文说明
|
||||||
|
1. 一个完整的odoo插件模块应用程序示例,所有代码、视图和数据都遵循odoo规则
|
||||||
|
2. Manifest示例清单文件。包括结构、名称和描述等所有字段样例。安全xml和csv文件用于控制访问规则
|
||||||
|
全部遵循odoo规则 https://www.odooai.cn/documentation/16.0/zh_CN/developer/reference/backend/module.html#reference-module-manifest
|
||||||
|
3. .py 示例文件,包括新模型和继承模型的示例
|
||||||
|
4. .xml 示例视图文件,包括列表、看板、表单、搜索等
|
||||||
|
5. controllers 示例文件,用于门户网站对外数据发布及 api 接口开发。例子包含对 odoo portal 门户的继承处理
|
||||||
|
6. report报告设计文件示例。包括如何定义 sql 生成视图的.py文件,用于 graph 和 pivot的.xml文件。
|
||||||
|
7. action 动作 和 menu 菜单文件示例。
|
||||||
|
8. 特殊Ui样例,包括 Alert role 信息及特殊字段展现设置。
|
||||||
|
9. Odoo Widget 使用指导,包括 170+小部件清单,常用 widget 用法。
|
||||||
|
10.快速访问在线Odoo开发人员教程。
|
||||||
|
11. 多语言支持,多公司支持
|
||||||
|
12. Odoo 17,16,15,14,13,12, 企业版,社区版,在线SaaS.sh版,等全版本支持
|
||||||
|
13. 代码完全开源
|
||||||
|
''',
|
||||||
|
'depends': [
|
||||||
|
'app_common',
|
||||||
|
'account',
|
||||||
|
# 'website',
|
||||||
|
],
|
||||||
|
'data': [
|
||||||
|
# please add your file
|
||||||
|
# please comment follow on ur produce odoo
|
||||||
|
'security/app_security.xml',
|
||||||
|
'security/ir.model.access.csv',
|
||||||
|
'views/model_new_views.xml',
|
||||||
|
'report/model_new_report_views.xml',
|
||||||
|
'views/menu_views.xml',
|
||||||
|
# 'views/website_templates.xml',
|
||||||
|
],
|
||||||
|
'assets': {
|
||||||
|
'web.assets_frontend': [
|
||||||
|
# 'app_/static/src/scss/style.scss',
|
||||||
|
],
|
||||||
|
'web.assets_backend': [
|
||||||
|
# 'app_/static/src/js/*.js',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
'demo': [
|
||||||
|
'data/model_new_demo.xml',
|
||||||
|
# 'views/website_templates.xml',
|
||||||
|
],
|
||||||
|
# 'pre_init_hook': 'pre_init_hook',
|
||||||
|
# 'post_init_hook': 'post_init_hook',
|
||||||
|
# 'uninstall_hook': 'uninstall_hook',
|
||||||
|
'installable': True,
|
||||||
|
'application': True,
|
||||||
|
'auto_install': False,
|
||||||
|
}
|
||||||
3
app_sample/controllers/__init__.py
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
# from . import main
|
||||||
25
app_sample/controllers/main.py
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
from odoo import http
|
||||||
|
from odoo.addons.portal.controllers.portal import CustomerPortal
|
||||||
|
|
||||||
|
|
||||||
|
class appCustomerPortal(CustomerPortal):
|
||||||
|
|
||||||
|
# Controler sample
|
||||||
|
@http.route('/my/webclient/locale/<string:lang>', type='http', auth="none")
|
||||||
|
def index(self, **kw):
|
||||||
|
return "Hello, world"
|
||||||
|
|
||||||
|
@http.route('/default/default/objects/', auth='public')
|
||||||
|
def list(self, **kw):
|
||||||
|
return http.request.render('default.listing', {
|
||||||
|
'root': '/default/default',
|
||||||
|
'objects': http.request.env['default.default'].search([]),
|
||||||
|
})
|
||||||
|
|
||||||
|
@http.route('/default/default/objects/<model("default.default"):obj>/', auth='public')
|
||||||
|
def object(self, obj, **kw):
|
||||||
|
return http.request.render('default.object', {
|
||||||
|
'object': obj
|
||||||
|
})
|
||||||
46
app_sample/data/model_new_demo.xml
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<odoo>
|
||||||
|
<data noupdate="1">
|
||||||
|
<!-- Demo data -->
|
||||||
|
<record id="model_new_data_01" model="model.new">
|
||||||
|
<field name="name">demo1</field>
|
||||||
|
<field name="ref">demo1</field>
|
||||||
|
<field name="amount">888</field>
|
||||||
|
<field name="date">2023-09-13</field>
|
||||||
|
<field name="image" type="base64" file="app_sample/static/img/icon_odooai.png"/>
|
||||||
|
<field name="w_progressbar">0.5</field>
|
||||||
|
<field name="state">draft</field>
|
||||||
|
<field name="user_id" ref="base.user_admin"/>
|
||||||
|
</record>
|
||||||
|
<record id="model_new_data_02" model="model.new">
|
||||||
|
<field name="name">demo2</field>
|
||||||
|
<field name="ref">demo2</field>
|
||||||
|
<field name="amount">1600</field>
|
||||||
|
<field name="date">2023-10-03</field>
|
||||||
|
<field name="image" type="base64" file="app_sample/static/img/icon_odooai.png"/>
|
||||||
|
<field name="w_progressbar">0.6</field>
|
||||||
|
<field name="state">done</field>
|
||||||
|
<field name="user_id" ref="base.user_admin"/>
|
||||||
|
</record>
|
||||||
|
<record id="model_new_data_03" model="model.new">
|
||||||
|
<field name="name">demo3</field>
|
||||||
|
<field name="ref">demo3</field>
|
||||||
|
<field name="amount">3000</field>
|
||||||
|
<field name="date">2023-09-16</field>
|
||||||
|
<field name="image" type="base64" file="app_sample/static/img/icon_odooapp.png"/>
|
||||||
|
<field name="w_progressbar">0.3</field>
|
||||||
|
<field name="state">cancel</field>
|
||||||
|
<field name="user_id" ref="base.user_demo"/>
|
||||||
|
</record>
|
||||||
|
<record id="model_new_data_04" model="model.new">
|
||||||
|
<field name="name">demo4</field>
|
||||||
|
<field name="ref">demo4</field>
|
||||||
|
<field name="amount">40000</field>
|
||||||
|
<field name="date">2023-10-06</field>
|
||||||
|
<field name="image" type="base64" file="app_sample/static/img/icon_odooapp.png"/>
|
||||||
|
<field name="w_progressbar">0.99</field>
|
||||||
|
<field name="state">draft</field>
|
||||||
|
<field name="user_id" ref="base.user_demo"/>
|
||||||
|
</record>
|
||||||
|
</data>
|
||||||
|
</odoo>
|
||||||
29
app_sample/hooks.py
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
# Created on 2023-10-06
|
||||||
|
# author: 欧度智能,https://www.odooai.cn
|
||||||
|
# email: 300883@qq.com
|
||||||
|
# Copyright (C) 2009~2023 odooAi.cn
|
||||||
|
|
||||||
|
# Odoo16在线用户手册(长期更新)
|
||||||
|
# https://www.odooai.cn/documentation/16.0/zh_CN/index.html
|
||||||
|
|
||||||
|
# Odoo16在线开发者手册(长期更新)
|
||||||
|
# https://www.odooai.cn/documentation/16.0/zh_CN/developer.html
|
||||||
|
|
||||||
|
from odoo import api, SUPERUSER_ID, _
|
||||||
|
|
||||||
|
|
||||||
|
def pre_init_hook(cr):
|
||||||
|
pass
|
||||||
|
# cr.execute("")
|
||||||
|
|
||||||
|
|
||||||
|
def post_init_hook(cr, registry):
|
||||||
|
pass
|
||||||
|
# cr.execute("")
|
||||||
|
|
||||||
|
|
||||||
|
def uninstall_hook(cr, registry):
|
||||||
|
pass
|
||||||
|
# cr.execute("")
|
||||||
2
app_sample/i18n/README.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Please follow this tutorial for more guides:
|
||||||
|
https://www.odoo.com/documentation/master/developer/misc/i18n/translations.html
|
||||||
16
app_sample/i18n/zh_CN.po
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * app_odooai
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo Server 16.0+e-20230320\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2023-03-30 10:30+0000\n"
|
||||||
|
"PO-Revision-Date: 2023-03-30 10:30+0000\n"
|
||||||
|
"Last-Translator: \n"
|
||||||
|
"Language-Team: \n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Plural-Forms: \n"
|
||||||
5
app_sample/models/__init__.py
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Part of odooAi.cn. See LICENSE file for full copyright and licensing details.
|
||||||
|
|
||||||
|
# from . import product_template
|
||||||
|
from . import model_new
|
||||||
129
app_sample/models/model_new.py
Normal file
@@ -0,0 +1,129 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
# Copyright (C) 2009-TODAY odooai.cn Ltd. https://www.odooai.cn
|
||||||
|
# Author: Ivan Deng,300883@qq.com
|
||||||
|
# You can modify it under the terms of the GNU LESSER
|
||||||
|
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3.
|
||||||
|
# See <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# It is forbidden to publish, distribute, sublicense, or sell copies
|
||||||
|
# of the Software or modified copies of the Software.
|
||||||
|
|
||||||
|
# Create on 2023-10-06
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
|
from odoo import models, fields, api, _
|
||||||
|
from odoo.tools.translate import html_translate
|
||||||
|
|
||||||
|
from datetime import datetime, timedelta
|
||||||
|
import logging
|
||||||
|
_logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
# Template for model New
|
||||||
|
class ModelNew(models.Model):
|
||||||
|
|
||||||
|
_name = 'model.new'
|
||||||
|
_rec_name = 'name'
|
||||||
|
_inherit = ['mail.thread', 'mail.activity.mixin']
|
||||||
|
_description = 'Model New'
|
||||||
|
_order = 'sequence,name'
|
||||||
|
|
||||||
|
# Base field
|
||||||
|
name = fields.Char(string='Name', translate=True, required=True, readonly=False, copy=True)
|
||||||
|
ref = fields.Char(string='Reference', required=True, readonly=False, copy=False, index=True)
|
||||||
|
image = fields.Binary(string="Image")
|
||||||
|
amount = fields.Float(string="Amount", digits="Product Price")
|
||||||
|
note = fields.Text(string='Note', readonly=False, copy=True)
|
||||||
|
website_description = fields.Html(
|
||||||
|
'Description for the website', translate=html_translate,
|
||||||
|
sanitize_overridable=True,
|
||||||
|
sanitize_attributes=False, sanitize_form=False)
|
||||||
|
date = fields.Datetime(string="Date", default=lambda self: fields.Datetime.now())
|
||||||
|
|
||||||
|
# Relation field
|
||||||
|
partner_ids = fields.Many2many(comodel_name="res.partner",
|
||||||
|
relation="model_new_res_partner_rel",
|
||||||
|
column1="new_id", column2="partner_id",
|
||||||
|
string="many2many_tags_avatar")
|
||||||
|
|
||||||
|
partner_count = fields.Integer(string="#Partner", compute='_compute_partner_count', store=True)
|
||||||
|
|
||||||
|
# product_ids = fields.One2many(comodel_name="product.product",
|
||||||
|
# inverse_name="model_new_id",
|
||||||
|
# string="Model New")
|
||||||
|
|
||||||
|
user_id = fields.Many2one('res.users', string='many2one_avatar_user',
|
||||||
|
required=False, index=True, default=lambda self: self.env.user)
|
||||||
|
company_id = fields.Many2one('res.company', string='Company',
|
||||||
|
required=False, index=True, default=lambda self: self.env.company)
|
||||||
|
|
||||||
|
# Extra field
|
||||||
|
color = fields.Integer(string='Color Index')
|
||||||
|
sequence = fields.Integer('Sequence', default=99, help="Determine the display order")
|
||||||
|
active = fields.Boolean(string="Active", default=True)
|
||||||
|
state = fields.Selection(string="State", selection=[
|
||||||
|
('draft', 'Draft'),
|
||||||
|
('done', 'Done'),
|
||||||
|
('cancel', "Cancelled"),
|
||||||
|
], default='draft', required=False)
|
||||||
|
|
||||||
|
# begin widget
|
||||||
|
# char, text, html
|
||||||
|
w_phone = fields.Char(string='phone', default='13925100000')
|
||||||
|
w_email = fields.Char(string='email', default='info@example.com')
|
||||||
|
w_image_url = fields.Char(string='image_url', default='https://www.odooai.cn/web/image/website/1/logo')
|
||||||
|
w_url = fields.Char(string='url', default='https://www.odooai.cn')
|
||||||
|
w_CopyClipboardURL = fields.Char(string='CopyClipboardURL', default='https://www.odooai.cn')
|
||||||
|
w_CopyClipboardChar = fields.Char(string='CopyClipboardChar', default='https://www.odooai.cn')
|
||||||
|
w_CopyClipboardText = fields.Char(string='CopyClipboardText', default='https://www.odooai.cn')
|
||||||
|
|
||||||
|
# int
|
||||||
|
date_end = fields.Datetime(string="Date End", default=lambda self: fields.Datetime.now() + timedelta(days=30))
|
||||||
|
day_max = fields.Integer(string="Left Days Max", default=100)
|
||||||
|
w_gauge = fields.Integer(
|
||||||
|
'gauge', compute='_compute_gauge',
|
||||||
|
help='Left date to date end,剩下的天数')
|
||||||
|
w_progressbar = fields.Float(string='progressbar')
|
||||||
|
|
||||||
|
# float
|
||||||
|
w_percentpie = fields.Float(string='percentpie', related='w_progressbar')
|
||||||
|
w_percentage = fields.Float(string='percentage')
|
||||||
|
|
||||||
|
# selection
|
||||||
|
w_status_with_color = fields.Selection(string="status_with_color", selection=[
|
||||||
|
('color1', 'Color1'),
|
||||||
|
('color2', 'Color2'),
|
||||||
|
('color3', "Color3"),
|
||||||
|
], default='color1', required=False)
|
||||||
|
w_color_s = fields.Integer(string='status_with_color Color Index')
|
||||||
|
|
||||||
|
# m2o
|
||||||
|
w_selection_badge = fields.Many2one('res.partner', string='selection_badge')
|
||||||
|
|
||||||
|
# m2m
|
||||||
|
w_autosave_many2many_tags = fields.Many2many(comodel_name="res.partner",
|
||||||
|
relation="model_new_res_partner_rel_w_autosave_many2many_tags",
|
||||||
|
column1="new_id", column2="partner_id",
|
||||||
|
string="autosave_many2many_tags")
|
||||||
|
|
||||||
|
w_date_begin = fields.Char(string='Date Begin')
|
||||||
|
w_date_end = fields.Char(string='Date End')
|
||||||
|
w_toggle_button = fields.Boolean(string='toggle_button')
|
||||||
|
w_res_partner_many2one = fields.Char(string='Boolean toggle')
|
||||||
|
|
||||||
|
_sql_constraints = [('uniq_ref', 'unique(ref)', 'The reference must be unique.')]
|
||||||
|
|
||||||
|
@api.depends('date', 'date_end')
|
||||||
|
def _compute_gauge(self):
|
||||||
|
for rec in self:
|
||||||
|
rec.w_gauge = (rec.date_end - rec.date).days
|
||||||
|
|
||||||
|
@api.depends('partner_ids')
|
||||||
|
def _compute_partner_count(self):
|
||||||
|
for rec in self:
|
||||||
|
rec.partner_count = len(rec.partner_ids)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
26
app_sample/models/product_template.py
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
# Copyright (C) 2009-TODAY odooai.cn Ltd. https://www.odooai.cn
|
||||||
|
# Author: Ivan Deng,300883@qq.com
|
||||||
|
# You can modify it under the terms of the GNU LESSER
|
||||||
|
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3.
|
||||||
|
# See <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# It is forbidden to publish, distribute, sublicense, or sell copies
|
||||||
|
# of the Software or modified copies of the Software.
|
||||||
|
|
||||||
|
# Create on 2023-10-06
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
|
from odoo import models, fields, api, _
|
||||||
|
from odoo.tools.translate import html_translate
|
||||||
|
|
||||||
|
import logging
|
||||||
|
_logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
# Template for model inherit
|
||||||
|
class ProductTemplate(models.Model):
|
||||||
|
_inherit = 'product.template'
|
||||||
|
|
||||||
|
short_name = fields.Char(string='Short Name', translate=True, readonly=False, copy=True)
|
||||||
5
app_sample/report/__init__.py
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||||
|
|
||||||
|
from . import model_new_report
|
||||||
|
|
||||||
77
app_sample/report/model_new_report.py
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
##############################################################################
|
||||||
|
# Copyright (C) 2009-TODAY odooai.cn Ltd. https://www.odooai.cn
|
||||||
|
# Author: Ivan Deng,300883@qq.com
|
||||||
|
# You can modify it under the terms of the GNU LESSER
|
||||||
|
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3.
|
||||||
|
# See <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# It is forbidden to publish, distribute, sublicense, or sell copies
|
||||||
|
# of the Software or modified copies of the Software.
|
||||||
|
|
||||||
|
# Create on 2023-10-06
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
|
from odoo import fields, models, tools, api
|
||||||
|
|
||||||
|
|
||||||
|
class ModelNewReport(models.Model):
|
||||||
|
|
||||||
|
# Model New Analysis
|
||||||
|
_name = 'model.new.report'
|
||||||
|
_auto = False
|
||||||
|
_description = 'Model New Analysis'
|
||||||
|
_rec_name = 'name'
|
||||||
|
|
||||||
|
# Base field
|
||||||
|
name = fields.Char(string='Name', readonly=True)
|
||||||
|
ref = fields.Char(string='Reference', readonly=True)
|
||||||
|
amount = fields.Float(string="Amount", readonly=True)
|
||||||
|
date = fields.Datetime(string="Date", readonly=True)
|
||||||
|
user_id = fields.Many2one('res.users', string='User', readonly=True)
|
||||||
|
user_login = fields.Char(string='User Login', readonly=True)
|
||||||
|
company_id = fields.Many2one('res.company', 'Company', readonly=True)
|
||||||
|
active = fields.Boolean(string="Active", readonly=True)
|
||||||
|
|
||||||
|
@api.model
|
||||||
|
def _select(self):
|
||||||
|
return '''
|
||||||
|
SELECT
|
||||||
|
m.id,
|
||||||
|
m.name,
|
||||||
|
m.ref,
|
||||||
|
m.amount,
|
||||||
|
m.date,
|
||||||
|
m.user_id,
|
||||||
|
u.login AS user_login,
|
||||||
|
m.company_id,
|
||||||
|
m.active
|
||||||
|
'''
|
||||||
|
|
||||||
|
@api.model
|
||||||
|
def _from(self):
|
||||||
|
return '''
|
||||||
|
FROM model_new AS m
|
||||||
|
'''
|
||||||
|
|
||||||
|
@api.model
|
||||||
|
def _join(self):
|
||||||
|
return '''
|
||||||
|
JOIN res_users AS u ON m.user_id = u.id
|
||||||
|
'''
|
||||||
|
|
||||||
|
@api.model
|
||||||
|
def _where(self):
|
||||||
|
return ''
|
||||||
|
|
||||||
|
def init(self):
|
||||||
|
tools.drop_view_if_exists(self._cr, self._table)
|
||||||
|
sql = '''
|
||||||
|
CREATE OR REPLACE VIEW %s AS (
|
||||||
|
%s
|
||||||
|
%s
|
||||||
|
%s
|
||||||
|
%s
|
||||||
|
)
|
||||||
|
''' % (self._table, self._select(), self._from(), self._join(), self._where())
|
||||||
|
self._cr.execute(sql)
|
||||||
88
app_sample/report/model_new_report_views.xml
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<odoo>
|
||||||
|
<!-- Graph view, 图表-->
|
||||||
|
<record id="app_model_new_report_view_graph" model="ir.ui.view">
|
||||||
|
<field name="name">app.model.new.report.graph</field>
|
||||||
|
<field name="model">model.new.report</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<graph string="Model New Analysis" sample="1">
|
||||||
|
<field name="amount"/>
|
||||||
|
<field name="date" interval="month"/>
|
||||||
|
</graph>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- Pivot view, 透视表-->
|
||||||
|
<record id="app_model_new_report_view_pivot" model="ir.ui.view">
|
||||||
|
<field name="name">app.model.new.report.pivot</field>
|
||||||
|
<field name="model">model.new.report</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<pivot string="Model new pivot" sample="1">
|
||||||
|
<field name="name" type="col"/>
|
||||||
|
<field name="user_id" type="col"/>
|
||||||
|
<field name="date" interval="month" type="row"/>
|
||||||
|
</pivot>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- Tree view, 列表-->
|
||||||
|
<record id="app_model_new_report_view_tree" model="ir.ui.view">
|
||||||
|
<field name="name">app.model.new.report.tree</field>
|
||||||
|
<field name="model">model.new.report</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<tree default_order="date desc">
|
||||||
|
<field name="date"/>
|
||||||
|
<field name="name"/>
|
||||||
|
<field name="amount"/>
|
||||||
|
<field name="user_id" groups="base.group_multi_company"/>
|
||||||
|
<field name="company_id" groups="base.group_multi_company"/>
|
||||||
|
</tree>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="app_model_new_report_view_search" model="ir.ui.view">
|
||||||
|
<field name="name">app.model.new.report.search</field>
|
||||||
|
<field name="model">model.new.report</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<search string="Model New Search">
|
||||||
|
<field name="name"/>
|
||||||
|
<field name="user_id"/>
|
||||||
|
<filter string="Trailing 12 months" name="completion_date" domain="[
|
||||||
|
('date', '>=', (datetime.datetime.combine(context_today() + relativedelta(days=-365), datetime.time(0,0,0)).to_utc()).strftime('%Y-%m-%d %H:%M:%S')),
|
||||||
|
('date', '>=', (datetime.datetime.combine(context_today(), datetime.time(0,0,0)).to_utc()).strftime('%Y-%m-%d %H:%M:%S'))]"/>
|
||||||
|
<separator/>
|
||||||
|
<filter name="filter_date" date="date"/>
|
||||||
|
<separator/>
|
||||||
|
<filter string="Archived" name="inactive" domain="[('active', '=', False)]"/>
|
||||||
|
<group expand="1" string="Group By">
|
||||||
|
<filter string="Date" name="group_by_date" context="{'group_by': 'date:month'}"/>
|
||||||
|
<separator/>
|
||||||
|
<filter string="User" name="group_by_user_id" context="{'group_by': 'user_id'}"/>
|
||||||
|
<filter string="Company" name="company" context="{'group_by': 'company_id'}" groups="base.group_multi_company"/>
|
||||||
|
</group>
|
||||||
|
</search>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="action_model_new_report" model="ir.actions.act_window">
|
||||||
|
<field name="name">Model New Report</field>
|
||||||
|
<field name="res_model">model.new.report</field>
|
||||||
|
<field name="view_mode">graph,pivot,tree</field>
|
||||||
|
<field name="context">{
|
||||||
|
'pivot_column_groupby': ['user_id'],
|
||||||
|
'pivot_row_groupby': ['date:month'],
|
||||||
|
'graph_mode': 'bar',
|
||||||
|
'graph_groupbys': ['date:month', 'user_id'],
|
||||||
|
}
|
||||||
|
</field>
|
||||||
|
<field name="domain">[]</field>
|
||||||
|
<field name="help" type="html">
|
||||||
|
<p class="o_view_nocontent_smiling_face">
|
||||||
|
No data yet!
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Start Analysis
|
||||||
|
</p>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
</odoo>
|
||||||
41
app_sample/security/app_security.xml
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<odoo>
|
||||||
|
<data noupdate="1">
|
||||||
|
<!-- Create new App security category, 创建应用 -->
|
||||||
|
<record model="ir.module.category" id="app_module_category_1">
|
||||||
|
<field name="name">App...</field>
|
||||||
|
<field name="description">Helps you manage your ...</field>
|
||||||
|
<field name="sequence">8</field>
|
||||||
|
</record>
|
||||||
|
<!-- Cretate new App security group, 权限组 -->
|
||||||
|
<!-- User group, 普通用记 -->
|
||||||
|
<record id="group_app_user" model="res.groups">
|
||||||
|
<field name="name">App User</field>
|
||||||
|
<field name="category_id" ref="app_module_category_1"/>
|
||||||
|
<field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
|
||||||
|
<field name="comment">The user will be able to ...</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- Admin group,管理员,可以配置 -->
|
||||||
|
<record id="group_app_admin" model="res.groups">
|
||||||
|
<field name="name">App Admin</field>
|
||||||
|
<field name="category_id" ref="app_module_category_1"/>
|
||||||
|
<field name="implied_ids" eval="[(4, ref('group_app_user'))]"/>
|
||||||
|
<field name="comment">The user will be able to config ...</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- Auto set erp admin full access,group_erp_manager自动有完整权限 -->
|
||||||
|
<record id="base.group_erp_manager" model="res.groups">
|
||||||
|
<field name="implied_ids" eval="[(4, ref('group_app_admin'))]"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- IR Rules, user can only see my record,记录集权限,用户只能见到自已的记录 -->
|
||||||
|
<!-- <record id="rule_user" model="ir.rule">-->
|
||||||
|
<!-- <field name="name">Users are allowed to access their own record</field>-->
|
||||||
|
<!-- <field name="model_id" ref="model_app_order"/>-->
|
||||||
|
<!-- <field name="domain_force">['|', ('partner_id', 'in', [user.partner_id.id]), ('user_id.id', '=', user.id)]</field>-->
|
||||||
|
<!-- <field name="groups" eval="[(4, ref('base.group_user'))]"/>-->
|
||||||
|
<!-- </record>-->
|
||||||
|
<!--End -->
|
||||||
|
</data>
|
||||||
|
</odoo>
|
||||||
3
app_sample/security/ir.model.access.csv
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||||
|
access_model_new,access_model_new,model_model_new,base.group_user,1,1,1,1
|
||||||
|
access_model_new_report,access_model_new_report,model_model_new_report,base.group_user,1,1,1,1
|
||||||
|
BIN
app_sample/static/description/banner.gif
Normal file
|
After Width: | Height: | Size: 73 KiB |
BIN
app_sample/static/description/banner.png
Normal file
|
After Width: | Height: | Size: 89 KiB |
BIN
app_sample/static/description/banner1.png
Normal file
|
After Width: | Height: | Size: 200 KiB |
BIN
app_sample/static/description/demo1.jpg
Normal file
|
After Width: | Height: | Size: 109 KiB |
BIN
app_sample/static/description/demo10.jpg
Normal file
|
After Width: | Height: | Size: 158 KiB |
BIN
app_sample/static/description/demo2.jpg
Normal file
|
After Width: | Height: | Size: 88 KiB |
BIN
app_sample/static/description/demo3.jpg
Normal file
|
After Width: | Height: | Size: 71 KiB |
BIN
app_sample/static/description/demo_controler.jpg
Normal file
|
After Width: | Height: | Size: 68 KiB |
BIN
app_sample/static/description/demo_form.jpg
Normal file
|
After Width: | Height: | Size: 122 KiB |
BIN
app_sample/static/description/demo_graph.jpg
Normal file
|
After Width: | Height: | Size: 66 KiB |
BIN
app_sample/static/description/demo_kanban.jpg
Normal file
|
After Width: | Height: | Size: 84 KiB |
BIN
app_sample/static/description/demo_list.jpg
Normal file
|
After Width: | Height: | Size: 89 KiB |
BIN
app_sample/static/description/demo_menu.jpg
Normal file
|
After Width: | Height: | Size: 77 KiB |
BIN
app_sample/static/description/demo_pivot.jpg
Normal file
|
After Width: | Height: | Size: 72 KiB |
BIN
app_sample/static/description/demo_report.jpg
Normal file
|
After Width: | Height: | Size: 122 KiB |
BIN
app_sample/static/description/demo_search.jpg
Normal file
|
After Width: | Height: | Size: 93 KiB |
BIN
app_sample/static/description/demo_ui.jpg
Normal file
|
After Width: | Height: | Size: 72 KiB |
BIN
app_sample/static/description/demo_use.jpg
Normal file
|
After Width: | Height: | Size: 96 KiB |
BIN
app_sample/static/description/demo_widget_list.jpg
Normal file
|
After Width: | Height: | Size: 153 KiB |
BIN
app_sample/static/description/demo_widget_use.jpg
Normal file
|
After Width: | Height: | Size: 114 KiB |
BIN
app_sample/static/description/icon.png
Normal file
|
After Width: | Height: | Size: 44 KiB |
408
app_sample/static/description/index.html
Normal file
@@ -0,0 +1,408 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
##############################################################################
|
||||||
|
# Copyright (C) 2009~2023 odooAi.cn
|
||||||
|
##############################################################################
|
||||||
|
-->
|
||||||
|
<html>
|
||||||
|
<!-- begin title-->
|
||||||
|
<section class="oe_container container o_cc o_cc2">
|
||||||
|
<h1 class="text-center bg-warning text-white pt24 pb24">Odoo Module Template. App sample with widget. </h1>
|
||||||
|
<h3 class="text-center">Odoo开发规范模板,Widget清单与使用样例</h3>
|
||||||
|
<h4 class="text-center">Sample Description of app. video and brief and detail demo snap and text</h4>
|
||||||
|
</section>
|
||||||
|
<!-- end title-->
|
||||||
|
|
||||||
|
<!-- begin video-->
|
||||||
|
<section class="s_text_block o_colored_level pt16 pb16">
|
||||||
|
<div class="container s_allow_columns">
|
||||||
|
<p class="text-center bg-info text-white pt16 pb16">Just Clone this sample to your name to quick create your odoo addons</p>
|
||||||
|
<h2 class="text-center bg-info text-white pt16 pb16">- Demo Video of Odoo17. Change to your video -</h2>
|
||||||
|
</div>
|
||||||
|
<!-- local video-->
|
||||||
|
<div class="container">
|
||||||
|
<div class="row s_nb_column_fixed">
|
||||||
|
<div class="o_colored_level col-lg-12">
|
||||||
|
<video controls="controls" loop="1" preload="auto" muted autoplay src="odoo17.mp4" class="o_video" style="width: 100%; height: 100%;">
|
||||||
|
<source type="video/mp4" src="odoo17.mp4"/>
|
||||||
|
<a href="">
|
||||||
|
Download the demo video.
|
||||||
|
</a>
|
||||||
|
</video>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="oe_container container s_text_block pt24 pb24 o_colored_level" data-snippet="s_text_block" data-name="文本">
|
||||||
|
<!-- remote video-->
|
||||||
|
<div class="s_allow_columns container">
|
||||||
|
<div data-oe-expression="//www.youtube.com/embed/whnmkTWsQkQ?rel=0&autoplay=0" class="media_iframe_video">
|
||||||
|
<div class="css_editable_mode_display"></div>
|
||||||
|
<div class="media_iframe_video_size"></div>
|
||||||
|
<iframe src="//www.youtube.com/embed/whnmkTWsQkQ?rel=0&autoplay=1" frameborder="0" allowfullscreen="allowfullscreen"></iframe>
|
||||||
|
</div>
|
||||||
|
<p class="o_default_snippet_text"><br></p>
|
||||||
|
</div>
|
||||||
|
<div class="oe_row text-center">
|
||||||
|
<span>Click above Play. or go </span>
|
||||||
|
<a href="https://youtu.be/whnmkTWsQkQ" target="_blank" role="button" class="btn btn-link btn-lg">Youtube Video of odoo Advance Search Superbar</a>
|
||||||
|
</div>
|
||||||
|
<div class="oe_row text-center">
|
||||||
|
<p class="o_default_snippet_text">Demo Gif Animation if you can not get video</p>
|
||||||
|
<img class="oe_demo oe_screenshot img img-fluid" src="banner.gif">
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<!-- end video-->
|
||||||
|
|
||||||
|
<!-- begin features-->
|
||||||
|
<section class="oe_container container s_text_block o_colored_level pt16 pb16">
|
||||||
|
<h2 class="text-center bg-info text-white pt16 pb16">- Features -</h2>
|
||||||
|
</section>
|
||||||
|
<section class="s_features_grid pt24 pb24 o_colored_level" data-snippet="s_features_grid" data-name="Features Grid">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-6 s_col_no_bgcolor pb24">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-12 pt16 pb16 o_colored_level" data-name="Box" data-tilt-feature="">
|
||||||
|
<i class="fa bg-primary text-white s_features_grid_icon rounded fa-2x">1</i>
|
||||||
|
<div class="s_features_grid_content">
|
||||||
|
<h4 class="pt16">
|
||||||
|
A full Sample module app of odoo addons.
|
||||||
|
</h4>
|
||||||
|
<p>All the code, views, data ,banner, icon and description sample follow the odoo rule.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-12 pt16 pb16 o_colored_level" data-name="Box">
|
||||||
|
<i class="fa fa-2x rounded bg-primary text-white s_features_grid_icon">2</i>
|
||||||
|
<div class="s_features_grid_content">
|
||||||
|
<h4 class="pt16">
|
||||||
|
Sample manifest file.
|
||||||
|
</h4>
|
||||||
|
<p>Including structure and name and description etc, all field sample. Security xml and csv file for role group access rule. Follow most odoo rule follow </p>
|
||||||
|
<p>https://www.odooai.cn/documentation/16.0/contributing/development/coding_guidelines.html</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-12 pt16 pb16 o_colored_level" data-name="Box" data-tilt-feature="">
|
||||||
|
<i class="fa bg-primary text-white s_features_grid_icon rounded fa-2x">3</i>
|
||||||
|
<div class="s_features_grid_content">
|
||||||
|
<h4 class="pt16">
|
||||||
|
Sample .py models file
|
||||||
|
</h4>
|
||||||
|
<p>for new model and inherit model<br></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-12 pt16 pb16 o_colored_level" data-name="Box" data-tilt-feature="">
|
||||||
|
<i class="fa bg-primary text-white s_features_grid_icon rounded fa-2x">4</i>
|
||||||
|
<div class="s_features_grid_content">
|
||||||
|
<h4 class="pt16">
|
||||||
|
Sample .xml views file for models
|
||||||
|
</h4>
|
||||||
|
<p>Sample xml views file for models, with list, kanban, form, search<br></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-12 pt16 pb16 o_colored_level" data-name="Box" data-tilt-feature="">
|
||||||
|
<i class="fa bg-primary text-white s_features_grid_icon rounded fa-2x">5</i>
|
||||||
|
<div class="s_features_grid_content">
|
||||||
|
<h4 class="pt16">
|
||||||
|
Sample controllers file
|
||||||
|
</h4>
|
||||||
|
<p> for website data publish and api developer. including how inherit odoo portal home<br></p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-6 s_col_no_bgcolor pb24">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-12 pt16 pb16 o_colored_level" data-name="Box" data-tilt-feature="">
|
||||||
|
<i class="fa bg-primary text-white s_features_grid_icon rounded fa-2x">6</i>
|
||||||
|
<div class="s_features_grid_content">
|
||||||
|
<h4 class="pt16">
|
||||||
|
Sample report design file
|
||||||
|
</h4>
|
||||||
|
<p> .py file with how sql define. .xml file for graph and pivot</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-12 pt16 pb16 o_colored_level" data-name="Box" data-tilt-feature="">
|
||||||
|
<i class="fa fa-2x rounded bg-primary text-white s_features_grid_icon">7</i>
|
||||||
|
<div class="s_features_grid_content">
|
||||||
|
<h4 class="pt16">
|
||||||
|
Sample action and menu file
|
||||||
|
</h4>
|
||||||
|
<p>Root menu and menu group and action menu</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-12 pt16 pb16 o_colored_level" data-name="Box" data-tilt-feature="">
|
||||||
|
<i class="fa fa-2x rounded bg-primary text-white s_features_grid_icon">8</i>
|
||||||
|
<div class="s_features_grid_content">
|
||||||
|
<h4 class="pt16">
|
||||||
|
Ui misc sample
|
||||||
|
</h4>
|
||||||
|
<p>Alert like info and special field setup.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-12 pt16 pb16 o_colored_level" data-name="Box" data-tilt-feature="">
|
||||||
|
<i class="fa fa-2x rounded bg-primary text-white s_features_grid_icon">9</i>
|
||||||
|
<div class="s_features_grid_content">
|
||||||
|
<h4 class="pt16">
|
||||||
|
Odoo Widget sample
|
||||||
|
</h4>
|
||||||
|
<p>170+ widget list document and Frequently Used Sample.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-12 pt16 pb16 o_colored_level" data-name="Box" data-tilt-feature="">
|
||||||
|
<i class="fa fa-2x rounded bg-primary text-white s_features_grid_icon">10</i>
|
||||||
|
<div class="s_features_grid_content">
|
||||||
|
<h4 class="pt16">
|
||||||
|
Quick access odoo developer Tutorials online.
|
||||||
|
</h4>
|
||||||
|
<p>Document online for chinese and english. Fast visit in China.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-12 pt16 pb16 o_colored_level" data-name="Box" data-tilt-feature="">
|
||||||
|
<i class="fa fa-2x rounded bg-primary text-white s_features_grid_icon">11</i>
|
||||||
|
<div class="s_features_grid_content">
|
||||||
|
<h4 class="pt16">
|
||||||
|
Full Open Source.Multi-language Support. Multi-Company Support
|
||||||
|
</h4>
|
||||||
|
<p>Support Odoo 16,15,14,13,12, Enterprise and Community and odoo.sh Edition.</p>
|
||||||
|
<p>代码完全开源,多语言支持,多公司支持。Odoo 16,15,14,13,12, 企业版,社区版,在线SaaS.sh版,等全版本支持</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<!-- end features-->
|
||||||
|
|
||||||
|
<!-- begin snapshot-->
|
||||||
|
<section class="s_text_block o_colored_level pt16 pb16">
|
||||||
|
<div class="container s_allow_columns">
|
||||||
|
<h2 class="text-center bg-info text-white pt16 pb16">- Feature Guide -</h2>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="s_table_of_content pt24 pb24 o_cc o_cc1 o_colored_level" data-snippet="s_table_of_content" data-name="Table of Content">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row s_nb_column_fixed">
|
||||||
|
<div class="col-lg-2 col-md-3 s_table_of_content_navbar_wrap s_table_of_content_navbar_sticky s_table_of_content_vertical_navbar d-print-none d-none d-lg-block o_not_editable o_cc o_cc1 o_colored_level"
|
||||||
|
data-name="Navbar">
|
||||||
|
<div class="s_table_of_content_navbar list-group o_no_link_popover" style="top: 82px; max-height: calc(100vh - 102px);">
|
||||||
|
<a href="#toc_01" class="table_of_content_link list-group-item list-group-item-action py-2 border-0 rounded-0 active">
|
||||||
|
A full Sample app
|
||||||
|
</a>
|
||||||
|
<a href="#toc_02" class="table_of_content_link list-group-item list-group-item-action py-2 border-0 rounded-0">
|
||||||
|
Sample manifest
|
||||||
|
</a>
|
||||||
|
<a href="#toc_03" class="table_of_content_link list-group-item list-group-item-action py-2 border-0 rounded-0">
|
||||||
|
Sample .py
|
||||||
|
</a>
|
||||||
|
<a href="#toc_04" class="table_of_content_link list-group-item list-group-item-action py-2 border-0 rounded-0">
|
||||||
|
Sample .xml
|
||||||
|
</a>
|
||||||
|
<a href="#toc_05" class="table_of_content_link list-group-item list-group-item-action py-2 border-0 rounded-0">
|
||||||
|
Sample controllers
|
||||||
|
</a>
|
||||||
|
<a href="#toc_06" class="table_of_content_link list-group-item list-group-item-action py-2 border-0 rounded-0">
|
||||||
|
Sample report
|
||||||
|
</a>
|
||||||
|
<a href="#toc_07" class="table_of_content_link list-group-item list-group-item-action py-2 border-0 rounded-0">
|
||||||
|
Sample action and menu
|
||||||
|
</a>
|
||||||
|
<a href="#toc_08" class="table_of_content_link list-group-item list-group-item-action py-2 border-0 rounded-0">
|
||||||
|
Ui misc sample
|
||||||
|
</a>
|
||||||
|
<a href="#toc_09" class="table_of_content_link list-group-item list-group-item-action py-2 border-0 rounded-0">
|
||||||
|
Odoo Widget sample
|
||||||
|
</a>
|
||||||
|
<a href="#toc_10" class="table_of_content_link list-group-item list-group-item-action py-2 border-0 rounded-0">
|
||||||
|
Quick developer Tutorials
|
||||||
|
</a>
|
||||||
|
<a href="#toc_11" class="table_of_content_link list-group-item list-group-item-action py-2 border-0 rounded-0">
|
||||||
|
Multi-language,Multi-Company
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-10 col-md9 s_table_of_content_main oe_structure oe_empty o_colored_level" data-name="Content">
|
||||||
|
<section class="pb16 o_colored_level" style="background-image: none;">
|
||||||
|
<h3 data-anchor="true" id="toc_01">
|
||||||
|
A full Sample module app of odoo addons.
|
||||||
|
</h3>
|
||||||
|
<h4 class="oe_slogan">All the code, views, data ,banner, icon and description sample follow the odoo rule.</h4>
|
||||||
|
<div class="oe_demo oe_screenshot img img-fluid">
|
||||||
|
<img src="demo1.jpg">
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="pb16 o_colored_level" style="background-image: none;">
|
||||||
|
<h3 data-anchor="true" id="toc_02">
|
||||||
|
Sample manifest file.
|
||||||
|
</h3>
|
||||||
|
<h4 class="oe_slogan">Including structure and name and description etc, all field sample. </h4>
|
||||||
|
<p>Security xml and csv file for role group access rule.
|
||||||
|
Sample icon, banner, index.html, install/uninstall hooks.
|
||||||
|
Follow most odoo rule follow</p>
|
||||||
|
<p>https://www.odooai.cn/documentation/16.0/contributing/development/coding_guidelines.html</p>
|
||||||
|
<div class="oe_demo oe_screenshot img img-fluid">
|
||||||
|
<img src="demo2.jpg">
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="pb16 o_colored_level" style="background-image: none;">
|
||||||
|
<h3 data-anchor="true" id="toc_03">
|
||||||
|
Sample .py models file, for new model and inherit model
|
||||||
|
</h3>
|
||||||
|
<p>Please comment the inherit .py file of product_template.py in produce odoo.</p>
|
||||||
|
<div class="oe_demo oe_screenshot img img-fluid">
|
||||||
|
<img src="demo3.png">
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="pb16 o_colored_level" style="background-image: none;">
|
||||||
|
<h3 data-anchor="true" id="toc_04">
|
||||||
|
Sample .xml views file for models, with list, kanban, form, search
|
||||||
|
</h3>
|
||||||
|
<p>List</p>
|
||||||
|
<div class="oe_demo oe_screenshot img img-fluid">
|
||||||
|
<img src="demo_list.jpg">
|
||||||
|
</div>
|
||||||
|
<p>Kanban</p>
|
||||||
|
<div class="oe_demo oe_screenshot img img-fluid">
|
||||||
|
<img src="demo_kanban.jpg">
|
||||||
|
</div>
|
||||||
|
<p>Form</p>
|
||||||
|
<div class="oe_demo oe_screenshot img img-fluid">
|
||||||
|
<img src="demo_form.jpg">
|
||||||
|
</div>
|
||||||
|
<p>Form</p>
|
||||||
|
<div class="oe_demo oe_screenshot img img-fluid">
|
||||||
|
<img src="demo_search.jpg">
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="pb16 o_colored_level" style="background-image: none;">
|
||||||
|
<h3 data-anchor="true" id="toc_05">
|
||||||
|
Sample controllers file for website data publish and api developer
|
||||||
|
</h3>
|
||||||
|
<p>including how inherit odoo portal home.</p>
|
||||||
|
<div class="oe_demo oe_screenshot img img-fluid">
|
||||||
|
<img src="demo_controler.jpg">
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="pb16 o_colored_level" style="background-image: none;">
|
||||||
|
<h3 data-anchor="true" id="toc_06">
|
||||||
|
Sample report design file.
|
||||||
|
</h3>
|
||||||
|
<p> .py file with how sql define.</p>
|
||||||
|
<div class="oe_demo oe_screenshot img img-fluid">
|
||||||
|
<img src="demo_report.jpg">
|
||||||
|
</div>
|
||||||
|
<p> .xml file for graph and pivot.</p>
|
||||||
|
<div class="oe_demo oe_screenshot img img-fluid">
|
||||||
|
<img src="demo_graph.jpg">
|
||||||
|
</div>
|
||||||
|
<div class="oe_demo oe_screenshot img img-fluid">
|
||||||
|
<img src="demo_pivot.jpg">
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="pb16 o_colored_level" style="background-image: none;">
|
||||||
|
<h3 data-anchor="true" id="toc_07">
|
||||||
|
Sample action and menu file.
|
||||||
|
</h3>
|
||||||
|
<p>Root menu and menu group and action menu.</p>
|
||||||
|
<div class="oe_demo oe_screenshot img img-fluid">
|
||||||
|
<img src="demo_menu.jpg">
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="pb16 o_colored_level" style="background-image: none;">
|
||||||
|
<h3 data-anchor="true" id="toc_08">
|
||||||
|
Ui misc sample. Alert like info and special field setup.
|
||||||
|
</h3>
|
||||||
|
<div class="oe_demo oe_screenshot img img-fluid">
|
||||||
|
<img src="demo_ui.jpg">
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="pb16 o_colored_level" style="background-image: none;">
|
||||||
|
<h3 data-anchor="true" id="toc_09">
|
||||||
|
Odoo Widget sample.
|
||||||
|
</h3>
|
||||||
|
<p>170+ widget list document</p>
|
||||||
|
<div class="oe_demo oe_screenshot img img-fluid">
|
||||||
|
<img src="demo_widget_list.jpg">
|
||||||
|
</div>
|
||||||
|
<p> Frequently Used Sample.</p>
|
||||||
|
<div class="oe_demo oe_screenshot img img-fluid">
|
||||||
|
<img src="demo_widget_use.jpg">
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<section class="pb16 o_colored_level" style="background-image: none;">
|
||||||
|
<h3 data-anchor="true" id="toc_10">
|
||||||
|
Quick access odoo developer Tutorials online.
|
||||||
|
</h3>
|
||||||
|
<p>Click alert info to visit. Document online for chinese and english. Fast visit in China.</p>
|
||||||
|
<div class="oe_demo oe_screenshot img img-fluid">
|
||||||
|
<img src="demo10.jpg">
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<!-- end snapshot-->
|
||||||
|
|
||||||
|
<!-- begin free-->
|
||||||
|
<!-- end free-->
|
||||||
|
|
||||||
|
<!-- begin howto-->
|
||||||
|
<section class="oe_container container s_text_block o_colored_level pt16 pb16">
|
||||||
|
<h2 class="text-center bg-info text-white pt16 pb16">- How to setup and use -</h2>
|
||||||
|
<h3>This app need no extra module. The price already included</h3>
|
||||||
|
</section>
|
||||||
|
<section class="oe_container container">
|
||||||
|
<div class="oe_row oe_spaced">
|
||||||
|
<h4 class="pt16">
|
||||||
|
1. Buy and Install <a href="http://www.odoo.com/apps/modules/16.0/app_sample/" target="_blank">app_sample. </a>
|
||||||
|
</h4>
|
||||||
|
<h4 class="pt16">
|
||||||
|
2. Clone this sample and rename to your module name to quick create your odoo addons.
|
||||||
|
</h4>
|
||||||
|
<h4 class="pt16">3. Check the demo we create</h4>
|
||||||
|
<div class="row">
|
||||||
|
<div class="oe_demo oe_screenshot img img-fluid">
|
||||||
|
<img src="demo_use.jpg">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<!-- end howto-->
|
||||||
|
|
||||||
|
<!-- begin upsell-->
|
||||||
|
<!-- end upsell-->
|
||||||
|
|
||||||
|
<!-- begin support-->
|
||||||
|
<section class="container oe_dark">
|
||||||
|
<div class="oe_row oe_spaced text-center">
|
||||||
|
<div class="row">
|
||||||
|
<h2 class="oe_slogan">Technical Help & Support</h2>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-12 pad0">
|
||||||
|
<div class="oe_mt16">
|
||||||
|
<p><h4 class="pt16">
|
||||||
|
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
||||||
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
|
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:odoo@china.com"><span
|
||||||
|
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
||||||
|
<i class="fa fa-envelope"></i> odoo@china.com</a>
|
||||||
|
<p><h4 class="pt16">
|
||||||
|
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
||||||
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
|
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:300883@qq.com"><span
|
||||||
|
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
||||||
|
<i class="fa fa-envelope"></i> 300883@qq.com</a>
|
||||||
|
</div>
|
||||||
|
<div class="oe_mt16">
|
||||||
|
<h4 class="pt16">Visit our website for more support.</h4>
|
||||||
|
<h4 class="pt16">https://www.odooai.cn</h4>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<!-- end support-->
|
||||||
|
</html>
|
||||||
BIN
app_sample/static/description/odoo17.mp4
Normal file
BIN
app_sample/static/description/qr.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
app_sample/static/img/icon_odooai.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
app_sample/static/img/icon_odooapp.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
app_sample/static/img/logo_odooai.png
Normal file
|
After Width: | Height: | Size: 9.6 KiB |
0
app_sample/static/src/js/odooai.cn
Normal file
0
app_sample/static/src/scss/odooai.cn
Normal file
18
app_sample/static/src/scss/style.scss
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
// scss sample, 样例navbar在下方的特殊处理
|
||||||
|
.o_web_client {
|
||||||
|
//userMenu
|
||||||
|
.o_burger_menu {
|
||||||
|
width: 80%;
|
||||||
|
.o_burger_menu_topbar {
|
||||||
|
height: var(--o-navbar-height);
|
||||||
|
}
|
||||||
|
&.flex-column {
|
||||||
|
flex-direction: column-reverse!important;
|
||||||
|
}
|
||||||
|
.oi:before, .fa:before, .dropdown-toggle {
|
||||||
|
font-size: 2em;
|
||||||
|
line-height: var(--o-navbar-height);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
0
app_sample/static/src/xml/odooai.cn
Normal file
34
app_sample/views/menu_views.xml
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<odoo>
|
||||||
|
<data>
|
||||||
|
<!-- Sample,样例,-->
|
||||||
|
<!-- Root,根菜单,This Menu Item will appear in the Upper bar, That's why It needs NO parent or action -->
|
||||||
|
<menuitem id="module_new_root" name="Module New Root"
|
||||||
|
web_icon="app_sample,static/description/icon.png"
|
||||||
|
groups="group_app_user"
|
||||||
|
sequence="90"/>
|
||||||
|
|
||||||
|
<!-- Category,菜单分组,This Menu Item Must have a parent -->
|
||||||
|
<menuitem id="module_new_cat" name="Module New Category"
|
||||||
|
parent="module_new_root"
|
||||||
|
sequence="91"/>
|
||||||
|
|
||||||
|
<!-- Action,操作菜单,This Menu Item must have a parent and an action -->
|
||||||
|
<!-- model.new Menu -->
|
||||||
|
<menuitem id="menu_model_new" name="Model New"
|
||||||
|
parent="module_new_cat"
|
||||||
|
sequence="92"
|
||||||
|
action="action_model_new"/>
|
||||||
|
|
||||||
|
<menuitem id="menu_model_new_report" name="Model New Report"
|
||||||
|
parent="module_new_cat"
|
||||||
|
sequence="93"
|
||||||
|
action="action_model_new_report"/>
|
||||||
|
|
||||||
|
<!-- Exist Menu,改当前存在菜单,Change exist menu, use context if you are using multi language-->
|
||||||
|
<!-- <record id="Exist_ID_menu" model="ir.ui.menu" context="{'lang': 'zh_CN}">-->
|
||||||
|
<!-- <field name="groups_id"-->
|
||||||
|
<!-- eval="[(6,0,[ref('Exist_ID')])]"/>-->
|
||||||
|
<!-- </record>-->
|
||||||
|
</data>
|
||||||
|
</odoo>
|
||||||
271
app_sample/views/model_new_views.xml
Normal file
@@ -0,0 +1,271 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<odoo>
|
||||||
|
<!-- Template for model new view,新建模型视图 -->
|
||||||
|
<!-- model.new Tree View -->
|
||||||
|
<record id="app_view_model_new_tree" model='ir.ui.view'>
|
||||||
|
<field name="name">app.view.model.new.tree</field>
|
||||||
|
<field name="model">model.new</field>
|
||||||
|
<field name="priority">16</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<tree string="Model New" editable="bottom">
|
||||||
|
<field name="sequence" widget="handle"/>
|
||||||
|
<field name="name"/>
|
||||||
|
<field name="ref" optional="hide"/>
|
||||||
|
<field name="date" widget="date" optional="show"/>
|
||||||
|
<field name="amount" optional="show" sum="Total"/>
|
||||||
|
<field name="note" optional="hide"/>
|
||||||
|
|
||||||
|
<field name="day_max" invisible="1"/>
|
||||||
|
<field name="w_progressbar" widget="progressbar" optional="show"/>
|
||||||
|
<field name="w_percentpie" widget="percentpie" optional="show"/>
|
||||||
|
<field name="w_gauge" widget="gauge" options="{'max_field': 'day_max'}" optional="show"/>
|
||||||
|
<field name="state"
|
||||||
|
decoration-warning="state == 'draft'"
|
||||||
|
decoration-muted="state == 'cancel'"
|
||||||
|
decoration-success="state == 'done'"
|
||||||
|
widget="badge" optional="show"/>
|
||||||
|
<field name="active" optional="show" widget="boolean_toggle"/>
|
||||||
|
<field name="user_id" optional="show" widget="many2one_avatar_user"/>
|
||||||
|
</tree>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- model.new Form View -->
|
||||||
|
<record id="app_view_model_new_form" model="ir.ui.view">
|
||||||
|
<field name="name">app.view.model.new.form</field>
|
||||||
|
<field name="model">model.new</field>
|
||||||
|
<field name="priority">16</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<form string="Model New">
|
||||||
|
<header>
|
||||||
|
<field name="state" widget="statusbar" statusbar_visible="draft,done"/>
|
||||||
|
</header>
|
||||||
|
<sheet>
|
||||||
|
<div class="oe_button_box" name="button_box">
|
||||||
|
<button name="%(account.res_partner_action_customer)d"
|
||||||
|
type="action"
|
||||||
|
class="oe_stat_button"
|
||||||
|
icon="fa-pencil-square-o">
|
||||||
|
<field name="partner_count" widget="statinfo" />
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<widget name="web_ribbon" title="Archived" bg_color="bg-danger" attrs="{'invisible': [('active', '=', True)]}"/>
|
||||||
|
<field name="image" widget='image' class="oe_avatar" options='{"preview_image": "image"}'/>
|
||||||
|
<div class="oe_title">
|
||||||
|
<label class="oe_edit_only" for="name"/>
|
||||||
|
<h1>
|
||||||
|
<field name="name"/>
|
||||||
|
</h1>
|
||||||
|
</div>
|
||||||
|
<group>
|
||||||
|
<group name="g1">
|
||||||
|
<field name="ref"/>
|
||||||
|
<field name="sequence"/>
|
||||||
|
</group>
|
||||||
|
<group name="g2">
|
||||||
|
<field name="active" widget="boolean_toggle"/>
|
||||||
|
<label class="o_form_label" for="note"/>
|
||||||
|
<div>
|
||||||
|
<field name="note" class="oe_inline" placeholder="Special field view for more contend"/>
|
||||||
|
<a href="https://apps.odoo.com/apps/modules/16.0/app_module_creator" title="Odoo Module Creator" class="o_doc_link"
|
||||||
|
target="_blank"></a>
|
||||||
|
</div>
|
||||||
|
</group>
|
||||||
|
</group>
|
||||||
|
<notebook>
|
||||||
|
<page string="Widget Frequently Used">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-5 alert alert-success mb-2 ml4" role="alert">
|
||||||
|
<a href="https://www.odooai.cn/documentation/16.0/zh_CN/developer.html" title="Odoo Developer Tutorials" class="o_doc_link"
|
||||||
|
target="_blank">
|
||||||
|
Alert success: Odoo Developer reference Guides
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div class="col-5 alert alert-danger mb-2 ml4" role="alert">
|
||||||
|
<a href="https://www.odooai.cn/blog/odoo-develope-implement-8/odoo16-owl-widget-list-110" title="Odoo Module Creator" class="o_doc_link"
|
||||||
|
target="_blank">
|
||||||
|
Alert danger: Get All 174+ odoo widget list
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div class="col-5 alert alert-info mb-2 ml4" role="alert">
|
||||||
|
<a href="https://apps.odoo.com/apps/modules/16.0/app_module_creator" title="Odoo Module Creator" class="o_doc_link"
|
||||||
|
target="_blank">
|
||||||
|
Alert info: Get odoo module auto creator, Quick create module with view and widget.
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div class="col-5 alert alert-warning mb-2 ml4" role="alert">
|
||||||
|
<a href="https://www.odooai.cn" title="Odoo Module Creator" class="o_doc_link"
|
||||||
|
target="_blank">
|
||||||
|
Alert warning: Get More support in odooai.cn
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<group>
|
||||||
|
<group string="char">
|
||||||
|
<field name="w_phone" widget="phone"/>
|
||||||
|
<field name="w_email" widget="email"/>
|
||||||
|
<field name="w_image_url" widget="image_url" options="{'size': [60, 60]}"/>
|
||||||
|
<field name="w_url" widget="url"/>
|
||||||
|
<field name="w_CopyClipboardURL" widget="CopyClipboardURL"/>
|
||||||
|
<field name="w_CopyClipboardChar" widget="CopyClipboardChar"/>
|
||||||
|
<field name="w_CopyClipboardText" widget="CopyClipboardText"/>
|
||||||
|
</group>
|
||||||
|
<group string="int,float,date,datetime">
|
||||||
|
<label for="date" string="daterange"/>
|
||||||
|
<div class="o_row">
|
||||||
|
<field name="date" widget="daterange" options='{"related_end_date": "date_end"}'/>
|
||||||
|
<i class="fa fa-long-arrow-right mx-2 oe_edit_only" aria-label="Arrow icon" title="Arrow"/>
|
||||||
|
<field name="date_end" widget="daterange" options='{"related_start_date": "date"}'/>
|
||||||
|
</div>
|
||||||
|
<field name="w_gauge" widget="gauge" options="{'max_field': 'day_max'}"/>
|
||||||
|
<field name="w_progressbar" widget="progressbar" options="{'editable': true}" title="Integer"/>
|
||||||
|
<field name="w_percentpie" widget="percentpie" title="float"/>
|
||||||
|
<field name="w_percentage" widget="percentage" title="float"/>
|
||||||
|
</group>
|
||||||
|
<group string="selection">
|
||||||
|
<!-- status_with_color 是在 kanban中使用-->
|
||||||
|
<!-- <field name="w_color_s"/>-->
|
||||||
|
<!-- <field name="w_status_with_color" widget="status_with_color" options="{'color_field': 'w_color_s'}"/>-->
|
||||||
|
<field name="state"
|
||||||
|
decoration-warning="state == 'draft'"
|
||||||
|
decoration-muted="state == 'cancel'"
|
||||||
|
decoration-success="state == 'done'"
|
||||||
|
widget="badge" optional="show"/>
|
||||||
|
</group>
|
||||||
|
<group string="many2many">
|
||||||
|
<!-- <field name="partner_ids" widget="many2many_tags"/>-->
|
||||||
|
<field name="partner_ids" widget="many2many_tags_avatar" string="many2many_tags_avatar"/>
|
||||||
|
<!-- <field name="w_autosave_many2many_tags" widget="autosave_many2many_tags"-->
|
||||||
|
<!-- options="{'no_create': True}"-->
|
||||||
|
<!-- force_save="1"/>-->
|
||||||
|
</group>
|
||||||
|
<group string="many2one">
|
||||||
|
<field name="user_id" widget="many2one_avatar_user" string="many2one_avatar_user"/>
|
||||||
|
<field name="w_selection_badge" widget="selection_badge"/>
|
||||||
|
</group>
|
||||||
|
|
||||||
|
</group>
|
||||||
|
</page>
|
||||||
|
</notebook>
|
||||||
|
</sheet>
|
||||||
|
<div class="oe_chatter">
|
||||||
|
<field name="message_follower_ids" widget="mail_followers"/>
|
||||||
|
<field name="activity_ids" widget="mail_activity"/>
|
||||||
|
<field name="message_ids" widget="mail_thread"/>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- model.new Kanban View -->
|
||||||
|
<record id="app_view_model_new_kanban" model="ir.ui.view">
|
||||||
|
<field name="name">app.model.new.kanban</field>
|
||||||
|
<field name="model">model.new</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<kanban>
|
||||||
|
<field name="id"/>
|
||||||
|
<field name="name"/>
|
||||||
|
<field name="amount"/>
|
||||||
|
<field name="date"/>
|
||||||
|
<field name="state"/>
|
||||||
|
<field name="user_id"/>
|
||||||
|
<field name="image"/>
|
||||||
|
<field name="partner_count"/>
|
||||||
|
<field name="company_id"/>
|
||||||
|
<field name="color"/>
|
||||||
|
<field name="w_color_s"/>
|
||||||
|
|
||||||
|
<templates>
|
||||||
|
<t t-name="kanban-box">
|
||||||
|
<div t-attf-class="#{!selection_mode ? kanban_color(record.color.raw_value) : ''} oe_kanban_global_click o_has_icon oe_kanban_content oe_kanban_card">
|
||||||
|
<div t-attf-class="o_kanban_card_header">
|
||||||
|
<div class="o_kanban_card_header_title">
|
||||||
|
<h3 class="o_primary"><field name="name"/></h3>
|
||||||
|
</div>
|
||||||
|
<div class="o_kanban_manage_button_section">
|
||||||
|
<a class="o_kanban_manage_toggle_button" href="#"><i class="fa fa-ellipsis-v" role="img" aria-label="Manage" title="Manage"/></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="o_kanban_card_content mt4">
|
||||||
|
<div class="o_kanban_image mr4">
|
||||||
|
<img t-att-src="kanban_image('model.new', 'image', record.id.raw_value)" alt="Image"/>
|
||||||
|
</div>
|
||||||
|
<h4 class="o_kanban_record_title mb4">
|
||||||
|
Ref: <field name="ref"/>
|
||||||
|
</h4>
|
||||||
|
<div class="oe_kanban_details">
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<a name="%(account.res_partner_action_customer)d" type="action">
|
||||||
|
<t t-esc="record.partner_count.value"/>
|
||||||
|
Partner
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<field name="w_progressbar" widget="progressbar"/>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<field name="w_url" widget="url"/>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="o_kanban_record_bottom mt-3">
|
||||||
|
<div class="oe_kanban_bottom_left">
|
||||||
|
<div class="o_project_kanban_boxes d-flex align-items-baseline">
|
||||||
|
<field name="date"/>
|
||||||
|
</div>
|
||||||
|
<field name="activity_ids" widget="kanban_activity"/>
|
||||||
|
</div>
|
||||||
|
<div class="oe_kanban_bottom_right">
|
||||||
|
<field name="user_id" widget="many2one_avatar_user" t-if="record.user_id.raw_value"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="o_kanban_card_manage_pane dropdown-menu text-right" role="menu">
|
||||||
|
<div class="o_kanban_card_manage_section">
|
||||||
|
<div class="dropdown-divider mt-0"/>
|
||||||
|
<!-- 下拉操作-->
|
||||||
|
<div role="menuitem" class="text-end mr32">
|
||||||
|
<a type="edit">Edit</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div t-if="widget.editable" role="menuitem" aria-haspopup="true" class="o_no_padding_kanban_colorpicker">
|
||||||
|
<ul class="oe_kanban_colorpicker" data-field="color" role="popup"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</t>
|
||||||
|
</templates>
|
||||||
|
</kanban>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- model.new Search View -->
|
||||||
|
<record id="app_view_model_new_search" model="ir.ui.view">
|
||||||
|
<field name="name">app.view.model.new.search</field>
|
||||||
|
<field name="model">model.new</field>
|
||||||
|
<field name="priority">16</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<search string="Model New">
|
||||||
|
<field name="name"/>
|
||||||
|
<field name="ref"/>
|
||||||
|
<field name="note"/>
|
||||||
|
<filter string="Archived" name="inactive" domain="[('active', '=', False)]"/>
|
||||||
|
<group expand="0" string="Group By">
|
||||||
|
<filter string="State" name="groupby_state" context="{'group_by': 'state'}"/>
|
||||||
|
<filter string="User" name="groupby_user_id" context="{'group_by': 'user_id'}"/>
|
||||||
|
</group>
|
||||||
|
<searchpanel>
|
||||||
|
</searchpanel>
|
||||||
|
</search>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- model.new Action -->
|
||||||
|
<record id="action_model_new" model="ir.actions.act_window">
|
||||||
|
<field name="name">Model New</field>
|
||||||
|
<field name="res_model">model.new</field>
|
||||||
|
<field name="view_mode">kanban,tree,form</field>
|
||||||
|
<field name="context">{'search_default_groupby_state': 1}</field>
|
||||||
|
</record>
|
||||||
|
</odoo>
|
||||||
58
app_sample/views/product_template_views.xml
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<odoo>
|
||||||
|
<!-- Template for model view inherit,继承模型视图 -->
|
||||||
|
<!-- List -->
|
||||||
|
<record id="app_view_product_template_tree" model="ir.ui.view">
|
||||||
|
<field name="name">app.view.product.template.tree</field>
|
||||||
|
<field name="model">product.template</field>
|
||||||
|
<field name="inherit_id" ref="product.product_template_tree_view"/>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<field name="name" position="after">
|
||||||
|
<field name="short_name"/>
|
||||||
|
</field>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- Kanban-->
|
||||||
|
<record id="app_view_product_template_kanban" model="ir.ui.view">
|
||||||
|
<field name="name">app.view.product.template.kanban</field>
|
||||||
|
<field name="model">product.template</field>
|
||||||
|
<field name="name">product.template.search.brand</field>
|
||||||
|
<field name="model">product.template</field>
|
||||||
|
<field name="inherit_id" ref="product.product_template_kanban_view"/>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<xpath expr="//div[hasclass('oe_kanban_details')]/strong[1]" position="after">
|
||||||
|
<div>
|
||||||
|
<a t-if="record.product_brand_id" type="action"
|
||||||
|
name="%(action_open_single_product_brand)d">
|
||||||
|
<field name="product_brand_id"/>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</xpath>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- Form -->
|
||||||
|
<record id="app_view_product_template_form" model="ir.ui.view">
|
||||||
|
<field name="name">app.product.template.form</field>
|
||||||
|
<field name="model">product.template</field>
|
||||||
|
<field name="inherit_id" ref="product.product_template_form_view"/>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<field name="product_tooltip" position="after">
|
||||||
|
<field name="short_name" placeholder="Brief Name"/>
|
||||||
|
</field>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- Search -->
|
||||||
|
<record id="app_view_product_template_search" model="ir.ui.view">
|
||||||
|
<field name="name">app.product.template.search</field>
|
||||||
|
<field name="model">product.template</field>
|
||||||
|
<field name="inherit_id" ref="product.product_template_search_view"/>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<field name="name" position="after">
|
||||||
|
<field name="short_name"/>
|
||||||
|
</field>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
</odoo>
|
||||||
13
app_sample/views/website_templates.xml
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<odoo>
|
||||||
|
<data>
|
||||||
|
<template id="assets_backend" name="app_web_supero2m assets" inherit_id="web.assets_backend">
|
||||||
|
<xpath expr="//link[last()]" position="after">
|
||||||
|
<link rel="stylesheet" type="text/scss" href="/app_web_supero2m/static/src/scss/app.scss"/>
|
||||||
|
</xpath>
|
||||||
|
<xpath expr="script[last()]" position="after">
|
||||||
|
<script type="text/javascript" src="/app_web_supero2m/static/src/js/list_renderer.js"/>
|
||||||
|
</xpath>
|
||||||
|
</template>
|
||||||
|
</data>
|
||||||
|
</odoo>
|
||||||
0
app_sample/wizard/odooai.cn
Normal file
@@ -191,9 +191,9 @@
|
|||||||
<p><h4>
|
<p><h4>
|
||||||
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:guohuadeng@hotmail.com"><span
|
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:odoo@china.com"><span
|
||||||
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
||||||
<i class="fa fa-envelope"></i> guohuadeng@hotmail.com</a>
|
<i class="fa fa-envelope"></i> odoo@china.com</a>
|
||||||
<p><h4>
|
<p><h4>
|
||||||
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
|
|||||||
@@ -121,9 +121,9 @@
|
|||||||
<p><h4>
|
<p><h4>
|
||||||
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:guohuadeng@hotmail.com"><span
|
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:odoo@china.com"><span
|
||||||
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
||||||
<i class="fa fa-envelope"></i> guohuadeng@hotmail.com</a>
|
<i class="fa fa-envelope"></i> odoo@china.com</a>
|
||||||
<p><h4>
|
<p><h4>
|
||||||
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
|
|||||||
@@ -162,9 +162,9 @@
|
|||||||
<p><h4>
|
<p><h4>
|
||||||
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:guohuadeng@hotmail.com"><span
|
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:odoo@china.com"><span
|
||||||
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
||||||
<i class="fa fa-envelope"></i> guohuadeng@hotmail.com</a>
|
<i class="fa fa-envelope"></i> odoo@china.com</a>
|
||||||
<p><h4>
|
<p><h4>
|
||||||
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
|
|||||||
@@ -162,9 +162,9 @@
|
|||||||
<p><h4>
|
<p><h4>
|
||||||
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:guohuadeng@hotmail.com"><span
|
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:odoo@china.com"><span
|
||||||
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
||||||
<i class="fa fa-envelope"></i> guohuadeng@hotmail.com</a>
|
<i class="fa fa-envelope"></i> odoo@china.com</a>
|
||||||
<p><h4>
|
<p><h4>
|
||||||
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
|
|||||||
@@ -164,9 +164,9 @@
|
|||||||
<p><h4>
|
<p><h4>
|
||||||
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:guohuadeng@hotmail.com"><span
|
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:odoo@china.com"><span
|
||||||
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
||||||
<i class="fa fa-envelope"></i> guohuadeng@hotmail.com</a>
|
<i class="fa fa-envelope"></i> odoo@china.com</a>
|
||||||
<p><h4>
|
<p><h4>
|
||||||
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
|
|||||||
@@ -55,9 +55,9 @@
|
|||||||
<p><h4>
|
<p><h4>
|
||||||
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:guohuadeng@hotmail.com"><span
|
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:odoo@china.com"><span
|
||||||
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
||||||
<i class="fa fa-envelope"></i> guohuadeng@hotmail.com</a>
|
<i class="fa fa-envelope"></i> odoo@china.com</a>
|
||||||
<p><h4>
|
<p><h4>
|
||||||
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
|
|||||||
@@ -68,9 +68,9 @@
|
|||||||
<p><h4>
|
<p><h4>
|
||||||
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:guohuadeng@hotmail.com"><span
|
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:odoo@china.com"><span
|
||||||
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
||||||
<i class="fa fa-envelope"></i> guohuadeng@hotmail.com</a>
|
<i class="fa fa-envelope"></i> odoo@china.com</a>
|
||||||
<p><h4>
|
<p><h4>
|
||||||
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
|
|||||||
@@ -66,9 +66,9 @@
|
|||||||
<p><h4>
|
<p><h4>
|
||||||
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:guohuadeng@hotmail.com"><span
|
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:odoo@china.com"><span
|
||||||
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
||||||
<i class="fa fa-envelope"></i> guohuadeng@hotmail.com</a>
|
<i class="fa fa-envelope"></i> odoo@china.com</a>
|
||||||
<p><h4>
|
<p><h4>
|
||||||
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
|
|||||||
@@ -385,9 +385,9 @@
|
|||||||
<p><h4>
|
<p><h4>
|
||||||
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:guohuadeng@hotmail.com"><span
|
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:odoo@china.com"><span
|
||||||
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
||||||
<i class="fa fa-envelope"></i> guohuadeng@hotmail.com</a>
|
<i class="fa fa-envelope"></i> odoo@china.com</a>
|
||||||
<p><h4>
|
<p><h4>
|
||||||
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
|
|||||||
@@ -66,9 +66,9 @@
|
|||||||
<p><h4>
|
<p><h4>
|
||||||
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:guohuadeng@hotmail.com"><span
|
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:odoo@china.com"><span
|
||||||
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
||||||
<i class="fa fa-envelope"></i> guohuadeng@hotmail.com</a>
|
<i class="fa fa-envelope"></i> odoo@china.com</a>
|
||||||
<p><h4>
|
<p><h4>
|
||||||
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
|
|||||||
@@ -42,9 +42,9 @@
|
|||||||
<p><h4>
|
<p><h4>
|
||||||
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:guohuadeng@hotmail.com"><span
|
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:odoo@china.com"><span
|
||||||
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
||||||
<i class="fa fa-envelope"></i> guohuadeng@hotmail.com</a>
|
<i class="fa fa-envelope"></i> odoo@china.com</a>
|
||||||
<p><h4>
|
<p><h4>
|
||||||
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
||||||
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
|
|||||||