Browse Source

automatic fixes

pull/84/head
robin.keunen 4 years ago
parent
commit
4053d6a88a
  1. 6
      easy_my_coop/__init__.py
  2. 86
      easy_my_coop/data/easy_my_coop_data.xml
  3. 886
      easy_my_coop/data/mail_template_data.xml
  4. 2
      easy_my_coop/demo/coop.xml
  5. 2
      easy_my_coop/models/mail_template.py
  6. 22
      easy_my_coop/models/operation_request.py
  7. 1
      easy_my_coop/readme/CONTRIBUTORS.rst
  8. 92
      easy_my_coop/report/cooperator_register_G001.xml
  9. 82
      easy_my_coop/report/cooperator_subscription_G001.xml
  10. 38
      easy_my_coop/report/easy_my_coop_report.xml
  11. 32
      easy_my_coop/security/ir.model.access.csv
  12. 54
      easy_my_coop/static/src/css/coop_report.css
  13. 50
      easy_my_coop/static/src/js/easy_my_coop.js
  14. 2720
      easy_my_coop/static/src/js/jquery.inputmask.bundle.js
  15. 146
      easy_my_coop/views/account_invoice_view.xml
  16. 52
      easy_my_coop/views/account_journal_view.xml
  17. 154
      easy_my_coop/views/cooperator_register_view.xml
  18. 30
      easy_my_coop/views/email_template_view.xml
  19. 210
      easy_my_coop/views/operation_request_view.xml
  20. 306
      easy_my_coop/views/product_view.xml
  21. 68
      easy_my_coop/views/res_company_view.xml
  22. 12
      easy_my_coop/views/res_partner_view.xml
  23. 402
      easy_my_coop/views/subscription_request_view.xml
  24. 6
      easy_my_coop/wizard/cooperative_history_wizard.xml
  25. 72
      easy_my_coop/wizard/update_share_line.xml
  26. 2
      easy_my_coop_be/__init__.py
  27. 4
      easy_my_coop_be/models/__init__.py
  28. 1
      easy_my_coop_be/readme/CONTRIBUTORS.rst
  29. 2
      easy_my_coop_ch/__init__.py
  30. 4
      easy_my_coop_ch/models/__init__.py
  31. 52
      easy_my_coop_ch/views/subscription_template.xml
  32. 1
      easy_my_coop_dividend/__init__.py
  33. 1
      easy_my_coop_dividend/models/__init__.py
  34. 1
      easy_my_coop_dividend/readme/CONTRIBUTORS.rst
  35. 2
      easy_my_coop_dividend/security/ir.model.access.csv
  36. 328
      easy_my_coop_dividend/views/dividend_views.xml
  37. 2
      easy_my_coop_eater/__init__.py
  38. 4
      easy_my_coop_eater/models/__init__.py
  39. 58
      easy_my_coop_eater/models/coop.py
  40. 20
      easy_my_coop_eater/models/product.py
  41. 26
      easy_my_coop_eater/view/product_view.xml
  42. 1
      easy_my_coop_export_xlsx/__init__.py
  43. 1
      easy_my_coop_export_xlsx/readme/CONTRIBUTORS.rst
  44. 1
      easy_my_coop_export_xlsx/wizard/__init__.py
  45. 2
      easy_my_coop_export_xlsx/wizard/export_global_wizard.xml
  46. 2
      easy_my_coop_fr/__init__.py
  47. 4
      easy_my_coop_fr/models/__init__.py
  48. 1
      easy_my_coop_fr/readme/CONTRIBUTORS.rst
  49. 98
      easy_my_coop_fr/views/certificate_template.xml
  50. 27
      easy_my_coop_fr/views/layout_template.xml
  51. 28
      easy_my_coop_fr/views/subscription_template.xml
  52. 2
      easy_my_coop_loan/__init__.py
  53. 1
      easy_my_coop_loan/readme/CONTRIBUTORS.rst
  54. 14
      easy_my_coop_loan/security/ir.model.access.csv
  55. 2
      easy_my_coop_loan/views/loan_view.xml
  56. 102
      easy_my_coop_loan/views/partner_view.xml
  57. 2
      easy_my_coop_loan_website/__init__.py
  58. 2
      easy_my_coop_loan_website/controllers/__init__.py
  59. 32
      easy_my_coop_loan_website/data/website_loan_data.xml
  60. 1
      easy_my_coop_loan_website/readme/CONTRIBUTORS.rst
  61. 18
      easy_my_coop_loan_website/static/src/js/loan_issue.js
  62. 108
      easy_my_coop_loan_website/template/loan_issue_template.xml
  63. 1
      easy_my_coop_taxshelter_report/readme/CONTRIBUTORS.rst
  64. 2
      easy_my_coop_website/__init__.py
  65. 1
      easy_my_coop_website/readme/CONTRIBUTORS.rst
  66. 232
      easy_my_coop_website/views/subscription_template.xml
  67. 1
      easy_my_coop_website_portal/__init__.py
  68. 1
      easy_my_coop_website_portal/controllers/__init__.py
  69. 1
      easy_my_coop_website_portal/readme/CONTRIBUTORS.rst
  70. 4
      easy_my_coop_website_portal/views/easy_my_coop_website_portal_templates.xml
  71. 1
      easy_my_coop_website_taxshelter/__init__.py
  72. 1
      easy_my_coop_website_taxshelter/controllers/__init__.py
  73. 1
      easy_my_coop_website_taxshelter/readme/CONTRIBUTORS.rst
  74. 2
      partner_age/__init__.py
  75. 2
      partner_age/models/__init__.py
  76. 1
      partner_age/readme/CONTRIBUTORS.rst
  77. 48
      partner_age/view/partner_view.xml
  78. 1
      theme_light/readme/CONTRIBUTORS.rst
  79. 66
      theme_light/report/header_report_G002.xml
  80. 4
      theme_light/static/css/global_theme.sass
  81. 26
      theme_light/static/css/invoice_B001.css
  82. 32
      theme_light/static/css/invoice_B002.css
  83. 26
      theme_light/static/css/invoice_G001.css
  84. 48
      theme_light/static/css/invoice_G002.css
  85. 32
      theme_light/static/css/invoice_O002.css
  86. 42
      theme_light/static/css/invoice_P002.css
  87. 26
      theme_light/static/css/invoice_orange.css
  88. 30
      theme_light/static/css/mail_template_B001.css
  89. 12
      theme_light/static/css/theme_zen_black.css
  90. 42
      theme_light/static/css/theme_zen_blue.css
  91. 12
      theme_light/static/css/theme_zen_brown.css
  92. 30
      theme_light/static/css/theme_zen_green.css
  93. 70
      theme_light/static/css/theme_zen_orange.css
  94. 44
      theme_light/static/css/theme_zen_purple.css
  95. 12
      theme_light/static/css/theme_zen_red.css
  96. 177
      theme_light/static/css/theme_zen_white.css
  97. 12
      theme_light/static/css/theme_zen_yellow.css
  98. 411
      theme_light/views/layout_template.xml
  99. 1
      website_recaptcha_reloaded/readme/CONTRIBUTORS.rst
  100. 2
      website_recaptcha_reloaded/views/res_config.xml

6
easy_my_coop/__init__.py

@ -1,3 +1,3 @@
from . import models
from . import report
from . import wizard
from . import models
from . import report
from . import wizard

86
easy_my_coop/data/easy_my_coop_data.xml

@ -1,43 +1,43 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="1">
<record model="ir.module.category" id="module_category_cooperator_management">
<field name="name">Cooperative Management</field>
<field name="description">Manage your cooperative.</field>
<field name="sequence">3</field>
</record>
<!-- Product -->
<record id="product_category_company_share" model="product.category">
<field name="name">Company Share</field>
</record>
<record id="sequence_subscription_journal" model="ir.sequence">
<field name="name">Account Default Subscription Journal</field>
<field eval="3" name="padding"/>
<field name="prefix">SUBJ/%(year)s/</field>
<field name="use_date_range">True</field>
</record>
<record id="subscription_journal" model="account.journal">
<field name="name">Subscription Journal</field>
<field name="code">SUBJ</field>
<field name="type">sale</field>
<field name="sequence_id" ref="sequence_subscription_journal"/>
</record>
<record id="sequence_subscription" model="ir.sequence">
<field name="name">Subscription Register</field>
<field name="code">subscription.register</field>
<field eval="1" name="number_next"/>
<field eval="1" name="number_increment"/>
</record>
<record id="sequence_register_operation" model="ir.sequence">
<field name="name">Register Operation</field>
<field name="code">register.operation</field>
<field eval="1" name="number_next"/>
<field eval="1" name="number_increment"/>
</record>
</data>
</openerp>
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="1">
<record model="ir.module.category" id="module_category_cooperator_management">
<field name="name">Cooperative Management</field>
<field name="description">Manage your cooperative.</field>
<field name="sequence">3</field>
</record>
<!-- Product -->
<record id="product_category_company_share" model="product.category">
<field name="name">Company Share</field>
</record>
<record id="sequence_subscription_journal" model="ir.sequence">
<field name="name">Account Default Subscription Journal</field>
<field eval="3" name="padding"/>
<field name="prefix">SUBJ/%(year)s/</field>
<field name="use_date_range">True</field>
</record>
<record id="subscription_journal" model="account.journal">
<field name="name">Subscription Journal</field>
<field name="code">SUBJ</field>
<field name="type">sale</field>
<field name="sequence_id" ref="sequence_subscription_journal"/>
</record>
<record id="sequence_subscription" model="ir.sequence">
<field name="name">Subscription Register</field>
<field name="code">subscription.register</field>
<field eval="1" name="number_next"/>
<field eval="1" name="number_increment"/>
</record>
<record id="sequence_register_operation" model="ir.sequence">
<field name="name">Register Operation</field>
<field name="code">register.operation</field>
<field eval="1" name="number_next"/>
<field eval="1" name="number_increment"/>
</record>
</data>
</openerp>

886
easy_my_coop/data/mail_template_data.xml

@ -1,443 +1,443 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- Mail template are declared in a NOUPDATE block
so users can freely customize/delete them -->
<data noupdate="1">
<!--Request to release capital Email template -->
<record id="email_template_release_capital" model="mail.template">
<field name="name">Request to Release Capital - Send by Email</field>
<field name="email_from">${(object.company_id.coop_email_contact or object.user_id.email)|safe}</field>
<field name="subject">${object.company_id.name} Request to Release Capital (Ref ${object.number or 'n/a'})</field>
<field name="partner_to">${object.partner_id.id}</field>
<field name="reply_to">${(object.company_id.coop_email_contact or object.user_id.email)|safe}</field>
<field name="model_id" ref="account.model_account_invoice"/>
<field name="auto_delete" eval="True"/>
<field name="report_template" ref="action_cooperator_invoices"/>
<field name="report_name">${(object.number or '').replace('/','_')}_${object.state == 'draft' and 'draft' or ''}</field>
<field name="lang">${object.partner_id.lang}</field>
<field name="easy_my_coop" eval="True"/>
<field name="body_html"><![CDATA[
<div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; ">
<p>Hello ${object.partner_id.name},</p>
<p>You will find in attachment all the necessary information for the payment. We kindly remind you that your subscription will be effective only once we received the payment.</p>
<p>Do not forget to add the structured communication to the payment.</p>
<p>Sustainably your,</p>
<p>${object.company_id.name}.</p>
% if object.company_id.street:
${object.company_id.street}
% endif
% if object.company_id.street2:
${object.company_id.street2}<br/>
% endif
% if object.company_id.city or object.company_id.zip:
${object.company_id.zip} ${object.company_id.city}<br/>
% endif
% if object.company_id.country_id:
${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) or ''} ${object.company_id.country_id.name or ''}<br/>
% endif
% if object.company_id.phone:
Phone:&nbsp; ${object.company_id.phone}
% endif
% if object.company_id.website:
<div>
Web :&nbsp;<a href="${object.company_id.website}">${object.company_id.website}</a>
</div>
%endif
<div>
<img src=${object.company_id.logo_url}>
</div>
</div>
]]></field>
</record>
<record id="email_template_confirmation" model="mail.template">
<field name="name">Confirmation Email</field>
<field name="email_from">${(object.company_id.coop_email_contact or object.user_id.email)|safe}</field>
<field name="subject">Subscription request confirmation</field>
<field name="email_to">${object.email}</field>
<field name="reply_to">${(object.company_id.coop_email_contact or object.user_id.email)|safe}</field>
<field name="model_id" ref="model_subscription_request"/>
<field name="auto_delete" eval="True"/>
<field name="lang">${object.lang}</field>
<field name="easy_my_coop" eval="True"/>
<field name="body_html"><![CDATA[
<div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; ">
<p>Hello ${object.name},</p>
<p>Your request will be soon processed by our team. If all the provided info are correct you will soon receive the payment information in another email</p>
<br/>
<p>If you have any question, do not hesitate to contact us.</p>
<br/>
<p>Sustainably your,</p>
<p>${object.company_id.name}.</p>
% if object.company_id.street:
${object.company_id.street}
% endif
% if object.company_id.street2:
${object.company_id.street2}<br/>
% endif
% if object.company_id.city or object.company_id.zip:
${object.company_id.zip} ${object.company_id.city}<br/>
% endif
% if object.company_id.country_id:
${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) or ''} ${object.company_id.country_id.name or ''}<br/>
% endif
% if object.company_id.phone:
Phone:&nbsp; ${object.company_id.phone}
% endif
% if object.company_id.website:
<div>
Web :&nbsp;<a href="${object.company_id.website}">${object.company_id.website}</a>
</div>
%endif
<div>
<img src=${object.company_id.logo_url}>
</div>
</div>
]]></field>
</record>
<record id="email_template_waiting_list" model="mail.template">
<field name="name">Waiting List Email</field>
<field name="email_from">${(object.company_id.coop_email_contact or object.user_id.email)|safe}</field>
<field name="subject">Subscription request added on waiting list. </field>
<field name="email_to">${object.email}</field>
<field name="reply_to">${(object.company_id.coop_email_contact or object.user_id.email)|safe}</field>
<field name="model_id" ref="model_subscription_request"/>
<field name="auto_delete" eval="True"/>
<field name="lang">${object.lang}</field>
<field name="easy_my_coop" eval="True"/>
<field name="body_html"><![CDATA[
<div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; ">
<p>Hello ${object.name},</p>
<p>Thank you for your subscription request. There are currently no project to raise funds for, thus we added it on waiting list.
We will contact you as soon as the subscription requests are re-opened.
</p>
<br/>
<p>If you have any question, do not hesitate to contact us.</p>
<br/>
<p>Sustainably yours,</p>
<p>${object.company_id.name}.</p>
% if object.company_id.street:
${object.company_id.street}
% endif
% if object.company_id.street2:
${object.company_id.street2}<br/>
% endif
% if object.company_id.city or object.company_id.zip:
${object.company_id.zip} ${object.company_id.city}<br/>
% endif
% if object.company_id.country_id:
${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) or ''} ${object.company_id.country_id.name or ''}<br/>
% endif
% if object.company_id.phone:
Phone:&nbsp; ${object.company_id.phone}
% endif
% if object.company_id.website:
<div>
Web :&nbsp;<a href="${object.company_id.website}">${object.company_id.website}</a>
</div>
%endif
<div>
<img src=${object.company_id.logo_url}>
</div>
</div>
]]></field>
</record>
<record id="email_template_confirmation_company" model="mail.template">
<field name="name">Company Confirmation Email</field>
<field name="email_from">${(object.company_id.coop_email_contact or object.user_id.email)|safe}</field>
<field name="subject">Subscription request confirmation</field>
<field name="email_to">${object.email},${object.company_email}</field>
<field name="reply_to">${(object.company_id.coop_email_contact or object.user_id.email)|safe}</field>
<field name="model_id" ref="model_subscription_request"/>
<field name="auto_delete" eval="True"/>
<field name="lang">${object.lang}</field>
<field name="easy_my_coop" eval="True"/>
<field name="body_html"><![CDATA[
<div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; ">
<p>Hello ${object.name},</p>
<p>We have received your subscription request for ${object.company_id.name}. Thank you for your support.</p>
<p>Your request will be soon processed by our team "gestion et participation des membres". If all the provided info are correct you will soon receive the payment information in another email</p>
<br/>
<p>If you have any question, do not hesitate to contact us.</p>
<br/>
<p>Sustainably your,</p>
<p>${object.company_id.name}.</p>
% if object.company_id.street:
${object.company_id.street}
% endif
% if object.company_id.street2:
${object.company_id.street2}<br/>
% endif
% if object.company_id.city or object.company_id.zip:
${object.company_id.zip} ${object.company_id.city}<br/>
% endif
% if object.company_id.country_id:
${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) or ''} ${object.company_id.country_id.name or ''}<br/>
% endif
% if object.company_id.phone:
Phone:&nbsp; ${object.company_id.phone}
% endif
% if object.company_id.website:
<div>
Web :&nbsp;<a href="${object.company_id.website}">${object.company_id.website}</a>
</div>
%endif
<div>
<img src=${object.company_id.logo_url}>
</div>
</div>
]]></field>
</record>
<record id="email_template_certificat" model="mail.template">
<field name="name">Payment Received Confirmation - Send By Email</field>
<field name="email_from">${(object.company_id.coop_email_contact or object.user_id.email)|safe}</field>
<field name="subject">Payment Received Confirmation</field>
<field name="partner_to">${object.id}</field>
<field name="reply_to">${(object.company_id.coop_email_contact or object.user_id.email)|safe}</field>
<field name="model_id" ref="model_res_partner"/>
<field name="auto_delete" eval="True"/>
<field name="report_template" ref="action_cooperator_report_certificat"/>
<field name="report_name">Certificat ${(object.cooperator_register_number or '')}</field>
<field name="lang">${object.lang}</field>
<field name="easy_my_coop" eval="True"/>
<field name="body_html"><![CDATA[
<div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; ">
<p>Hello ${object.name},</p>
<p>We confirm the reception of you payment. You are now shareholder of our cooperative</p>
<br/>
<p>Find in attachment your ${object.company_id.name} certificate.</p>
<p>Thank you for choosing ${object.company_id.name or 'us'}!</p>
<br/>
<p>Sustainably your,</p>
<p>${object.company_id.name}.</p>
% if object.company_id.street:
${object.company_id.street}
% endif
% if object.company_id.street2:
${object.company_id.street2}<br/>
% endif
% if object.company_id.city or object.company_id.zip:
${object.company_id.zip} ${object.company_id.city}<br/>
% endif
% if object.company_id.country_id:
${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) or ''} ${object.company_id.country_id.name or ''}<br/>
% endif
% if object.company_id.phone:
Phone:&nbsp; ${object.company_id.phone}
% endif
% if object.company_id.website:
<div>
Web :&nbsp;<a href="${object.company_id.website}">${object.company_id.website}</a>
</div>
%endif
<div>
<img src=${object.company_id.logo_url}>
</div>
</div>
]]></field>
</record>
<record id="email_template_certificat_increase" model="mail.template">
<field name="name">Share Increase - Payment Received Confirmation - Send By Email</field>
<field name="email_from">${(object.company_id.coop_email_contact or object.user_id.email)|safe}</field>
<field name="subject">Payment Received Confirmation</field>
<field name="partner_to">${object.id}</field>
<field name="reply_to">${(object.company_id.coop_email_contact or object.user_id.email)|safe}</field>
<field name="model_id" ref="model_res_partner"/>
<field name="auto_delete" eval="True"/>
<field name="report_template" ref="action_cooperator_report_certificat"/>
<field name="report_name">Certificat ${(object.cooperator_register_number or '')}</field>
<field name="lang">${object.lang}</field>
<field name="easy_my_coop" eval="True"/>
<field name="body_html"><![CDATA[
<div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; ">
<p>Hello ${object.name},</p>
<p>We confirm the reception of you payment for the new share(s) you have taken.</p>
<br/>
<p>Find in attachment your ${object.company_id.name} certificate.</p>
<p>Thank you for trusting ${object.company_id.name or 'us'}!</p>
<br/>
<p>Sustainably your,</p>
<p>${object.company_id.name}.</p>
% if object.company_id.street:
${object.company_id.street}
% endif
% if object.company_id.street2:
${object.company_id.street2}<br/>
% endif
% if object.company_id.city or object.company_id.zip:
${object.company_id.zip} ${object.company_id.city}<br/>
% endif
% if object.company_id.country_id:
${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) or ''} ${object.company_id.country_id.name or ''}<br/>
% endif
% if object.company_id.phone:
Phone:&nbsp; ${object.company_id.phone}
% endif
% if object.company_id.website:
<div>
Web :&nbsp;<a href="${object.company_id.website}">${object.company_id.website}</a>
</div>
%endif
<div>
<img src=${object.company_id.logo_url}>
</div>
</div>
]]></field>
</record>
<record id="email_template_share_transfer" model="mail.template">
<field name="name">Share transfer - Send By Email</field>
<field name="email_from">${(object.company_id.coop_email_contact or object.user_id.email)|safe}</field>
<field name="subject">Share transfert</field>
<field name="partner_to">${object.id}</field>
<field name="reply_to">${(object.company_id.coop_email_contact or object.user_id.email)|safe}</field>
<field name="model_id" ref="model_res_partner"/>
<field name="auto_delete" eval="True"/>
<field name="report_template" ref="action_cooperator_report_certificat"/>
<field name="report_name">Certificat ${(object.cooperator_register_number or '')}</field>
<field name="lang">${object.lang}</field>
<field name="easy_my_coop" eval="True"/>
<field name="body_html"><![CDATA[
<div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; ">
<p>Hello ${object.name},</p>
<p>We confirm you that the shares have been transfered to you. If you was not already cooperator, you are now shareholder of our cooperative</p>
<br/>
<p>Find in attachment your ${object.company_id.name} certificate.</p>
<p>Thank you for choosing ${object.company_id.name or 'us'}!</p>
<br/>
<p>Sustainably your,</p>
<p>${object.company_id.name}.</p>
% if object.company_id.street:
${object.company_id.street}
% endif
% if object.company_id.street2:
${object.company_id.street2}<br/>
% endif
% if object.company_id.city or object.company_id.zip:
${object.company_id.zip} ${object.company_id.city}<br/>
% endif
% if object.company_id.country_id:
${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) or ''} ${object.company_id.country_id.name or ''}<br/>
% endif
% if object.company_id.phone:
Phone:&nbsp; ${object.company_id.phone}
% endif
% if object.company_id.website:
<div>
Web :&nbsp;<a href="${object.company_id.website}">${object.company_id.website}</a>
</div>
%endif
<div>
<img src=${object.company_id.logo_url}>
</div>
</div>
]]></field>
</record>
<record id="email_template_share_update" model="mail.template">
<field name="name">Share update - Send By Email</field>
<field name="email_from">${(object.company_id.coop_email_contact or object.user_id.email)|safe}</field>
<field name="subject">Share update</field>
<field name="partner_to">${object.id}</field>
<field name="reply_to">${(object.company_id.coop_email_contact or object.user_id.email)|safe}</field>
<field name="model_id" ref="model_res_partner"/>
<field name="auto_delete" eval="True"/>
<field name="report_template" ref="action_cooperator_report_certificat"/>
<field name="report_name">Certificat ${(object.cooperator_register_number or '')}</field>
<field name="lang">${object.lang}</field>
<field name="easy_my_coop" eval="True"/>
<field name="body_html"><![CDATA[
<div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; ">
<p>Hello ${object.name},</p>
<p>We confirm you that the adaptation on shares portfolio has been succesfully performed. Your cooperator certificate has been adapted accordingly</p>
<br/>
<p>Find in attachment your ${object.company_id.name} certificate.</p>
<p>Thank you for choosing ${object.company_id.name or 'us'}!</p>
<br/>
<p>Sustainably your,</p>
<p>${object.company_id.name}.</p>
% if object.company_id.street:
${object.company_id.street}
% endif
% if object.company_id.street2:
${object.company_id.street2}<br/>
% endif
% if object.company_id.city or object.company_id.zip:
${object.company_id.zip} ${object.company_id.city}<br/>
% endif
% if object.company_id.country_id:
${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) or ''} ${object.company_id.country_id.name or ''}<br/>
% endif
% if object.company_id.phone:
Phone:&nbsp; ${object.company_id.phone}
% endif
% if object.company_id.website:
<div>
Web :&nbsp;<a href="${object.company_id.website}">${object.company_id.website}</a>
</div>
%endif
<div>
<img src=${object.company_id.logo_url}>
</div>
</div>
]]></field>
</record>
</data>
</odoo>
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- Mail template are declared in a NOUPDATE block
so users can freely customize/delete them -->
<data noupdate="1">
<!--Request to release capital Email template -->
<record id="email_template_release_capital" model="mail.template">
<field name="name">Request to Release Capital - Send by Email</field>
<field name="email_from">${(object.company_id.coop_email_contact or object.user_id.email)|safe}</field>
<field name="subject">${object.company_id.name} Request to Release Capital (Ref ${object.number or 'n/a'})</field>
<field name="partner_to">${object.partner_id.id}</field>
<field name="reply_to">${(object.company_id.coop_email_contact or object.user_id.email)|safe}</field>
<field name="model_id" ref="account.model_account_invoice"/>
<field name="auto_delete" eval="True"/>
<field name="report_template" ref="action_cooperator_invoices"/>
<field name="report_name">${(object.number or '').replace('/','_')}_${object.state == 'draft' and 'draft' or ''}</field>
<field name="lang">${object.partner_id.lang}</field>
<field name="easy_my_coop" eval="True"/>
<field name="body_html"><![CDATA[
<div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; ">
<p>Hello ${object.partner_id.name},</p>
<p>You will find in attachment all the necessary information for the payment. We kindly remind you that your subscription will be effective only once we received the payment.</p>
<p>Do not forget to add the structured communication to the payment.</p>
<p>Sustainably your,</p>
<p>${object.company_id.name}.</p>
% if object.company_id.street:
${object.company_id.street}
% endif
% if object.company_id.street2:
${object.company_id.street2}<br/>
% endif
% if object.company_id.city or object.company_id.zip:
${object.company_id.zip} ${object.company_id.city}<br/>
% endif
% if object.company_id.country_id:
${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) or ''} ${object.company_id.country_id.name or ''}<br/>
% endif
% if object.company_id.phone:
Phone:&nbsp; ${object.company_id.phone}
% endif
% if object.company_id.website:
<div>
Web :&nbsp;<a href="${object.company_id.website}">${object.company_id.website}</a>
</div>
%endif
<div>
<img src=${object.company_id.logo_url}>
</div>
</div>
]]></field>
</record>
<record id="email_template_confirmation" model="mail.template">
<field name="name">Confirmation Email</field>
<field name="email_from">${(object.company_id.coop_email_contact or object.user_id.email)|safe}</field>
<field name="subject">Subscription request confirmation</field>
<field name="email_to">${object.email}</field>
<field name="reply_to">${(object.company_id.coop_email_contact or object.user_id.email)|safe}</field>
<field name="model_id" ref="model_subscription_request"/>
<field name="auto_delete" eval="True"/>
<field name="lang">${object.lang}</field>
<field name="easy_my_coop" eval="True"/>
<field name="body_html"><![CDATA[
<div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; ">
<p>Hello ${object.name},</p>
<p>Your request will be soon processed by our team. If all the provided info are correct you will soon receive the payment information in another email</p>
<br/>
<p>If you have any question, do not hesitate to contact us.</p>
<br/>
<p>Sustainably your,</p>
<p>${object.company_id.name}.</p>
% if object.company_id.street:
${object.company_id.street}
% endif
% if object.company_id.street2:
${object.company_id.street2}<br/>
% endif
% if object.company_id.city or object.company_id.zip:
${object.company_id.zip} ${object.company_id.city}<br/>
% endif
% if object.company_id.country_id:
${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) or ''} ${object.company_id.country_id.name or ''}<br/>
% endif
% if object.company_id.phone:
Phone:&nbsp; ${object.company_id.phone}
% endif
% if object.company_id.website:
<div>
Web :&nbsp;<a href="${object.company_id.website}">${object.company_id.website}</a>
</div>
%endif
<div>
<img src=${object.company_id.logo_url}>
</div>
</div>
]]></field>
</record>
<record id="email_template_waiting_list" model="mail.template">
<field name="name">Waiting List Email</field>
<field name="email_from">${(object.company_id.coop_email_contact or object.user_id.email)|safe}</field>
<field name="subject">Subscription request added on waiting list. </field>
<field name="email_to">${object.email}</field>
<field name="reply_to">${(object.company_id.coop_email_contact or object.user_id.email)|safe}</field>
<field name="model_id" ref="model_subscription_request"/>
<field name="auto_delete" eval="True"/>
<field name="lang">${object.lang}</field>
<field name="easy_my_coop" eval="True"/>
<field name="body_html"><![CDATA[
<div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; ">
<p>Hello ${object.name},</p>
<p>Thank you for your subscription request. There are currently no project to raise funds for, thus we added it on waiting list.
We will contact you as soon as the subscription requests are re-opened.
</p>
<br/>
<p>If you have any question, do not hesitate to contact us.</p>
<br/>
<p>Sustainably yours,</p>
<p>${object.company_id.name}.</p>
% if object.company_id.street:
${object.company_id.street}
% endif
% if object.company_id.street2:
${object.company_id.street2}<br/>
% endif
% if object.company_id.city or object.company_id.zip:
${object.company_id.zip} ${object.company_id.city}<br/>
% endif
% if object.company_id.country_id:
${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) or ''} ${object.company_id.country_id.name or ''}<br/>
% endif
% if object.company_id.phone:
Phone:&nbsp; ${object.company_id.phone}
% endif
% if object.company_id.website:
<div>
Web :&nbsp;<a href="${object.company_id.website}">${object.company_id.website}</a>
</div>
%endif
<div>
<img src=${object.company_id.logo_url}>
</div>
</div>
]]></field>
</record>
<record id="email_template_confirmation_company" model="mail.template">
<field name="name">Company Confirmation Email</field>
<field name="email_from">${(object.company_id.coop_email_contact or object.user_id.email)|safe}</field>
<field name="subject">Subscription request confirmation</field>
<field name="email_to">${object.email},${object.company_email}</field>
<field name="reply_to">${(object.company_id.coop_email_contact or object.user_id.email)|safe}</field>
<field name="model_id" ref="model_subscription_request"/>
<field name="auto_delete" eval="True"/>
<field name="lang">${object.lang}</field>
<field name="easy_my_coop" eval="True"/>
<field name="body_html"><![CDATA[
<div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; ">
<p>Hello ${object.name},</p>
<p>We have received your subscription request for ${object.company_id.name}. Thank you for your support.</p>
<p>Your request will be soon processed by our team "gestion et participation des membres". If all the provided info are correct you will soon receive the payment information in another email</p>
<br/>
<p>If you have any question, do not hesitate to contact us.</p>
<br/>
<p>Sustainably your,</p>
<p>${object.company_id.name}.</p>
% if object.company_id.street:
${object.company_id.street}
% endif
% if object.company_id.street2:
${object.company_id.street2}<br/>
% endif
% if object.company_id.city or object.company_id.zip:
${object.company_id.zip} ${object.company_id.city}<br/>
% endif
% if object.company_id.country_id:
${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) or ''} ${object.company_id.country_id.name or ''}<br/>
% endif
% if object.company_id.phone:
Phone:&nbsp; ${object.company_id.phone}
% endif
% if object.company_id.website:
<div>
Web :&nbsp;<a href="${object.company_id.website}">${object.company_id.website}</a>
</div>
%endif
<div>
<img src=${object.company_id.logo_url}>
</div>
</div>
]]></field>
</record>
<record id="email_template_certificat" model="mail.template">
<field name="name">Payment Received Confirmation - Send By Email</field>
<field name="email_from">${(object.company_id.coop_email_contact or object.user_id.email)|safe}</field>
<field name="subject">Payment Received Confirmation</field>
<field name="partner_to">${object.id}</field>
<field name="reply_to">${(object.company_id.coop_email_contact or object.user_id.email)|safe}</field>
<field name="model_id" ref="model_res_partner"/>
<field name="auto_delete" eval="True"/>
<field name="report_template" ref="action_cooperator_report_certificat"/>
<field name="report_name">Certificat ${(object.cooperator_register_number or '')}</field>
<field name="lang">${object.lang}</field>
<field name="easy_my_coop" eval="True"/>
<field name="body_html"><![CDATA[
<div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; ">
<p>Hello ${object.name},</p>
<p>We confirm the reception of you payment. You are now shareholder of our cooperative</p>
<br/>
<p>Find in attachment your ${object.company_id.name} certificate.</p>
<p>Thank you for choosing ${object.company_id.name or 'us'}!</p>
<br/>
<p>Sustainably your,</p>
<p>${object.company_id.name}.</p>
% if object.company_id.street:
${object.company_id.street}
% endif
% if object.company_id.street2:
${object.company_id.street2}<br/>
% endif
% if object.company_id.city or object.company_id.zip:
${object.company_id.zip} ${object.company_id.city}<br/>
% endif
% if object.company_id.country_id:
${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) or ''} ${object.company_id.country_id.name or ''}<br/>
% endif
% if object.company_id.phone:
Phone:&nbsp; ${object.company_id.phone}
% endif
% if object.company_id.website:
<div>
Web :&nbsp;<a href="${object.company_id.website}">${object.company_id.website}</a>
</div>
%endif
<div>
<img src=${object.company_id.logo_url}>
</div>
</div>
]]></field>
</record>
<record id="email_template_certificat_increase" model="mail.template">
<field name="name">Share Increase - Payment Received Confirmation - Send By Email</field>
<field name="email_from">${(object.company_id.coop_email_contact or object.user_id.email)|safe}</field>
<field name="subject">Payment Received Confirmation</field>
<field name="partner_to">${object.id}</field>
<field name="reply_to">${(object.company_id.coop_email_contact or object.user_id.email)|safe}</field>
<field name="model_id" ref="model_res_partner"/>
<field name="auto_delete" eval="True"/>
<field name="report_template" ref="action_cooperator_report_certificat"/>
<field name="report_name">Certificat ${(object.cooperator_register_number or '')}</field>
<field name="lang">${object.lang}</field>
<field name="easy_my_coop" eval="True"/>
<field name="body_html"><![CDATA[
<div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; ">
<p>Hello ${object.name},</p>
<p>We confirm the reception of you payment for the new share(s) you have taken.</p>
<br/>
<p>Find in attachment your ${object.company_id.name} certificate.</p>
<p>Thank you for trusting ${object.company_id.name or 'us'}!</p>
<br/>
<p>Sustainably your,</p>
<p>${object.company_id.name}.</p>
% if object.company_id.street:
${object.company_id.street}
% endif
% if object.company_id.street2:
${object.company_id.street2}<br/>
% endif
% if object.company_id.city or object.company_id.zip:
${object.company_id.zip} ${object.company_id.city}<br/>
% endif
% if object.company_id.country_id:
${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) or ''} ${object.company_id.country_id.name or ''}<br/>
% endif
% if object.company_id.phone:
Phone:&nbsp; ${object.company_id.phone}
% endif
% if object.company_id.website:
<div>
Web :&nbsp;<a href="${object.company_id.website}">${object.company_id.website}</a>
</div>
%endif
<div>
<img src=${object.company_id.logo_url}>
</div>
</div>
]]></field>
</record>
<record id="email_template_share_transfer" model="mail.template">
<field name="name">Share transfer - Send By Email</field>
<field name="email_from">${(object.company_id.coop_email_contact or object.user_id.email)|safe}</field>
<field name="subject">Share transfert</field>
<field name="partner_to">${object.id}</field>
<field name="reply_to">${(object.company_id.coop_email_contact or object.user_id.email)|safe}</field>
<field name="model_id" ref="model_res_partner"/>
<field name="auto_delete" eval="True"/>
<field name="report_template" ref="action_cooperator_report_certificat"/>
<field name="report_name">Certificat ${(object.cooperator_register_number or '')}</field>
<field name="lang">${object.lang}</field>
<field name="easy_my_coop" eval="True"/>
<field name="body_html"><![CDATA[
<div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; ">
<p>Hello ${object.name},</p>
<p>We confirm you that the shares have been transfered to you. If you was not already cooperator, you are now shareholder of our cooperative</p>
<br/>
<p>Find in attachment your ${object.company_id.name} certificate.</p>
<p>Thank you for choosing ${object.company_id.name or 'us'}!</p>
<br/>
<p>Sustainably your,</p>
<p>${object.company_id.name}.</p>
% if object.company_id.street:
${object.company_id.street}
% endif
% if object.company_id.street2:
${object.company_id.street2}<br/>
% endif
% if object.company_id.city or object.company_id.zip:
${object.company_id.zip} ${object.company_id.city}<br/>
% endif
% if object.company_id.country_id:
${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) or ''} ${object.company_id.country_id.name or ''}<br/>
% endif
% if object.company_id.phone:
Phone:&nbsp; ${object.company_id.phone}
% endif
% if object.company_id.website:
<div>
Web :&nbsp;<a href="${object.company_id.website}">${object.company_id.website}</a>
</div>
%endif
<div>
<img src=${object.company_id.logo_url}>
</div>
</div>
]]></field>
</record>
<record id="email_template_share_update" model="mail.template">
<field name="name">Share update - Send By Email</field>
<field name="email_from">${(object.company_id.coop_email_contact or object.user_id.email)|safe}</field>
<field name="subject">Share update</field>
<field name="partner_to">${object.id}</field>
<field name="reply_to">${(object.company_id.coop_email_contact or object.user_id.email)|safe}</field>
<field name="model_id" ref="model_res_partner"/>
<field name="auto_delete" eval="True"/>
<field name="report_template" ref="action_cooperator_report_certificat"/>
<field name="report_name">Certificat ${(object.cooperator_register_number or '')}</field>
<field name="lang">${object.lang}</field>
<field name="easy_my_coop" eval="True"/>
<field name="body_html"><![CDATA[
<div style="font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; ">
<p>Hello ${object.name},</p>
<p>We confirm you that the adaptation on shares portfolio has been succesfully performed. Your cooperator certificate has been adapted accordingly</p>
<br/>
<p>Find in attachment your ${object.company_id.name} certificate.</p>
<p>Thank you for choosing ${object.company_id.name or 'us'}!</p>
<br/>
<p>Sustainably your,</p>
<p>${object.company_id.name}.</p>
% if object.company_id.street:
${object.company_id.street}
% endif
% if object.company_id.street2:
${object.company_id.street2}<br/>
% endif
% if object.company_id.city or object.company_id.zip:
${object.company_id.zip} ${object.company_id.city}<br/>
% endif
% if object.company_id.country_id:
${object.company_id.state_id and ('%s, ' % object.company_id.state_id.name) or ''} ${object.company_id.country_id.name or ''}<br/>
% endif
% if object.company_id.phone:
Phone:&nbsp; ${object.company_id.phone}
% endif
% if object.company_id.website:
<div>
Web :&nbsp;<a href="${object.company_id.website}">${object.company_id.website}</a>
</div>
%endif
<div>
<img src=${object.company_id.logo_url}>
</div>
</div>
]]></field>
</record>
</data>
</odoo>

2
easy_my_coop/demo/coop.xml

@ -68,7 +68,7 @@
<field name="zip">5101</field>
<field name="country_id" ref="base.be"/>
</record>
<record id="easy_my_coop.account_cooperator_demo" model="account.account">
<field name="code">416101</field>
<field name="name">Cooperators</field>

2
easy_my_coop/models/mail_template.py

@ -1,4 +1,4 @@
from odoo import models, fields
from odoo import fields, models
class MailTemplate(models.Model):

22
easy_my_coop/models/operation_request.py

@ -376,10 +376,10 @@ class OperationRequest(models.Model):
partner = self.subscription_request.create_coop_partner()
# get cooperator number
sub_reg_num = int(sequence_id.next_by_id())
partner_vals.update(sub_request.get_eater_vals(
partner,
self.share_product_id))
partner_vals['cooperator_register_number'] = sub_reg_num
partner_vals.update(
sub_request.get_eater_vals(partner, self.share_product_id)
)
partner_vals["cooperator_register_number"] = sub_reg_num
partner.write(partner_vals)
self.partner_id_to = partner
else:
@ -387,11 +387,15 @@ class OperationRequest(models.Model):
if not self.partner_id_to.member:
if self.partner_id_to.cooperator_register_number == 0:
sub_reg_num = int(sequence_id.next_by_id())
partner_vals['cooperator_register_number'] = sub_reg_num
partner_vals.update(sub_request.get_eater_vals(
self.partner_id_to,
self.share_product_id))
partner_vals['old_member'] = False
partner_vals[
"cooperator_register_number"
] = sub_reg_num
partner_vals.update(
sub_request.get_eater_vals(
self.partner_id_to, self.share_product_id
)
)
partner_vals["old_member"] = False
self.partner_id_to.write(partner_vals)
# remove the parts to the giver
self.hand_share_over(

1
easy_my_coop/readme/CONTRIBUTORS.rst

@ -1,2 +1 @@
* Coop IT Easy SCRLfs

92
easy_my_coop/report/cooperator_register_G001.xml

@ -4,39 +4,39 @@
<t t-set="data_report_margin_top" t-value="5"/>
<t t-set="data_report_header_spacing" t-value="0"/>
<t t-set="data_report_dpi" t-value="110"/>
<!--<t t-call="theme_light.report_layout_002">-->
<t t-set="data_report_dpi" t-value="110"/>
<!--<t t-call="theme_light.report_layout_002">-->
<div class="page">
<head>
<!--<link href="/theme_light/static/css/invoice_G002.css" rel="stylesheet"/>-->
</head>
<!--<t t-call="theme_light.list_header_G002"/>-->
<br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/>
<table class="title_table">
<tr>
<tr>
<td>
<span class="color_text" t-esc="time.strftime('%Y-%m-%d')"/>
</td>
<td>
<div class="title_doc" style="font-size:16px">
<span>COOPERATOR REGISTER</span>
</div>
<span>COOPERATOR REGISTER</span>
</div>
</td>
</tr>
</tr>
</table>
<br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/>
<table class="list_line_table_head" width="100%" >
<t t-set="total_quantity" t-value="0"/>
<table class="list_line_table_head" width="100%" >
<t t-set="total_quantity" t-value="0"/>
<t t-set="total_amount" t-value="0"/>
<br />
<tr>
<th width="15%" style="text-align: center;" >Number</th>
@ -46,76 +46,76 @@
<th width="10%" style="text-align: center;" >Quantity</th>
<th width="15%" style="text-align: center;" >Total</th>
</tr>
<t t-set="nb_ligne" t-value="0"/>
<t t-set="nb_ligne" t-value="0"/>
<t t-foreach="docs" t-as="partner">
<t t-set="new_partner" t-value="0"/>
<t t-foreach="partner.share_ids" t-as="line">
<t t-set="nb_ligne" t-value="nb_ligne+1"/>
<tr height="40px">
<div t-if="(nb_ligne%2)==1" >
<div t-if="(new_partner)==0">
<tr height="40px">
<div t-if="(nb_ligne%2)==1" >
<div t-if="(new_partner)==0">
<td class="lgn_impair" style="text-align:left;text-indent:20px;">
<span t-field="partner.cooperator_register_number" ></span>
</td>
<td style="text-align:left">
<span t-field="partner.name" ></span>
<span t-field="partner.name" ></span>
</td>
<td style="text-align:left">
<span t-field="partner.email" ></span>
<td style="text-align:left">
<span t-field="partner.email" ></span>
</td>
</div>
<div t-if="(new_partner)!=0">
<div t-if="(new_partner)!=0">
<td class="lgn_impair" style="text-align:left;text-indent:20px;" colspan="3">
</td>
</div>
<td>
<span t-field="line.effective_date" ></span>
<td>
<span t-field="line.effective_date" ></span>
</td>
<td>
<td>
<span t-field="line.share_number" ></span>
</td>
<td>
<td>
<span t-field="line.total_amount_line"
t-field-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/>
t-field-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/>
</td>
</div>
<div t-if="(nb_ligne%2)==0" >
<div t-if="(new_partner)==0" >
<div t-if="(nb_ligne%2)==0" >
<div t-if="(new_partner)==0" >
<td class="lgn_pair" style="text-align:left;text-indent:20px;background-color:#ffffff">
<span t-field="partner.cooperator_register_number" ></span>
</td>
<td class="lgn_pair" style="background-color:#ffffff;text-align:left">
<span t-field="partner.name" ></span>
<td class="lgn_pair" style="background-color:#ffffff;text-align:left">
<span t-field="partner.name" ></span>
</td>
<td class="lgn_pair" style="background-color:#ffffff;text-align:left">
<span t-field="partner.email" ></span>
<td class="lgn_pair" style="background-color:#ffffff;text-align:left">
<span t-field="partner.email" ></span>
</td>
</div>
<div t-if="(new_partner)!=0" style="background-color:#ffffff">
<div t-if="(new_partner)!=0" style="background-color:#ffffff">
<td class="lgn_pair" style="text-align:left;text-indent:20px;background-color:#ffffff" colspan="3">
</td>
</div>
<td class="lgn_pair" style="background-color:#ffffff">
<span t-field="line.effective_date"> </span>
<td class="lgn_pair" style="background-color:#ffffff">
<span t-field="line.effective_date"> </span>
</td>
<td class="lgn_pair" style="background-color:#ffffff">
<span t-field="line.share_number" ></span>
<td class="lgn_pair" style="background-color:#ffffff">
<span t-field="line.share_number" ></span>
</td>
<td class="lgn_pair" style="background-color:#ffffff">
<td class="lgn_pair" style="background-color:#ffffff">
<span t-field="line.total_amount_line"
t-field-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/>
t-field-options='{"widget": "monetary", "display_currency": "res_company.currency_id"}'/>
</td>
</div>
</tr>
<t t-set="new_partner" t-value="new_partner+1"/>
</t>
</t>
</table>
</div>
</table>
</div>
</t>
<!--</t>-->
<!--</t>-->
</template>
</odoo>

82
easy_my_coop/report/cooperator_subscription_G001.xml

@ -5,102 +5,102 @@
<t t-set="data_report_margin_top" t-value="5"/>
<t t-set="data_report_header_spacing" t-value="0"/>
<t t-set="data_report_dpi" t-value="110"/>
<!--<t t-call="theme_light.report_layout_002">-->
<t t-set="data_report_dpi" t-value="110"/>
<!--<t t-call="theme_light.report_layout_002">-->
<div class="page">
<head>
<!--<link href="/theme_light/static/css/invoice_G002.css" rel="stylesheet"/>-->
</head>
<!--<t t-call="theme_light.list_header_G002"/>-->
<br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/>
<table class="title_table">
<tr>
<tr>
<td>
<span class="color_text" t-esc="time.strftime('%Y-%m-%d')"/>
</td>
<td>
<div class="title_doc" style="font-size:16px">
<span>SUBSCRIPTION REGISTER</span>
</div>
<span>SUBSCRIPTION REGISTER</span>
</div>
</td>
</tr>
</tr>
</table>
<br/><br/><br/><br/><br/>
<table class="list_line_table_head" width="100%" >
<br/><br/><br/><br/><br/>
<table class="list_line_table_head" width="100%" >
<br />
<tr>
<th width="15%" style="text-align: center;" >Operation number</th>
<th width="30%" style="text-align: left;text-indent:15px" >Cooperator</th>
<th width="15%" style="text-align: center;" >Subscription date</th>
<th width="25%" style="text-align: center;" >Operation type</th>
<th width="15%" style="text-align: center;" >Share number</th>
<th width="15%" style="text-align: center;" >Share number</th>
</tr>
<t t-set="nb_ligne" t-value="0"/>
<p t-foreach="docs" t-as="transaction">
<t t-set="nb_ligne" t-value="nb_ligne+1"/>
<tr height="40px">
<div t-if="(nb_ligne%2)==1" >
<tr height="40px">
<div t-if="(nb_ligne%2)==1" >
<td class="lgn_impair" style="text-align:left;text-indent:10px">
<span t-field="transaction.register_number_operation" ></span>
</td>
<td style="text-align:left;text-indent:15px">
<span t-field="transaction.partner_id.name" ></span>
<span t-field="transaction.partner_id.name" ></span>
</td>
<td style="text-align:center">
<span t-field="transaction.date" ></span>
<td style="text-align:center">
<span t-field="transaction.date" ></span>
</td>
<td style="text-align:center">
<span t-field="transaction.type"/>
<td style="text-align:center">
<span t-field="transaction.type"/>
</td>
<td style="text-align:center">
<span t-field="transaction.quantity" ></span>
<td style="text-align:center">
<span t-field="transaction.quantity" ></span>
</td>
</div>
<div t-if="(nb_ligne%2)==0" >
<div t-if="(nb_ligne%2)==0" >
<td class="lgn_pair" style="text-align:left;text-indent:10px;background-color:#ffffff">
<span t-field="transaction.register_number_operation" ></span>
</td>
<td class="lgn_pair" style="text-align:left;text-indent:15px;background-color:#ffffff">
<span t-field="transaction.partner_id.name" ></span>
<span t-field="transaction.partner_id.name" ></span>
</td>
<td style="text-align:center;background-color:#ffffff">
<span t-field="transaction.date" ></span>
<td style="text-align:center;background-color:#ffffff">
<span t-field="transaction.date" ></span>
</td>
<td style="text-align:center;background-color:#ffffff">
<span t-field="transaction.type"/>
<td style="text-align:center;background-color:#ffffff">
<span t-field="transaction.type"/>
</td>
<td style="text-align:center;background-color:#ffffff">
<span t-field="transaction.quantity" ></span>
<td style="text-align:center;background-color:#ffffff">
<span t-field="transaction.quantity" ></span>
</td>
</div>
</div>
</tr>
</p>
</table>
<table width="100%" >
</table>
<table width="100%" >
<br />
<tr height="40px">
<th width="15%"></th>
<th width="30%"></th>
<th width="15%"></th>
<th class="total_table color_text" width="25%"> TOTAL : </th>
<th class="total_table" style="text-align:center" width="15%">
<span t-esc="sum(t.quantity for t in docs)"/>
</th>
</tr>
</table>
</div>
</table>
</div>
</t>
<!--</t>-->
<!--</t>-->
</template>
</odoo>

38
easy_my_coop/report/easy_my_coop_report.xml

@ -2,8 +2,8 @@
<odoo>
<data noupdate="1">
<report
<report
id="action_cooperator_invoices"
model="account.invoice"
string="Capital release request"
@ -14,36 +14,36 @@
/>
<report
id="action_cooperator_subscription_report"
model="subscription.register"
id="action_cooperator_subscription_report"
model="subscription.register"
string="Subscription Register Report"
report_type="qweb-pdf"
name="easy_my_coop.cooperator_subscription_G001"
file="easy_my_coop.cooperator_subscription_G001.xml"
name="easy_my_coop.cooperator_subscription_G001"
file="easy_my_coop.cooperator_subscription_G001.xml"
multi="True"
menu="True"
menu="True"
/>
<report
id="action_cooperator_report_certificat"
model="res.partner"
id="action_cooperator_report_certificat"
model="res.partner"
string="Cooperator certificat"
report_type="qweb-pdf"
name="easy_my_coop.cooperator_certificat_G001"
file="easy_my_coop.cooperator_certificat_G001.xml"
name="easy_my_coop.cooperator_certificat_G001"
file="easy_my_coop.cooperator_certificat_G001.xml"
multi="True"
menu="True"
menu="True"
/>
<report
id="action_report_cooperator_register"
model="res.partner"
id="action_report_cooperator_register"
model="res.partner"
string="Cooperator register"
report_type="qweb-pdf"
name="easy_my_coop.cooperator_register_G001"
file="easy_my_coop.cooperator_register_G001.xml"
name="easy_my_coop.cooperator_register_G001"
file="easy_my_coop.cooperator_register_G001.xml"
multi="True"
menu="True"
menu="True"
/>
</data>
</odoo>

32
easy_my_coop/security/ir.model.access.csv

@ -1,16 +1,16 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_product_product_easy_my_coop_user,access_product_product_easy_my_coop_user,product.model_product_product,group_easy_my_coop_user,1,1,0,0
access_product_product_easy_my_coop_manager,access_product_product_easy_my_coop_manager,product.model_product_product,group_easy_my_coop_manager,1,1,1,1
access_product_template_easy_my_coop_user,access_product_template_easy_my_coop_user,product.model_product_template,group_easy_my_coop_user,1,1,0,0
access_product_template_easy_my_coop_manager,access_product_template_easy_my_coop_manager,product.model_product_template,group_easy_my_coop_manager,1,1,1,1
access_subscription_request_user,access_subscription_request_user.subscription,model_subscription_request,base.group_user,1,0,0,0
access_subscription_request_easy_my_coop_user,access_subscription_request_easy_my_coop_user,model_subscription_request,group_easy_my_coop_user,1,1,1,0
access_subscription_request_easy_my_coop_manager,access_subscription_request_easy_my_coop_manager,model_subscription_request,group_easy_my_coop_manager,1,1,1,1
access_share_line_user,access_share_line_user,model_share_line,base.group_user,1,0,0,0
access_share_line_easy_my_coop_user,access_share_line_easy_my_coop_user,model_share_line,group_easy_my_coop_user,1,1,1,0
access_share_line_easy_my_coop_manager,access_share_line_easy_my_coop_manager,model_share_line,group_easy_my_coop_manager,1,1,1,1
access_res_partner_easy_my_coop_user,access_res_partner_easy_my_coop_user,base.model_res_partner,group_easy_my_coop_user,1,1,1,0
access_account_invoice_easy_my_coop_user,access_account_invoice_easy_my_coop_user,model_account_invoice,group_easy_my_coop_user,1,1,1,0
access_subscription_register_easy_my_coop_user,access_subscription_register_easy_my_coop_user,model_subscription_register,group_easy_my_coop_user,1,1,1,0
access_operation_request_easy_my_coop_user,access_operation_request_easy_my_coop_user,model_operation_request,group_easy_my_coop_user,1,1,1,0
access_operation_request_easy_my_coop_manager,access_operation_request_easy_my_coop_manager,model_operation_request,group_easy_my_coop_manager,1,1,1,1
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_product_product_easy_my_coop_user,access_product_product_easy_my_coop_user,product.model_product_product,group_easy_my_coop_user,1,1,0,0
access_product_product_easy_my_coop_manager,access_product_product_easy_my_coop_manager,product.model_product_product,group_easy_my_coop_manager,1,1,1,1
access_product_template_easy_my_coop_user,access_product_template_easy_my_coop_user,product.model_product_template,group_easy_my_coop_user,1,1,0,0
access_product_template_easy_my_coop_manager,access_product_template_easy_my_coop_manager,product.model_product_template,group_easy_my_coop_manager,1,1,1,1
access_subscription_request_user,access_subscription_request_user.subscription,model_subscription_request,base.group_user,1,0,0,0
access_subscription_request_easy_my_coop_user,access_subscription_request_easy_my_coop_user,model_subscription_request,group_easy_my_coop_user,1,1,1,0
access_subscription_request_easy_my_coop_manager,access_subscription_request_easy_my_coop_manager,model_subscription_request,group_easy_my_coop_manager,1,1,1,1
access_share_line_user,access_share_line_user,model_share_line,base.group_user,1,0,0,0
access_share_line_easy_my_coop_user,access_share_line_easy_my_coop_user,model_share_line,group_easy_my_coop_user,1,1,1,0
access_share_line_easy_my_coop_manager,access_share_line_easy_my_coop_manager,model_share_line,group_easy_my_coop_manager,1,1,1,1
access_res_partner_easy_my_coop_user,access_res_partner_easy_my_coop_user,base.model_res_partner,group_easy_my_coop_user,1,1,1,0
access_account_invoice_easy_my_coop_user,access_account_invoice_easy_my_coop_user,model_account_invoice,group_easy_my_coop_user,1,1,1,0
access_subscription_register_easy_my_coop_user,access_subscription_register_easy_my_coop_user,model_subscription_register,group_easy_my_coop_user,1,1,1,0
access_operation_request_easy_my_coop_user,access_operation_request_easy_my_coop_user,model_operation_request,group_easy_my_coop_user,1,1,1,0
access_operation_request_easy_my_coop_manager,access_operation_request_easy_my_coop_manager,model_operation_request,group_easy_my_coop_manager,1,1,1,1

54
easy_my_coop/static/src/css/coop_report.css

@ -1,27 +1,27 @@
.border-top-easymy-coop td {
border-top: 1pt solid #e7511e !important;
}
.border-easymy-coop th {
border-bottom: 1pt solid #e7511e !important;
}
.border-top-easymy-coop-cert td {
border-top: 1pt solid #fcc300 !important;
}
.border-easymy-coop-cert th {
border-bottom: 1pt solid #fcc300 !important;
}
.easymy-coop-normal {
font-family:Roboto-Regular;
font-size:12pt;
line-height:16pt;
}
.easymy-coop-info-title {
font-family:Roboto-Bold;
font-size:12pt;
line-height:16pt;
}
.border-top-easymy-coop td {
border-top: 1pt solid #e7511e !important;
}
.border-easymy-coop th {
border-bottom: 1pt solid #e7511e !important;
}
.border-top-easymy-coop-cert td {
border-top: 1pt solid #fcc300 !important;
}
.border-easymy-coop-cert th {
border-bottom: 1pt solid #fcc300 !important;
}
.easymy-coop-normal {
font-family:Roboto-Regular;
font-size:12pt;
line-height:16pt;
}
.easymy-coop-info-title {
font-family:Roboto-Bold;
font-size:12pt;
line-height:16pt;
}

50
easy_my_coop/static/src/js/easy_my_coop.js

@ -1,52 +1,52 @@
odoo.define('easy_my_coop.oe_easymy_coop', function (require) {
$(document).ready(function () {
"use strict";
var ajax = require('web.ajax');
$('.oe_easymy_coop').each(function () {
$(document).ready(function () {
"use strict";
var ajax = require('web.ajax');
$('.oe_easymy_coop').each(function () {
var oe_easymy_coop = this;
$('#share_product_id').change(function () {
var share_product_id = $("#share_product_id").val();
ajax.jsonRpc("/subscription/get_share_product", 'call', {
'share_product_id': share_product_id
'share_product_id': share_product_id,
})
.then(function (data) {
$('#share_price').text(data[share_product_id].list_price);
$('input.js_quantity').val(data[share_product_id].min_qty);
if(data[share_product_id].force_min_qty == true){
$('input.js_quantity').data("min",data[share_product_id].min_qty);
}
$('input.js_quantity').change();
var $share_price = $('#share_price').text()
$('input[name="total_parts"]').val($('input.js_quantity').val()*$share_price);
$('input[name="total_parts"]').change();
$('#share_price').text(data[share_product_id].list_price);
$('input.js_quantity').val(data[share_product_id].min_qty);
if (data[share_product_id].force_min_qty == true) {
$('input.js_quantity').data("min", data[share_product_id].min_qty);
}
$('input.js_quantity').change();
var $share_price = $('#share_price').text();
$('input[name="total_parts"]').val($('input.js_quantity').val()*$share_price);
$('input[name="total_parts"]').change();
});
});
$(oe_easymy_coop).on('click', 'a.js_add_cart_json', function (ev) {
var $share_price = $('#share_price').text()
var $share_price = $('#share_price').text();
var $link = $(ev.currentTarget);
var $input = $link.parent().parent().find("input");
var $input_total = $("div").find(".total");
var min = parseFloat($input.data("min") || 1);
var amount_max = parseFloat($('input[name="total_parts"]').data("max"));
var quantity = ($link.has(".fa-minus").length ? -1 : 1) + parseFloat($input.val(),10);
var quantity = ($link.has(".fa-minus").length ? -1 : 1) + parseFloat($input.val(), 10);
var total_part = quantity * $share_price;
var quantity_max = amount_max / $share_price;
$input.val(quantity > min ? (total_part <= amount_max ? quantity : quantity_max) : min);
$input.val(quantity > min ? total_part <= amount_max ? quantity : quantity_max : min);
$input.change();
$('input[name="total_parts"]').val($input.val()*$share_price);
return false;
});
$(oe_easymy_coop).on('focusout', 'input.js_quantity', function (ev) {
$('a.js_add_cart_json').trigger('click');
});
$('#share_product_id').trigger('change');
$("[name='birthdate']").inputmask();
});
});
});
});
});

2720
easy_my_coop/static/src/js/jquery.inputmask.bundle.js
File diff suppressed because it is too large
View File

146
easy_my_coop/views/account_invoice_view.xml

@ -1,73 +1,73 @@
<odoo>
<record id="invoice_form" model="ir.ui.view">
<field name="name">account.invoice.form</field>
<field name="model">account.invoice</field>
<field name="inherit_id" ref="account.invoice_form" />
<field name="arch" type="xml">
<field name="move_id" position="after">
<field name="subscription_request" />
</field>
</field>
</record>
<record id="action_invoice_tree_coop" model="ir.actions.act_window">
<field name="name">Cooperator Invoices</field>
<field name="res_model">account.invoice</field>
<field name="view_type">form</field>
<field name="view_mode">tree,kanban,form,calendar,pivot,graph,activity</field>
<field eval="False" name="view_id"/>
<field name="domain">[('type','in',('out_invoice', 'out_refund')),('release_capital_request','=',True)]</field>
<field name="context">{'default_type':'out_invoice', 'type':'out_invoice', 'journal_type': 'sale'}</field>
<field name="search_view_id" ref="account.view_account_invoice_filter"/>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Create a customer invoice
</p><p>
Create invoices, register payments and keep track of the discussions with your customers.
</p>
</field>
</record>
<record id="action_invoice_tree1_view1" model="ir.actions.act_window.view">
<field eval="1" name="sequence"/>
<field name="view_mode">tree</field>
<field name="view_id" ref="account.invoice_tree"/>
<field name="act_window_id" ref="action_invoice_tree_coop"/>
</record>
<record id="action_invoice_tree1_view2" model="ir.actions.act_window.view">
<field eval="2" name="sequence"/>
<field name="view_mode">form</field>
<field name="view_id" ref="account.invoice_form"/>
<field name="act_window_id" ref="action_invoice_tree_coop"/>
</record>
<record id="account.action_invoice_tree1" model="ir.actions.act_window">
<field name="name">Customer Invoices</field>
<field name="res_model">account.invoice</field>
<field name="view_type">form</field>
<field name="view_mode">tree,kanban,form,calendar,pivot,graph,activity</field>
<field eval="False" name="view_id"/>
<field name="domain">[('type','in',('out_invoice', 'out_refund')),('release_capital_request','=',False)]</field>
<field name="context">{'default_type':'out_invoice', 'type':'out_invoice', 'journal_type': 'sale'}</field>
<field name="search_view_id" ref="account.view_account_invoice_filter"/>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Create a customer invoice
</p><p>
Create invoices, register payments and keep track of the discussions with your customers.
</p>
</field>
</record>
<record id="account.action_invoice_refund_out_tree" model="ir.actions.act_window">
<field name="name">Invoices</field>
<field name="res_model">account.invoice</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form,kanban,calendar,graph,pivot</field>
<field name="view_id" ref="account.invoice_tree"/>
<field name="domain">[('type','in', ['out_invoice', 'out_refund']), ('state', 'not in', ['draft', 'cancel']),('release_capital_request','=',False)]</field>
<field name="context">{'default_type':'out_invoice', 'type':'out_invoice', 'journal_type': 'sale'}</field>
<field name="search_view_id" ref="account.view_account_invoice_filter"/>
</record>
</odoo>
<odoo>
<record id="invoice_form" model="ir.ui.view">
<field name="name">account.invoice.form</field>
<field name="model">account.invoice</field>
<field name="inherit_id" ref="account.invoice_form" />
<field name="arch" type="xml">
<field name="move_id" position="after">
<field name="subscription_request" />
</field>
</field>
</record>
<record id="action_invoice_tree_coop" model="ir.actions.act_window">
<field name="name">Cooperator Invoices</field>
<field name="res_model">account.invoice</field>
<field name="view_type">form</field>
<field name="view_mode">tree,kanban,form,calendar,pivot,graph,activity</field>
<field eval="False" name="view_id"/>
<field name="domain">[('type','in',('out_invoice', 'out_refund')),('release_capital_request','=',True)]</field>
<field name="context">{'default_type':'out_invoice', 'type':'out_invoice', 'journal_type': 'sale'}</field>
<field name="search_view_id" ref="account.view_account_invoice_filter"/>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Create a customer invoice
</p><p>
Create invoices, register payments and keep track of the discussions with your customers.
</p>
</field>
</record>
<record id="action_invoice_tree1_view1" model="ir.actions.act_window.view">
<field eval="1" name="sequence"/>
<field name="view_mode">tree</field>
<field name="view_id" ref="account.invoice_tree"/>
<field name="act_window_id" ref="action_invoice_tree_coop"/>
</record>
<record id="action_invoice_tree1_view2" model="ir.actions.act_window.view">
<field eval="2" name="sequence"/>
<field name="view_mode">form</field>
<field name="view_id" ref="account.invoice_form"/>
<field name="act_window_id" ref="action_invoice_tree_coop"/>
</record>
<record id="account.action_invoice_tree1" model="ir.actions.act_window">
<field name="name">Customer Invoices</field>
<field name="res_model">account.invoice</field>
<field name="view_type">form</field>
<field name="view_mode">tree,kanban,form,calendar,pivot,graph,activity</field>
<field eval="False" name="view_id"/>
<field name="domain">[('type','in',('out_invoice', 'out_refund')),('release_capital_request','=',False)]</field>
<field name="context">{'default_type':'out_invoice', 'type':'out_invoice', 'journal_type': 'sale'}</field>
<field name="search_view_id" ref="account.view_account_invoice_filter"/>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Create a customer invoice
</p><p>
Create invoices, register payments and keep track of the discussions with your customers.
</p>
</field>
</record>
<record id="account.action_invoice_refund_out_tree" model="ir.actions.act_window">
<field name="name">Invoices</field>
<field name="res_model">account.invoice</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form,kanban,calendar,graph,pivot</field>
<field name="view_id" ref="account.invoice_tree"/>
<field name="domain">[('type','in', ['out_invoice', 'out_refund']), ('state', 'not in', ['draft', 'cancel']),('release_capital_request','=',False)]</field>
<field name="context">{'default_type':'out_invoice', 'type':'out_invoice', 'journal_type': 'sale'}</field>
<field name="search_view_id" ref="account.view_account_invoice_filter"/>
</record>
</odoo>

52
easy_my_coop/views/account_journal_view.xml

@ -1,26 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="view_account_journal_form_coop" model="ir.ui.view">
<field name="name">account.journal.form</field>
<field name="model">account.journal</field>
<field name="inherit_id" ref="account.view_account_journal_form"/>
<field name="arch" type="xml">
<field name="bank_id" position="after">
<field name="get_cooperator_payment" groups="easy_my_coop.group_easy_my_coop_manager"/>
<field name="get_general_payment"/>
</field>
</field>
</record>
<record id="view_account_bank_journal_form_coop" model="ir.ui.view">
<field name="name">account.bank.journal.form</field>
<field name="model">account.journal</field>
<field name="inherit_id" ref="account.view_account_bank_journal_form"/>
<field name="arch" type="xml">
<field name="currency_id" position="after">
<field name="get_cooperator_payment" groups="easy_my_coop.group_easy_my_coop_manager"/>
<field name="get_general_payment"/>
</field>
</field>
</record>
</odoo>
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="view_account_journal_form_coop" model="ir.ui.view">
<field name="name">account.journal.form</field>
<field name="model">account.journal</field>
<field name="inherit_id" ref="account.view_account_journal_form"/>
<field name="arch" type="xml">
<field name="bank_id" position="after">
<field name="get_cooperator_payment" groups="easy_my_coop.group_easy_my_coop_manager"/>
<field name="get_general_payment"/>
</field>
</field>
</record>
<record id="view_account_bank_journal_form_coop" model="ir.ui.view">
<field name="name">account.bank.journal.form</field>
<field name="model">account.journal</field>
<field name="inherit_id" ref="account.view_account_bank_journal_form"/>
<field name="arch" type="xml">
<field name="currency_id" position="after">
<field name="get_cooperator_payment" groups="easy_my_coop.group_easy_my_coop_manager"/>
<field name="get_general_payment"/>
</field>
</field>
</record>
</odoo>

154
easy_my_coop/views/cooperator_register_view.xml

@ -1,77 +1,77 @@
<odoo>
<record id="subscription_register_tree" model="ir.ui.view">
<field name="name">subscription.register.tree</field>
<field name="model">subscription.register</field>
<field name="arch" type="xml">
<tree string="Subscription Register">
<field name="register_number_operation"/>
<field name="date"/>
<field name="partner_id"/>
<field name="share_short_name"/>
<field name="quantity" sum="Total quantity"/>
<field name="share_unit_price"/>
<field name="total_amount_line" sum="Total amount"/>
<field name="type"/>
</tree>
</field>
</record>
<record id="subscription_register_form" model="ir.ui.view">
<field name="name">subscription.register.form</field>
<field name="model">subscription.register</field>
<field name="arch" type="xml">
<form string="Subscription Register">
<group>
<group>
<field name="register_number_operation"/>
<field name="date"/>
<field name="partner_id"/>
<field name="share_short_name"/>
<field name="quantity"/>
<field name="share_unit_price"/>
<field name="total_amount_line"/>
</group>
<group>
<field name="partner_id_to" attrs="{'invisible':[('type','!=','transfer')]}"/>
<field name="type"/>
<field name="share_to_short_name"/>
<field name="quantity_to"/>
<field name="share_to_unit_price"/>
<field name="user_id" invisible="True"/>
</group>
</group>
</form>
</field>
</record>
<record id="view_subscription_register_filter" model="ir.ui.view">
<field name="name">Subscription Register Search</field>
<field name="model">subscription.register</field>
<field name="arch" type="xml">
<search string="Search Subscription Register">
<field name="partner_id"
filter_domain="[('partner_id','ilike',self)]"/>
<field name="register_number_operation"/>
<separator/>
<filter string="Subscription" name="type_subscription" domain="[('type','=','subscription')]"/>
<filter string="Transfer" name="type_transfer" domain="[('type','=','transfer')]"/>
<filter string="Sell back" name="type_sell_back" domain="[('type','=','sell_back')]"/>
<filter string="Convert" name="type_convert" domain="[('type','=','convert')]"/>
<separator/>
<group expand="0" name="group_by" string="Group By">
<filter name="entry_type" string="Entry type" context="{'group_by' : 'type'}" />
<filter name="subscription_date" string="Subscription Date" context="{'group_by': 'date'}"/>
</group>
</search>
</field>
</record>
<record id="subscription_register_action" model="ir.actions.act_window">
<field name="name">Subscription Register</field>
<field name="res_model">subscription.register</field>
<field name="view_type">form</field>
<field name="view_id" ref="subscription_register_tree"/>
<field name="search_view_id" ref="view_subscription_register_filter"/>
</record>
</odoo>
<odoo>
<record id="subscription_register_tree" model="ir.ui.view">
<field name="name">subscription.register.tree</field>
<field name="model">subscription.register</field>
<field name="arch" type="xml">
<tree string="Subscription Register">
<field name="register_number_operation"/>
<field name="date"/>
<field name="partner_id"/>
<field name="share_short_name"/>
<field name="quantity" sum="Total quantity"/>
<field name="share_unit_price"/>
<field name="total_amount_line" sum="Total amount"/>
<field name="type"/>
</tree>
</field>
</record>
<record id="subscription_register_form" model="ir.ui.view">
<field name="name">subscription.register.form</field>
<field name="model">subscription.register</field>
<field name="arch" type="xml">
<form string="Subscription Register">
<group>
<group>
<field name="register_number_operation"/>
<field name="date"/>
<field name="partner_id"/>
<field name="share_short_name"/>
<field name="quantity"/>
<field name="share_unit_price"/>
<field name="total_amount_line"/>
</group>
<group>
<field name="partner_id_to" attrs="{'invisible':[('type','!=','transfer')]}"/>
<field name="type"/>
<field name="share_to_short_name"/>
<field name="quantity_to"/>
<field name="share_to_unit_price"/>
<field name="user_id" invisible="True"/>
</group>
</group>
</form>
</field>
</record>
<record id="view_subscription_register_filter" model="ir.ui.view">
<field name="name">Subscription Register Search</field>
<field name="model">subscription.register</field>
<field name="arch" type="xml">
<search string="Search Subscription Register">
<field name="partner_id"
filter_domain="[('partner_id','ilike',self)]"/>
<field name="register_number_operation"/>
<separator/>
<filter string="Subscription" name="type_subscription" domain="[('type','=','subscription')]"/>
<filter string="Transfer" name="type_transfer" domain="[('type','=','transfer')]"/>
<filter string="Sell back" name="type_sell_back" domain="[('type','=','sell_back')]"/>
<filter string="Convert" name="type_convert" domain="[('type','=','convert')]"/>
<separator/>
<group expand="0" name="group_by" string="Group By">
<filter name="entry_type" string="Entry type" context="{'group_by' : 'type'}" />
<filter name="subscription_date" string="Subscription Date" context="{'group_by': 'date'}"/>
</group>
</search>
</field>
</record>
<record id="subscription_register_action" model="ir.actions.act_window">
<field name="name">Subscription Register</field>
<field name="res_model">subscription.register</field>
<field name="view_type">form</field>
<field name="view_id" ref="subscription_register_tree"/>
<field name="search_view_id" ref="view_subscription_register_filter"/>
</record>
</odoo>

30
easy_my_coop/views/email_template_view.xml

@ -1,15 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record model="ir.actions.act_window"
id="action_easy_my_coop_email_templates">
<field name="name">Mail Templates</field>
<field name="res_model">mail.template</field>
<field name="view_type">form</field>
<field name="view_mode">form,tree</field>
<field name="domain">[('easy_my_coop','=',True)]</field>
<field name="view_id" ref="mail.email_template_tree" />
<field name="search_view_id" ref="mail.view_email_template_search" />
</record>
</odoo>
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record model="ir.actions.act_window"
id="action_easy_my_coop_email_templates">
<field name="name">Mail Templates</field>
<field name="res_model">mail.template</field>
<field name="view_type">form</field>
<field name="view_mode">form,tree</field>
<field name="domain">[('easy_my_coop','=',True)]</field>
<field name="view_id" ref="mail.email_template_tree" />
<field name="search_view_id" ref="mail.view_email_template_search" />
</record>
</odoo>

210
easy_my_coop/views/operation_request_view.xml

@ -1,105 +1,105 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<record id="operation_request_tree" model="ir.ui.view">
<field name="name">operation.request.tree</field>
<field name="model">operation.request</field>
<field name="arch" type="xml">
<tree string="Operation requests" colors="green:state in ('approved'); blue:state in ('draft');grey: state in ('done')">
<field name="request_date"/>
<field name="partner_id"/>
<field name="operation_type"/>
<field name="quantity"/>
<field name="user_id"/>
<field name="state"/>
</tree>
</field>
</record>
<record id="operation_request_form" model="ir.ui.view">
<field name="name">operation.request.form</field>
<field name="model">operation.request</field>
<field name="arch" type="xml">
<form string="Operation request">
<header>
<button string="Submit" type="object" name="submit_operation" states="draft"/>
<button string="Approve" type="object" name="approve_operation" states="waiting"/>
<button string="Refuse" type="object" name="refuse_operation" states="waiting"/>
<button string="Cancel" type="object" name="cancel_operation" states="draft,waiting,approved"/>
<button string="Draft" type="object" name="reset_to_draft" states="waiting,cancelled"/>
<button string="Execute" type="object" name="execute_operation" states="approved"/>
<field name="state" widget="statusbar" statusbar_visible="draft,done,cancelled,refused" statusbar_colors='{"draft":"grey","done":"green","cancelled":"orange","refused":"red"}'/>
</header>
<sheet>
<group>
<group>
<field name="request_date" attrs="{'readonly':[('state','!=','draft')]}"/>
<field name="operation_type" attrs="{'readonly':[('state','!=','draft')]}"/>
<field name="receiver_not_member" attrs="{'invisible':[('operation_type','!=','transfer')]}"/>
<field name="partner_id" options="{'no_create':True}" attrs="{'readonly':[('state','!=','draft')]}"/>
<field name="partner_id_to" options="{'no_create':True}" attrs="{'invisible':['|',('operation_type','!=','transfer'), ('receiver_not_member','=',True)]}"/>
</group>
<group>
<field name="user_id"/>
<field name="share_product_id" attrs="{'readonly':[('state','!=','draft')]}" widget="selection"/>
<field name="share_short_name" readonly="True"/>
<field name="share_to_product_id" attrs="{'invisible':[('operation_type','!=','convert')],'required':[('operation_type','=','convert')],'readonly':[('state','!=','draft')]}" widget="selection"/>
<field name="share_to_short_name" readonly="True"/>
<field name="quantity" attrs="{'readonly':[('state','!=','draft')]}"/>
<field name="share_unit_price" readonly="True"/>
<field name="subscription_amount" readonly="True" />
</group>
</group>
<group>
<field name="subscription_request" attrs="{'invisible':['|',('operation_type','!=','transfer'),('receiver_not_member','=',False)]}" context="{'default_is_operation': True, 'default_ordered_parts':quantity,'default_share_product_id': share_product_id, 'default_source':'operation'}">
<tree>
<field name="name"/>
<field name="birthdate"/>
<field name="phone"/>
<field name="email"/>
<field name="iban"/>
<field name="state" invisible="True"/>
</tree>
<form string="Subscription Requests">
<sheet>
<group>
<group>
<field name="name"/>
<field name="firstname"/>
<field name="lastname"/>
<field name="birthdate"/>
<field name="gender"/>
<field name="email"/>
<field name="phone"/>
<field name="iban"/>
</group>
<group>
<field name="address"/>
<field name="zip_code"/>
<field name="city"/>
<field name="country_id"/>
<field name="lang"/>
<field name="validated"/>
<field name="skip_control_ng"/>
<field name="ordered_parts" invisible="True"/>
<field name="source" invisible="True"/>
<field name="state" invisible="True"/>
<field name="share_product_id" invisible="True"/>
</group>
</group>
</sheet>
</form>
</field>
</group>
</sheet>
</form>
</field>
</record>
<record id="operation_request_action" model="ir.actions.act_window">
<field name="name">Operation request</field>
<field name="res_model">operation.request</field>
<field name="view_type">form</field>
<field name="view_id" ref="operation_request_tree"/>
</record>
</odoo>
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<record id="operation_request_tree" model="ir.ui.view">
<field name="name">operation.request.tree</field>
<field name="model">operation.request</field>
<field name="arch" type="xml">
<tree string="Operation requests" colors="green:state in ('approved'); blue:state in ('draft');grey: state in ('done')">
<field name="request_date"/>
<field name="partner_id"/>
<field name="operation_type"/>
<field name="quantity"/>
<field name="user_id"/>
<field name="state"/>
</tree>
</field>
</record>
<record id="operation_request_form" model="ir.ui.view">
<field name="name">operation.request.form</field>
<field name="model">operation.request</field>
<field name="arch" type="xml">
<form string="Operation request">
<header>
<button string="Submit" type="object" name="submit_operation" states="draft"/>
<button string="Approve" type="object" name="approve_operation" states="waiting"/>
<button string="Refuse" type="object" name="refuse_operation" states="waiting"/>
<button string="Cancel" type="object" name="cancel_operation" states="draft,waiting,approved"/>
<button string="Draft" type="object" name="reset_to_draft" states="waiting,cancelled"/>
<button string="Execute" type="object" name="execute_operation" states="approved"/>
<field name="state" widget="statusbar" statusbar_visible="draft,done,cancelled,refused" statusbar_colors='{"draft":"grey","done":"green","cancelled":"orange","refused":"red"}'/>
</header>
<sheet>
<group>
<group>
<field name="request_date" attrs="{'readonly':[('state','!=','draft')]}"/>
<field name="operation_type" attrs="{'readonly':[('state','!=','draft')]}"/>
<field name="receiver_not_member" attrs="{'invisible':[('operation_type','!=','transfer')]}"/>
<field name="partner_id" options="{'no_create':True}" attrs="{'readonly':[('state','!=','draft')]}"/>
<field name="partner_id_to" options="{'no_create':True}" attrs="{'invisible':['|',('operation_type','!=','transfer'), ('receiver_not_member','=',True)]}"/>
</group>
<group>
<field name="user_id"/>
<field name="share_product_id" attrs="{'readonly':[('state','!=','draft')]}" widget="selection"/>
<field name="share_short_name" readonly="True"/>
<field name="share_to_product_id" attrs="{'invisible':[('operation_type','!=','convert')],'required':[('operation_type','=','convert')],'readonly':[('state','!=','draft')]}" widget="selection"/>
<field name="share_to_short_name" readonly="True"/>
<field name="quantity" attrs="{'readonly':[('state','!=','draft')]}"/>
<field name="share_unit_price" readonly="True"/>
<field name="subscription_amount" readonly="True" />
</group>
</group>
<group>
<field name="subscription_request" attrs="{'invisible':['|',('operation_type','!=','transfer'),('receiver_not_member','=',False)]}" context="{'default_is_operation': True, 'default_ordered_parts':quantity,'default_share_product_id': share_product_id, 'default_source':'operation'}">
<tree>
<field name="name"/>
<field name="birthdate"/>
<field name="phone"/>
<field name="email"/>
<field name="iban"/>
<field name="state" invisible="True"/>
</tree>
<form string="Subscription Requests">
<sheet>
<group>
<group>
<field name="name"/>
<field name="firstname"/>
<field name="lastname"/>
<field name="birthdate"/>
<field name="gender"/>
<field name="email"/>
<field name="phone"/>
<field name="iban"/>
</group>
<group>
<field name="address"/>
<field name="zip_code"/>
<field name="city"/>
<field name="country_id"/>
<field name="lang"/>
<field name="validated"/>
<field name="skip_control_ng"/>
<field name="ordered_parts" invisible="True"/>
<field name="source" invisible="True"/>
<field name="state" invisible="True"/>
<field name="share_product_id" invisible="True"/>
</group>
</group>
</sheet>
</form>
</field>
</group>
</sheet>
</form>
</field>
</record>
<record id="operation_request_action" model="ir.actions.act_window">
<field name="name">Operation request</field>
<field name="res_model">operation.request</field>
<field name="view_type">form</field>
<field name="view_id" ref="operation_request_tree"/>
</record>
</odoo>

306
easy_my_coop/views/product_view.xml

@ -1,153 +1,153 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<record id="product_template_share_form_view" model="ir.ui.view">
<field name="name">product.template.share.form</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="product.product_template_form_view"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='purchase_ok']/.." position="after">
<div groups="easy_my_coop.group_easy_my_coop_manager">
<field name="is_share"/>
<label for="is_share"/>
</div>
<div attrs="{'invisible':[('is_share','=',False)]}" groups="easy_my_coop.group_easy_my_coop_user">
<field name="display_on_website"/>
<label for="display_on_website"/>
</div>
</xpath>
<page name="general_information" position="after">
<page string="Share Information" name="share_information" attrs="{'invisible':[('is_share','=',False)]}" groups="easy_my_coop.group_easy_my_coop_user">
<group>
<group name="Info" string="Info">
<field name="short_name"/>
<field name="default_share_product"/>
<field name="mail_template"/>
</group>
<group name="configuration" string="Configuration">
<field name="force_min_qty"/>
<field name="minimum_quantity"/>
<field name="customer" attrs="{'invisible':[('is_share','=',False)]}"/>
<field name="by_company"/>
<field name="by_individual"/>
</group>
</group>
</page>
</page>
</field>
</record>
<record id="share_product_filter" model="ir.ui.view">
<field name="name">product.template.share.filter</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="product.product_template_search_view"/>
<field name="arch" type="xml">
<xpath expr="." position="inside">
<group expand="0" name="group_by" string="Group By">
<filter name="Creation Date" context="{'group_by': 'create_date'}"/>
</group>
</xpath>
</field>
</record>
<record id="product_template_only_form_view" model="ir.ui.view">
<field name="name">product.template.product.form</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="product.product_template_only_form_view"/>
<field name="arch" type="xml">
<field name="default_code" position="attributes">
<attribute name="attrs">{'required': [('is_share', '=', True)]}</attribute>
</field>
</field>
</record>
<record id="share_product_action" model="ir.actions.act_window">
<field name="name">Share type</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">product.template</field>
<field name="view_type">form</field>
<field name="view_mode">kanban,tree,form</field>
<!-- <field name="context">{"search_default_filter_to_purchase":1}</field> -->
<field name="search_view_id" eval="False" /> <!-- Force empty -->
<field name="view_id" eval="False" /> <!-- Force empty -->
<field name="domain">[('is_share','=',True)]</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to define a new share product.
</p>
</field>
</record>
<!-- overriding product views to not display share product in the purchase and sale views-->
<record id="product.product_normal_action" model="ir.actions.act_window">
<field name="name">Product</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">product.product</field>
<field name="view_mode">tree,form,kanban</field>
<field name="view_type">form</field>
<field name="search_view_id" ref="product.product_search_form_view"/>
<field name="view_id" eval="False"/> <!-- Force empty -->
<field name="domain">[('is_share','=',False)]</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to define a new product.
</p><p>
You must define a product for everything you sell, whether it's
a physical product, a consumable or a service you offer to
customers.
</p><p>
The product form contains information to simplify the sale
process: price, notes in the quotation, accounting data,
procurement methods, etc.
</p>
</field>
</record>
<record id="product.product_template_action" model="ir.actions.act_window">
<field name="name">Products</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">product.template</field>
<field name="view_mode">tree,form,kanban</field>
<field name="view_type">form</field>
<field name="view_id" ref="product.product_template_kanban_view"/>
<field name="context">{"search_default_filter_to_sell":1}</field>
<field name="domain">[('is_share','=',False)]</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to define a new product.
</p><p>
You must define a product for everything you sell, whether it's a physical product, a consumable or a service you offer to customers.
</p><p>
The product form contains information to simplify the sale process: price, notes in the quotation, accounting data, procurement methods, etc.
</p>
</field>
</record>
<!-- move this action to another module cause the original action has been
moved to purchase module. So we want to avoid make purchase module installed
<record id="product.product_normal_action_puchased" model="ir.actions.act_window">
<field name="name">Products</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">product.template</field>
<field name="view_type">form</field>
<field name="view_mode">kanban,tree,form</field>
<field name="context">{"search_default_filter_to_purchase":1}</field>
<field name="search_view_id" eval="False"/> Force empty
<field name="view_id" eval="False"/> Force empty
<field name="domain">[('is_share','=',False)]</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to define a new product.
</p><p>
You must define a product for everything you purchase, whether
it's a physical product, a consumable or services you buy to
subcontractants.
</p><p>
The product form contains detailed information to improve the
purchase process: prices, procurement logistics, accounting data,
available vendors, etc.
</p>
</field>
</record> -->
</odoo>
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<record id="product_template_share_form_view" model="ir.ui.view">
<field name="name">product.template.share.form</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="product.product_template_form_view"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='purchase_ok']/.." position="after">
<div groups="easy_my_coop.group_easy_my_coop_manager">
<field name="is_share"/>
<label for="is_share"/>
</div>
<div attrs="{'invisible':[('is_share','=',False)]}" groups="easy_my_coop.group_easy_my_coop_user">
<field name="display_on_website"/>
<label for="display_on_website"/>
</div>
</xpath>
<page name="general_information" position="after">
<page string="Share Information" name="share_information" attrs="{'invisible':[('is_share','=',False)]}" groups="easy_my_coop.group_easy_my_coop_user">
<group>
<group name="Info" string="Info">
<field name="short_name"/>
<field name="default_share_product"/>
<field name="mail_template"/>
</group>
<group name="configuration" string="Configuration">
<field name="force_min_qty"/>
<field name="minimum_quantity"/>
<field name="customer" attrs="{'invisible':[('is_share','=',False)]}"/>
<field name="by_company"/>
<field name="by_individual"/>
</group>
</group>
</page>
</page>
</field>
</record>
<record id="share_product_filter" model="ir.ui.view">
<field name="name">product.template.share.filter</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="product.product_template_search_view"/>
<field name="arch" type="xml">
<xpath expr="." position="inside">
<group expand="0" name="group_by" string="Group By">
<filter name="Creation Date" context="{'group_by': 'create_date'}"/>
</group>
</xpath>
</field>
</record>
<record id="product_template_only_form_view" model="ir.ui.view">
<field name="name">product.template.product.form</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="product.product_template_only_form_view"/>
<field name="arch" type="xml">
<field name="default_code" position="attributes">
<attribute name="attrs">{'required': [('is_share', '=', True)]}</attribute>
</field>
</field>
</record>
<record id="share_product_action" model="ir.actions.act_window">
<field name="name">Share type</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">product.template</field>
<field name="view_type">form</field>
<field name="view_mode">kanban,tree,form</field>
<!-- <field name="context">{"search_default_filter_to_purchase":1}</field> -->
<field name="search_view_id" eval="False" /> <!-- Force empty -->
<field name="view_id" eval="False" /> <!-- Force empty -->
<field name="domain">[('is_share','=',True)]</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to define a new share product.
</p>
</field>
</record>
<!-- overriding product views to not display share product in the purchase and sale views-->
<record id="product.product_normal_action" model="ir.actions.act_window">
<field name="name">Product</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">product.product</field>
<field name="view_mode">tree,form,kanban</field>
<field name="view_type">form</field>
<field name="search_view_id" ref="product.product_search_form_view"/>
<field name="view_id" eval="False"/> <!-- Force empty -->
<field name="domain">[('is_share','=',False)]</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to define a new product.
</p><p>
You must define a product for everything you sell, whether it's
a physical product, a consumable or a service you offer to
customers.
</p><p>
The product form contains information to simplify the sale
process: price, notes in the quotation, accounting data,
procurement methods, etc.
</p>
</field>
</record>
<record id="product.product_template_action" model="ir.actions.act_window">
<field name="name">Products</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">product.template</field>
<field name="view_mode">tree,form,kanban</field>
<field name="view_type">form</field>
<field name="view_id" ref="product.product_template_kanban_view"/>
<field name="context">{"search_default_filter_to_sell":1}</field>
<field name="domain">[('is_share','=',False)]</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to define a new product.
</p><p>
You must define a product for everything you sell, whether it's a physical product, a consumable or a service you offer to customers.
</p><p>
The product form contains information to simplify the sale process: price, notes in the quotation, accounting data, procurement methods, etc.
</p>
</field>
</record>
<!-- move this action to another module cause the original action has been
moved to purchase module. So we want to avoid make purchase module installed
<record id="product.product_normal_action_puchased" model="ir.actions.act_window">
<field name="name">Products</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">product.template</field>
<field name="view_type">form</field>
<field name="view_mode">kanban,tree,form</field>
<field name="context">{"search_default_filter_to_purchase":1}</field>
<field name="search_view_id" eval="False"/> Force empty
<field name="view_id" eval="False"/> Force empty
<field name="domain">[('is_share','=',False)]</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to define a new product.
</p><p>
You must define a product for everything you purchase, whether
it's a physical product, a consumable or services you buy to
subcontractants.
</p><p>
The product form contains detailed information to improve the
purchase process: prices, procurement logistics, accounting data,
available vendors, etc.
</p>
</field>
</record> -->
</odoo>

68
easy_my_coop/views/res_company_view.xml

@ -1,34 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<record model="ir.ui.view" id="view_company_inherit_form2">
<field name="name">res.company.form.easymy.coop</field>
<field name="inherit_id" ref="base.view_company_form"/>
<field name="model">res.company</field>
<field name="arch" type="xml">
<group name="social_media" position="before">
<group name="coop_grp" string="EasyMy Coop" groups="easy_my_coop.group_easy_my_coop_user">
<field name="unmix_share_type"/>
<field name="allow_id_card_upload"/>
<field name="create_user"/>
<field name="display_logo1"/>
<field name="bottom_logo1"/>
<field name="display_logo2"/>
<field name="bottom_logo2"/>
<field name="coop_email_contact"/>
<field name="subscription_maximum_amount"/>
<field name="property_cooperator_account"/>
<field name="default_country_id"/>
<field name="default_lang_id"/>
<field name="board_representative"/>
<field name="signature_scan"/>
<field name="display_data_policy_approval"/>
<field name="data_policy_approval_required"/>
<field name="data_policy_approval_text"/>
<field name="display_internal_rules_approval"/>
<field name="internal_rules_approval_required"/>
<field name="internal_rules_approval_text"/>
</group>
</group>
</field>
</record>
</odoo>
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<record model="ir.ui.view" id="view_company_inherit_form2">
<field name="name">res.company.form.easymy.coop</field>
<field name="inherit_id" ref="base.view_company_form"/>
<field name="model">res.company</field>
<field name="arch" type="xml">
<group name="social_media" position="before">
<group name="coop_grp" string="EasyMy Coop" groups="easy_my_coop.group_easy_my_coop_user">
<field name="unmix_share_type"/>
<field name="allow_id_card_upload"/>
<field name="create_user"/>
<field name="display_logo1"/>
<field name="bottom_logo1"/>
<field name="display_logo2"/>
<field name="bottom_logo2"/>
<field name="coop_email_contact"/>
<field name="subscription_maximum_amount"/>
<field name="property_cooperator_account"/>
<field name="default_country_id"/>
<field name="default_lang_id"/>
<field name="board_representative"/>
<field name="signature_scan"/>
<field name="display_data_policy_approval"/>
<field name="data_policy_approval_required"/>
<field name="data_policy_approval_text"/>
<field name="display_internal_rules_approval"/>
<field name="internal_rules_approval_required"/>
<field name="internal_rules_approval_text"/>
</group>
</group>
</field>
</record>
</odoo>

12
easy_my_coop/views/res_partner_view.xml

@ -18,7 +18,7 @@
type="action" context="{'default_active_id': active_id}" groups="easy_my_coop.group_easy_my_coop_user"/>
</header>
</sheet>
<xpath expr="/form/sheet/group" position='before'>
<group>
<group>
@ -40,7 +40,7 @@
</group>
</group>
</xpath>
<page name='sales_purchases' position="after">
<page string="Shares" name="share" attrs="{'invisible':[('member','=',False)]}" groups="easy_my_coop.group_easy_my_coop_user">
<group>
@ -72,7 +72,7 @@
</page>
</field>
</record>
<record id="view_partner_tree_easy_my_coop" model="ir.ui.view">
<field name="name">res.partner.tree.easy_my_coop</field>
<field name="model">res.partner</field>
@ -85,7 +85,7 @@
</xpath>
</field>
</record>
<record id="view_res_partner_filter_coop" model="ir.ui.view">
<field name="name">res.partner.select</field>
<field name="model">res.partner</field>
@ -101,7 +101,7 @@
</filter>
</field>
</record>
<record id="action_partner_cooperator_form" model="ir.actions.act_window">
<field name="name">Cooperators</field>
<field name="res_model">res.partner</field>
@ -158,7 +158,7 @@
</p>
</field>
</record>
<record id="remove_partner_follower" model="ir.ui.view">
<field name="name">res.partner.remove.follower.inherit</field>
<field name="model">res.partner</field>

402
easy_my_coop/views/subscription_request_view.xml

@ -1,201 +1,201 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<record id="subscription_request_tree" model="ir.ui.view">
<field name="name">subscription.request.tree</field>
<field name="model">subscription.request</field>
<field name="arch" type="xml">
<!-- fixme no colors in v12 ? -->
<tree string="Subscription Requests" colors="red:validated == False; blue:state in ('draft'); grey: state in ('done')">
<field name="name"/>
<field name="company_name"/>
<field name="date" string="Request Date"/>
<field name="type"/>
<field name="share_short_name" string="Share Type"/>
<field name="ordered_parts" string="Quantity" sum="Total ordered parts"/>
<field name="subscription_amount" sum="Total amount"/>
<field name="email"/>
<field name="iban"/>
<field name="partner_id"/>
<field name="source"/>
<field name="state"/>
<field name="validated" invisible="True"/>
<button type="object" string="Validate" aria-label="Validate" name="validate_subscription_request" attrs="{'invisible':['|',('state','not in',['draft','waiting']),('validated','=',False)]}"/>
<button type="object" string="Block" aria-label="Block" name="block_subscription_request" states="draft" groups="easy_my_coop.group_easy_my_coop_user"/>
<button type="object" string="Unblock" aria-label="Unblock" name="unblock_subscription_request" states="block" groups="easy_my_coop.group_easy_my_coop_user"/>
</tree>
</field>
</record>
<record id="subscription_request_form" model="ir.ui.view">
<field name="name">subscription.request.form</field>
<field name="model">subscription.request</field>
<field name="arch" type="xml">
<form string="Subscription Requests">
<header>
<button string="Validate" type="object" name="validate_subscription_request" attrs="{'invisible':['|',('state','not in',['draft','waiting']),('validated','=',False)]}"/>
<button string="Waiting list" type="object" name="put_on_waiting_list" states="draft"/>
<button string="Cancel" type="object" name="cancel_subscription_request" states="draft,waiting,done,block" groups="easy_my_coop.group_easy_my_coop_user"/>
<field name="state" widget="statusbar" statusbar_visible="draft,cancelled,done,failed"/>
</header>
<sheet>
<group>
<group>
<field name="validated" invisible="True"/>
<field name="already_cooperator"/>
<field name="is_company" groups="easy_my_coop.group_easy_my_coop_manager"/>
<field name="is_operation" invisible="True"/>
<field name="company_name" attrs="{'invisible':[('is_company','=',False)]}"/>
<field name="company_email" attrs="{'invisible':[('is_company','=',False)]}"/>
<field name="company_type" attrs="{'invisible':[('is_company','=',False)]}"/>
<field name="company_register_number" attrs="{'invisible':[('is_company','=',False)]}"/>
<field name="name"/>
<field name="firstname"/>
<field name="lastname"/>
<field name="birthdate"/>
<field name="gender"/>
<field name="email"/>
<field name="phone"/>
<field name="contact_person_function" attrs="{'invisible':[('is_company','=',False)]}"/>
<!-- todo highlight iban if not valid -->
<field name="iban"/>
<field name="address"/>
<field name="zip_code"/>
<field name="city"/>
<field name="country_id" options="{'no_create':True}"/>
</group>
<group>
<field name="capital_release_request_date" groups="easy_my_coop.group_easy_my_coop_manager"/>
<field name="date"/>
<field name="source"/>
<field name="ordered_parts"/>
<field name="share_product_id" widget="selection"/>
<field name="share_short_name"/>
<field name="share_unit_price"/>
<field name="subscription_amount"/>
<field name="partner_id" options="{'no_create':True}"/>
<field name="type"/>
<field name="lang"/>
<field name="skip_control_ng"/>
<field name="data_policy_approved"/>
</group>
</group>
<notebook>
<page name="capital_release_request" string="Capital release request">
<field name="capital_release_request">
<tree options="{'no_create':True}">
<field string="Cooperator" name="partner_id"/>
<field name="date_invoice"/>
<field name="number"/>
<field string="Reference" name="reference"/>
<field name="date_due"/>
<field name="amount_total_signed"/>
<field name="residual_signed"/>
<field name="state"/>
</tree>
</field>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="view_subscription_request_filter" model="ir.ui.view">
<field name="name">Cooperator Subscription Search</field>
<field name="model">subscription.request</field>
<field name="arch" type="xml">
<search string="Search Subscription Request">
<field name="name"/>
<field name="partner_id"/>
<separator/>
<filter string="Draft" name="state_draft" domain="[('state','=','draft')]"/>
<filter string="Paid" name="state_paid" domain="[('state','=','paid')]"/>
<filter string="Done" name="state_done" domain="[('state','=','done')]"/>
<separator/>
<filter string="Not Validated" name="Not Validated" domain="[('validated', '=', False)]"/>
<group expand="0" name="group_by" string="Group By">
<filter name="request_type" string="Request type" context="{'group_by' : 'type'}" />
<filter name="date" string="Request Date" context="{'group_by': 'date'}"/>
</group>
</search>
</field>
</record>
<record id="subscription_request_action" model="ir.actions.act_window">
<field name="name">Subscriptions</field>
<field name="res_model">subscription.request</field>
<field name="view_type">form</field>
<field name="domain">[('is_operation','=',False)]</field>
<field name="context">{'default_source':'manual'}</field>
<field name="view_id" ref="subscription_request_tree"/>
<field name="search_view_id" ref="view_subscription_request_filter"/>
</record>
<record id="share_line_form" model="ir.ui.view">
<field name="name">share.line.form</field>
<field name="model">share.line</field>
<field name="arch" type="xml">
<form string="Share line">
<header>
<button string="Update info" name="%(action_view_update_share_line_info)d"
type="action" context="{'default_active_id': active_id}" groups="easy_my_coop.group_easy_my_coop_manager"/>
</header>
<sheet>
<group>
<group>
<field name="partner_id"/>
<field name="share_product_id"/>
<field name="share_number"/>
</group>
<group>
<field name="share_short_name"/>
<field name="share_unit_price"/>
<field name="effective_date"/>
<field name="total_amount_line"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<record id="share_line_tree" model="ir.ui.view">
<field name="name">share.line.tree</field>
<field name="model">share.line</field>
<field name="arch" type="xml">
<tree>
<field name="partner_id"/>
<field name="share_product_id"/>
<field name="share_number"/>
<field name="share_short_name"/>
<field name="share_unit_price"/>
<field name="effective_date"/>
<field name="total_amount_line"/>
</tree>
</field>
</record>
<record id="view_share_line_filter" model="ir.ui.view">
<field name="name">Share Line Search</field>
<field name="model">share.line</field>
<field name="arch" type="xml">
<search string="Search Share Line">
<field name="partner_id"/>
<field name="effective_date"/>
<separator/>
<group name="group_by" string="Group By">
<filter name="cooperator" string="Cooperator" context="{'group_by' : 'partner_id'}" />
<filter name="effective_date" string="Effective date" context="{'group_by': 'effective_date'}"/>
</group>
</search>
</field>
</record>
<record id="share_line_action" model="ir.actions.act_window">
<field name="name">Share Lines</field>
<field name="res_model">share.line</field>
<field name="view_type">form</field>
</record>
</odoo>
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<record id="subscription_request_tree" model="ir.ui.view">
<field name="name">subscription.request.tree</field>
<field name="model">subscription.request</field>
<field name="arch" type="xml">
<!-- fixme no colors in v12 ? -->
<tree string="Subscription Requests" colors="red:validated == False; blue:state in ('draft'); grey: state in ('done')">
<field name="name"/>
<field name="company_name"/>
<field name="date" string="Request Date"/>
<field name="type"/>
<field name="share_short_name" string="Share Type"/>
<field name="ordered_parts" string="Quantity" sum="Total ordered parts"/>
<field name="subscription_amount" sum="Total amount"/>
<field name="email"/>
<field name="iban"/>
<field name="partner_id"/>
<field name="source"/>
<field name="state"/>
<field name="validated" invisible="True"/>
<button type="object" string="Validate" aria-label="Validate" name="validate_subscription_request" attrs="{'invisible':['|',('state','not in',['draft','waiting']),('validated','=',False)]}"/>
<button type="object" string="Block" aria-label="Block" name="block_subscription_request" states="draft" groups="easy_my_coop.group_easy_my_coop_user"/>
<button type="object" string="Unblock" aria-label="Unblock" name="unblock_subscription_request" states="block" groups="easy_my_coop.group_easy_my_coop_user"/>
</tree>
</field>
</record>
<record id="subscription_request_form" model="ir.ui.view">
<field name="name">subscription.request.form</field>
<field name="model">subscription.request</field>
<field name="arch" type="xml">
<form string="Subscription Requests">
<header>
<button string="Validate" type="object" name="validate_subscription_request" attrs="{'invisible':['|',('state','not in',['draft','waiting']),('validated','=',False)]}"/>
<button string="Waiting list" type="object" name="put_on_waiting_list" states="draft"/>
<button string="Cancel" type="object" name="cancel_subscription_request" states="draft,waiting,done,block" groups="easy_my_coop.group_easy_my_coop_user"/>
<field name="state" widget="statusbar" statusbar_visible="draft,cancelled,done,failed"/>
</header>
<sheet>
<group>
<group>
<field name="validated" invisible="True"/>
<field name="already_cooperator"/>
<field name="is_company" groups="easy_my_coop.group_easy_my_coop_manager"/>
<field name="is_operation" invisible="True"/>
<field name="company_name" attrs="{'invisible':[('is_company','=',False)]}"/>
<field name="company_email" attrs="{'invisible':[('is_company','=',False)]}"/>
<field name="company_type" attrs="{'invisible':[('is_company','=',False)]}"/>
<field name="company_register_number" attrs="{'invisible':[('is_company','=',False)]}"/>
<field name="name"/>
<field name="firstname"/>
<field name="lastname"/>
<field name="birthdate"/>
<field name="gender"/>
<field name="email"/>
<field name="phone"/>
<field name="contact_person_function" attrs="{'invisible':[('is_company','=',False)]}"/>
<!-- todo highlight iban if not valid -->
<field name="iban"/>
<field name="address"/>
<field name="zip_code"/>
<field name="city"/>
<field name="country_id" options="{'no_create':True}"/>
</group>
<group>
<field name="capital_release_request_date" groups="easy_my_coop.group_easy_my_coop_manager"/>
<field name="date"/>
<field name="source"/>
<field name="ordered_parts"/>
<field name="share_product_id" widget="selection"/>
<field name="share_short_name"/>
<field name="share_unit_price"/>
<field name="subscription_amount"/>
<field name="partner_id" options="{'no_create':True}"/>
<field name="type"/>
<field name="lang"/>
<field name="skip_control_ng"/>
<field name="data_policy_approved"/>
</group>
</group>
<notebook>
<page name="capital_release_request" string="Capital release request">
<field name="capital_release_request">
<tree options="{'no_create':True}">
<field string="Cooperator" name="partner_id"/>
<field name="date_invoice"/>
<field name="number"/>
<field string="Reference" name="reference"/>
<field name="date_due"/>
<field name="amount_total_signed"/>
<field name="residual_signed"/>
<field name="state"/>
</tree>
</field>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="view_subscription_request_filter" model="ir.ui.view">
<field name="name">Cooperator Subscription Search</field>
<field name="model">subscription.request</field>
<field name="arch" type="xml">
<search string="Search Subscription Request">
<field name="name"/>
<field name="partner_id"/>
<separator/>
<filter string="Draft" name="state_draft" domain="[('state','=','draft')]"/>
<filter string="Paid" name="state_paid" domain="[('state','=','paid')]"/>
<filter string="Done" name="state_done" domain="[('state','=','done')]"/>
<separator/>
<filter string="Not Validated" name="Not Validated" domain="[('validated', '=', False)]"/>
<group expand="0" name="group_by" string="Group By">
<filter name="request_type" string="Request type" context="{'group_by' : 'type'}" />
<filter name="date" string="Request Date" context="{'group_by': 'date'}"/>
</group>
</search>
</field>
</record>
<record id="subscription_request_action" model="ir.actions.act_window">
<field name="name">Subscriptions</field>
<field name="res_model">subscription.request</field>
<field name="view_type">form</field>
<field name="domain">[('is_operation','=',False)]</field>
<field name="context">{'default_source':'manual'}</field>
<field name="view_id" ref="subscription_request_tree"/>
<field name="search_view_id" ref="view_subscription_request_filter"/>
</record>
<record id="share_line_form" model="ir.ui.view">
<field name="name">share.line.form</field>
<field name="model">share.line</field>
<field name="arch" type="xml">
<form string="Share line">
<header>
<button string="Update info" name="%(action_view_update_share_line_info)d"
type="action" context="{'default_active_id': active_id}" groups="easy_my_coop.group_easy_my_coop_manager"/>
</header>
<sheet>
<group>
<group>
<field name="partner_id"/>
<field name="share_product_id"/>
<field name="share_number"/>
</group>
<group>
<field name="share_short_name"/>
<field name="share_unit_price"/>
<field name="effective_date"/>
<field name="total_amount_line"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<record id="share_line_tree" model="ir.ui.view">
<field name="name">share.line.tree</field>
<field name="model">share.line</field>
<field name="arch" type="xml">
<tree>
<field name="partner_id"/>
<field name="share_product_id"/>
<field name="share_number"/>
<field name="share_short_name"/>
<field name="share_unit_price"/>
<field name="effective_date"/>
<field name="total_amount_line"/>
</tree>
</field>
</record>
<record id="view_share_line_filter" model="ir.ui.view">
<field name="name">Share Line Search</field>
<field name="model">share.line</field>
<field name="arch" type="xml">
<search string="Search Share Line">
<field name="partner_id"/>
<field name="effective_date"/>
<separator/>
<group name="group_by" string="Group By">
<filter name="cooperator" string="Cooperator" context="{'group_by' : 'partner_id'}" />
<filter name="effective_date" string="Effective date" context="{'group_by': 'effective_date'}"/>
</group>
</search>
</field>
</record>
<record id="share_line_action" model="ir.actions.act_window">
<field name="name">Share Lines</field>
<field name="res_model">share.line</field>
<field name="view_type">form</field>
</record>
</odoo>

6
easy_my_coop/wizard/cooperative_history_wizard.xml

@ -8,13 +8,13 @@
<form string="Reporting" version="7.0">
<separator string="Cooperative History"/>
<group>
<field name="report"/>
<field name="report"/>
</group>
<label string="This report allows you to print a pdf of history and number of share for each cooperator"/>
<group>
<field name="display_cooperator"/>
<field name="display_cooperator"/>
</group>
<footer>
<button name="check_report" string="Print" type="object" default_focus="1" class="oe_highlight"/>
or

72
easy_my_coop/wizard/update_share_line.xml

@ -1,36 +1,36 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="view_update_share_line_info" model="ir.ui.view">
<field name="name">Update Share line Info</field>
<field name="model">share.line.update.info</field>
<field name="arch" type="xml">
<form string="Update Share Line Info">
<p class="oe_grey">
Update Share Line Info.
</p>
<group>
<field name="cooperator" readonly="True"/>
<field name="share_line" readonly="True"/>
<field name="effective_date"/>
</group>
<footer>
<button name="update" string="Update Info" type="object" class="btn-primary"/>
<button string="Cancel" class="btn-default" special="cancel"/>
</footer>
</form>
</field>
</record>
<record id="action_view_update_share_line_info" model="ir.actions.act_window">
<field name="name">Update Share Line Info</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">share.line.update.info</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
<field name="groups_id" eval="[(4,ref('easy_my_coop.group_easy_my_coop_manager'))]"/>
</record>
</data>
</odoo>
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="view_update_share_line_info" model="ir.ui.view">
<field name="name">Update Share line Info</field>
<field name="model">share.line.update.info</field>
<field name="arch" type="xml">
<form string="Update Share Line Info">
<p class="oe_grey">
Update Share Line Info.
</p>
<group>
<field name="cooperator" readonly="True"/>
<field name="share_line" readonly="True"/>
<field name="effective_date"/>
</group>
<footer>
<button name="update" string="Update Info" type="object" class="btn-primary"/>
<button string="Cancel" class="btn-default" special="cancel"/>
</footer>
</form>
</field>
</record>
<record id="action_view_update_share_line_info" model="ir.actions.act_window">
<field name="name">Update Share Line Info</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">share.line.update.info</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
<field name="groups_id" eval="[(4,ref('easy_my_coop.group_easy_my_coop_manager'))]"/>
</record>
</data>
</odoo>

2
easy_my_coop_be/__init__.py

@ -1 +1 @@
from . import models
from . import models

4
easy_my_coop_be/models/__init__.py

@ -1,2 +1,2 @@
from . import coop
from . import partner
from . import coop
from . import partner

1
easy_my_coop_be/readme/CONTRIBUTORS.rst

@ -1,2 +1 @@
* Coop IT Easy SCRLfs

2
easy_my_coop_ch/__init__.py

@ -1 +1 @@
from . import models
from . import models

4
easy_my_coop_ch/models/__init__.py

@ -1,2 +1,2 @@
from . import coop
from . import partner
from . import coop
from . import partner

52
easy_my_coop_ch/views/subscription_template.xml

@ -1,26 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<template id="subscription_i18n_ch" inherit_id="easy_my_coop_website.becomecooperator" name="Removing fields">
<xpath expr="//label[@for='iban']/.." position="replace">
<div t-attf-class="form-group #{error and 'iban' in error and 'has-error' or ''}">
<label class="col-md-3 col-sm-4 control-label" for="iban">Bank Account Number</label>
<div class="col-md-7 col-sm-8">
<input type="text" class="form-control mandatory-field" name="iban" t-attf-value="#{iban or ''}" placeholder="BE48523080767127"/>
</div>
</div>
</xpath>
</template>
<template id="company_subscription_i18n_ch" inherit_id="easy_my_coop_website.becomecompanycooperator" name="Company Removing fields">
<xpath expr="//label[@for='iban']/.." position="replace">
<div t-attf-class="form-group #{error and 'iban' in error and 'has-error' or ''}">
<label class="col-md-3 col-sm-4 control-label" for="iban">Bank Account Number</label>
<div class="col-md-7 col-sm-8">
<input type="text" class="form-control mandatory-field" name="iban" t-attf-value="#{iban or ''}" placeholder="BE48523080767127"/>
</div>
</div>
</xpath>
</template>
</data>
</odoo>
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<template id="subscription_i18n_ch" inherit_id="easy_my_coop_website.becomecooperator" name="Removing fields">
<xpath expr="//label[@for='iban']/.." position="replace">
<div t-attf-class="form-group #{error and 'iban' in error and 'has-error' or ''}">
<label class="col-md-3 col-sm-4 control-label" for="iban">Bank Account Number</label>
<div class="col-md-7 col-sm-8">
<input type="text" class="form-control mandatory-field" name="iban" t-attf-value="#{iban or ''}" placeholder="BE48523080767127"/>
</div>
</div>
</xpath>
</template>
<template id="company_subscription_i18n_ch" inherit_id="easy_my_coop_website.becomecompanycooperator" name="Company Removing fields">
<xpath expr="//label[@for='iban']/.." position="replace">
<div t-attf-class="form-group #{error and 'iban' in error and 'has-error' or ''}">
<label class="col-md-3 col-sm-4 control-label" for="iban">Bank Account Number</label>
<div class="col-md-7 col-sm-8">
<input type="text" class="form-control mandatory-field" name="iban" t-attf-value="#{iban or ''}" placeholder="BE48523080767127"/>
</div>
</div>
</xpath>
</template>
</data>
</odoo>

1
easy_my_coop_dividend/__init__.py

@ -1,2 +1 @@
# -*- coding: utf8 -*-
from . import models

1
easy_my_coop_dividend/models/__init__.py

@ -1,2 +1 @@
# -*- coding: utf8 -*-
from . import dividend

1
easy_my_coop_dividend/readme/CONTRIBUTORS.rst

@ -1,3 +1,2 @@
* Coop IT Easy SCRLfs
* Houssine BAKKALI, <houssine@coopiteasy.be>

2
easy_my_coop_dividend/security/ir.model.access.csv

@ -1 +1 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink

328
easy_my_coop_dividend/views/dividend_views.xml

@ -1,164 +1,164 @@
<odoo>
<data>
<menuitem name="Dividend" id="menu_easy_my_coop_main_dividend" parent="easy_my_coop.menu_main_easy_my_coop" groups="easy_my_coop.group_easy_my_coop_user" sequence="30" />
<record id="dividend_year_form" model="ir.ui.view">
<field name="name">dividend.year.form</field>
<field name="model">dividend.year</field>
<field name="arch" type="xml">
<form string="Dividend year">
<header>
<button name="compute_dividend" string="Compute dividend" type="object" class="oe_highlight" groups="base.group_user"/>
</header>
<sheet>
<group>
<group>
<field name="name"/>
<field name="percentage"/>
<field name="grand_total_dividend"/>
<field name="grand_total_taxes"/>
</group>
<group>
<field name="date_from"/>
<field name="date_to"/>
<field name="withholding_tax"/>
</group>
</group>
<notebook>
<page string="Dividend line">
<field name="dividend_ids">
<tree>
<field name="coop_number"/>
<field name="partner_id"/>
<field name="dividend_amount" sum="Total dividend"/>
<field name="dividend_amount_net" sum="Total dividend net"/>
<field name="dividend_taxes" sum="Total dividend taxes"/>
</tree>
</field>
</page>
<page string="Detailed dividend line">
<field name="detailed_dividend_ids">
<tree>
<field name="coop_number"/>
<field name="partner_id"/>
<field name="share_number"/>
<field name="share_unit_price"/>
<field name="effective_date"/>
<field name="days"/>
<field name="total_amount_line"/>
<field name="coeff"/>
<field name="dividend_amount" string="Dividend" sum="Total dividend"/>
</tree>
</field>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="dividend_year_tree" model="ir.ui.view">
<field name="name">dividend.year.tree</field>
<field name="model">dividend.year</field>
<field name="arch" type="xml">
<tree string="Dividend year">
<field name="name"/>
<field name="percentage"/>
</tree>
</field>
</record>
<record id="dividend_year_action" model="ir.actions.act_window">
<field name="name">Dividend year</field>
<field name="res_model">dividend.year</field>
<field name="view_type">form</field>
<field name="view_id" ref="dividend_year_tree"/>
</record>
<menuitem action="dividend_year_action" name="Dividend" id="menu_dividend_year" parent="menu_easy_my_coop_main_dividend" sequence="10"/>
<record id="view_detailed_dividend_line_filter" model="ir.ui.view">
<field name="name">detailed.dividend.line.select</field>
<field name="model">detailed.dividend.line</field>
<field name="arch" type="xml">
<search string="Search detailed dividend line">
<field name="partner_id"/>
<field name="coop_number"/>
<filter name="dividend_year_id" string="Dividend Year"/>
<separator/>
<filter string="Partner" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="Dividend Year" domain="[]" context="{'group_by':'dividend_year_id'}"/>
</search>
</field>
</record>
<record id="detailed_dividend_line_tree" model="ir.ui.view">
<field name="name">detailed.dividend.line.tree</field>
<field name="model">detailed.dividend.line</field>
<field name="arch" type="xml">
<tree string="Detailed dividend lines">
<field name="dividend_year_id"/>
<field name="coop_number"/>
<field name="partner_id"/>
<field name="share_number"/>
<field name="share_unit_price"/>
<field name="effective_date"/>
<field name="days"/>
<field name="total_amount_line"/>
<field name="coeff"/>
<field name="dividend_amount" string="Dividend" sum="Total dividend"/>
</tree>
</field>
</record>
<record id="detailed_dividend_line_action" model="ir.actions.act_window">
<field name="name">Detailed dividend lines</field>
<field name="res_model">detailed.dividend.line</field>
<field name="view_type">form</field>
<field name="view_id" ref="detailed_dividend_line_tree"/>
</record>
<menuitem action="detailed_dividend_line_action" name="Detailed dividend lines" id="menu_det_dividend_line" parent="menu_easy_my_coop_main_dividend" sequence="20"/>
<record id="view_dividend_line_filter" model="ir.ui.view">
<field name="name">dividend.line.select</field>
<field name="model">dividend.line</field>
<field name="arch" type="xml">
<search string="Search Subscription">
<field name="partner_id"/>
<field name="coop_number"/>
<filter name="dividend_year_id" string="Dividend Year"/>
<separator/>
<group expand="0" string="Group By...">
<filter string="Partner" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="Dividend Year" domain="[]" context="{'group_by':'dividend_year_id'}"/>
</group>
</search>
</field>
</record>
<record id="dividend_line_tree" model="ir.ui.view">
<field name="name">dividend.line.tree</field>
<field name="model">dividend.line</field>
<field name="arch" type="xml">
<tree string="dividend lines">
<field name="dividend_year_id"/>
<field name="coop_number"/>
<field name="partner_id"/>
<field name="account_number"/>
<field name="dividend_amount" sum="Total dividend"/>
<field name="dividend_amount_net" sum="Total dividend net"/>
<field name="dividend_taxes" sum="Total dividend taxes"/>
</tree>
</field>
</record>
<record id="dividend_line_action" model="ir.actions.act_window">
<field name="name">Dividend lines</field>
<field name="res_model">dividend.line</field>
<field name="view_type">form</field>
<field name="view_id" ref="dividend_line_tree"/>
</record>
<menuitem action="dividend_line_action" name="Dividend lines" id="menu_dividend_line" parent="menu_easy_my_coop_main_dividend" sequence="30"/>
</data>
</odoo>
<odoo>
<data>
<menuitem name="Dividend" id="menu_easy_my_coop_main_dividend" parent="easy_my_coop.menu_main_easy_my_coop" groups="easy_my_coop.group_easy_my_coop_user" sequence="30" />
<record id="dividend_year_form" model="ir.ui.view">
<field name="name">dividend.year.form</field>
<field name="model">dividend.year</field>
<field name="arch" type="xml">
<form string="Dividend year">
<header>
<button name="compute_dividend" string="Compute dividend" type="object" class="oe_highlight" groups="base.group_user"/>
</header>
<sheet>
<group>
<group>
<field name="name"/>
<field name="percentage"/>
<field name="grand_total_dividend"/>
<field name="grand_total_taxes"/>
</group>
<group>
<field name="date_from"/>
<field name="date_to"/>
<field name="withholding_tax"/>
</group>
</group>
<notebook>
<page string="Dividend line">
<field name="dividend_ids">
<tree>
<field name="coop_number"/>
<field name="partner_id"/>
<field name="dividend_amount" sum="Total dividend"/>
<field name="dividend_amount_net" sum="Total dividend net"/>
<field name="dividend_taxes" sum="Total dividend taxes"/>
</tree>
</field>
</page>
<page string="Detailed dividend line">
<field name="detailed_dividend_ids">
<tree>
<field name="coop_number"/>
<field name="partner_id"/>
<field name="share_number"/>
<field name="share_unit_price"/>
<field name="effective_date"/>
<field name="days"/>
<field name="total_amount_line"/>
<field name="coeff"/>
<field name="dividend_amount" string="Dividend" sum="Total dividend"/>
</tree>
</field>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="dividend_year_tree" model="ir.ui.view">
<field name="name">dividend.year.tree</field>
<field name="model">dividend.year</field>
<field name="arch" type="xml">
<tree string="Dividend year">
<field name="name"/>
<field name="percentage"/>
</tree>
</field>
</record>
<record id="dividend_year_action" model="ir.actions.act_window">
<field name="name">Dividend year</field>
<field name="res_model">dividend.year</field>
<field name="view_type">form</field>
<field name="view_id" ref="dividend_year_tree"/>
</record>
<menuitem action="dividend_year_action" name="Dividend" id="menu_dividend_year" parent="menu_easy_my_coop_main_dividend" sequence="10"/>
<record id="view_detailed_dividend_line_filter" model="ir.ui.view">
<field name="name">detailed.dividend.line.select</field>
<field name="model">detailed.dividend.line</field>
<field name="arch" type="xml">
<search string="Search detailed dividend line">
<field name="partner_id"/>
<field name="coop_number"/>
<filter name="dividend_year_id" string="Dividend Year"/>
<separator/>
<filter string="Partner" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="Dividend Year" domain="[]" context="{'group_by':'dividend_year_id'}"/>
</search>
</field>
</record>
<record id="detailed_dividend_line_tree" model="ir.ui.view">
<field name="name">detailed.dividend.line.tree</field>
<field name="model">detailed.dividend.line</field>
<field name="arch" type="xml">
<tree string="Detailed dividend lines">
<field name="dividend_year_id"/>
<field name="coop_number"/>
<field name="partner_id"/>
<field name="share_number"/>
<field name="share_unit_price"/>
<field name="effective_date"/>
<field name="days"/>
<field name="total_amount_line"/>
<field name="coeff"/>
<field name="dividend_amount" string="Dividend" sum="Total dividend"/>
</tree>
</field>
</record>
<record id="detailed_dividend_line_action" model="ir.actions.act_window">
<field name="name">Detailed dividend lines</field>
<field name="res_model">detailed.dividend.line</field>
<field name="view_type">form</field>
<field name="view_id" ref="detailed_dividend_line_tree"/>
</record>
<menuitem action="detailed_dividend_line_action" name="Detailed dividend lines" id="menu_det_dividend_line" parent="menu_easy_my_coop_main_dividend" sequence="20"/>
<record id="view_dividend_line_filter" model="ir.ui.view">
<field name="name">dividend.line.select</field>
<field name="model">dividend.line</field>
<field name="arch" type="xml">
<search string="Search Subscription">
<field name="partner_id"/>
<field name="coop_number"/>
<filter name="dividend_year_id" string="Dividend Year"/>
<separator/>
<group expand="0" string="Group By...">
<filter string="Partner" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="Dividend Year" domain="[]" context="{'group_by':'dividend_year_id'}"/>
</group>
</search>
</field>
</record>
<record id="dividend_line_tree" model="ir.ui.view">
<field name="name">dividend.line.tree</field>
<field name="model">dividend.line</field>
<field name="arch" type="xml">
<tree string="dividend lines">
<field name="dividend_year_id"/>
<field name="coop_number"/>
<field name="partner_id"/>
<field name="account_number"/>
<field name="dividend_amount" sum="Total dividend"/>
<field name="dividend_amount_net" sum="Total dividend net"/>
<field name="dividend_taxes" sum="Total dividend taxes"/>
</tree>
</field>
</record>
<record id="dividend_line_action" model="ir.actions.act_window">
<field name="name">Dividend lines</field>
<field name="res_model">dividend.line</field>
<field name="view_type">form</field>
<field name="view_id" ref="dividend_line_tree"/>
</record>
<menuitem action="dividend_line_action" name="Dividend lines" id="menu_dividend_line" parent="menu_easy_my_coop_main_dividend" sequence="30"/>
</data>
</odoo>

2
easy_my_coop_eater/__init__.py

@ -1 +1 @@
from . import models
from . import models

4
easy_my_coop_eater/models/__init__.py

@ -1,2 +1,2 @@
from . import coop
from . import product
from . import coop
from . import product

58
easy_my_coop_eater/models/coop.py

@ -1,29 +1,29 @@
from odoo import api, models
class SubscriptionRequest(models.Model):
_inherit = "subscription.request"
def get_eater_vals(self, partner, share_product_id):
vals = {}
eater = share_product_id.eater
if partner.is_company or partner.age < 18:
eater = "eater"
vals["eater"] = eater
return vals
@api.one
def validate_subscription_request(self):
invoice = super(
SubscriptionRequest, self
).validate_subscription_request()[0]
partner = invoice.partner_id
vals = self.get_eater_vals(partner, self.share_product_id)
partner.write(vals)
return invoice
from odoo import api, models
class SubscriptionRequest(models.Model):
_inherit = "subscription.request"
def get_eater_vals(self, partner, share_product_id):
vals = {}
eater = share_product_id.eater
if partner.is_company or partner.age < 18:
eater = "eater"
vals["eater"] = eater
return vals
@api.one
def validate_subscription_request(self):
invoice = super(
SubscriptionRequest, self
).validate_subscription_request()[0]
partner = invoice.partner_id
vals = self.get_eater_vals(partner, self.share_product_id)
partner.write(vals)
return invoice

20
easy_my_coop_eater/models/product.py

@ -1,10 +1,10 @@
from odoo import fields, models
class ProductTemplate(models.Model):
_inherit = "product.template"
eater = fields.Selection(
[("eater", "Eater"), ("worker_eater", "Worker and Eater")],
string="Eater/Worker",
)
from odoo import fields, models
class ProductTemplate(models.Model):
_inherit = "product.template"
eater = fields.Selection(
[("eater", "Eater"), ("worker_eater", "Worker and Eater")],
string="Eater/Worker",
)

26
easy_my_coop_eater/view/product_view.xml

@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="product_template_form_view_eater" model="ir.ui.view">
<field name="name">product.template.share.form</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="easy_my_coop.product_template_share_form_view"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='minimum_quantity']" position="after">
<field name="eater" attrs="{'invisible':[('is_share','=',False)]}"/>
</xpath>
</field>
</record>
</odoo>
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="product_template_form_view_eater" model="ir.ui.view">
<field name="name">product.template.share.form</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="easy_my_coop.product_template_share_form_view"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='minimum_quantity']" position="after">
<field name="eater" attrs="{'invisible':[('is_share','=',False)]}"/>
</xpath>
</field>
</record>
</odoo>

1
easy_my_coop_export_xlsx/__init__.py

@ -1,2 +1 @@
# -*- coding: utf8 -*-
from . import wizard

1
easy_my_coop_export_xlsx/readme/CONTRIBUTORS.rst

@ -1,3 +1,2 @@
* Coop IT Easy SCRLfs
* Houssine BAKKALI, <houssine@coopiteasy.be>

1
easy_my_coop_export_xlsx/wizard/__init__.py

@ -1,2 +1 @@
# -*- coding: utf8 -*-
from . import export_global_wizard

2
easy_my_coop_export_xlsx/wizard/export_global_wizard.xml

@ -27,7 +27,7 @@
<field name="target">new</field>
<field name="multi">True</field>
</record>
<menuitem id="menu_export_global_report_wizard" name="Global report export" parent="easy_my_coop.menu_easy_my_coop_main_reporting" action="action_export_global_report_wizard" sequence="10"/>
</data>
</openerp>

2
easy_my_coop_fr/__init__.py

@ -1 +1 @@
from . import models
from . import models

4
easy_my_coop_fr/models/__init__.py

@ -1,2 +1,2 @@
from . import coop
from . import partner
from . import coop
from . import partner

1
easy_my_coop_fr/readme/CONTRIBUTORS.rst

@ -1,2 +1 @@
* Coop IT Easy SCRLfs

98
easy_my_coop_fr/views/certificate_template.xml

@ -1,49 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<template id="certificate_i18n_fr" inherit_id="easy_my_coop.cooperator_certificat_G001_document" name="French Layout Certificate">
<xpath expr="//p[@name='label_coop_number']" position="replace">
<p name="label_coop_number" class="mt16">
<span>Ce document atteste de la souscription de parts sociales au capital de la SAS Coopérative à Capital Variable SuperQuinquin par </span>
<b><span t-field="o.name"></span></b>
<span>, enregistré(e) sous le <b>numéro de coopérateur </b></span>
<span t-field="o.cooperator_register_number"></span>
</p>
</xpath>
<xpath expr="//div[@name='total_table']" position="after">
<div name="legal_text" style="position:relative;top:145px;font-size:12;">
<div>Ce document atteste d’une souscription en numéraire au capital d’une société, répondant à la définition communautaire de la Petite et Moyenne Entreprise, dont les titres ne sont pas admis aux négociations sur un marché d’instruments financiers français ou étranger en application de l’article 199 terdecies 0A du CGI.<br/>
Conformément aux statuts, les souscriptions de parts sociales de type A et B n’ouvre pas droit à rémunération.<br/>
La société remplit les conditions mentionnées aux c, d et e du 2° du I de l’article 199 terdecies-0 A du code général des impôts : <br/>
c) La société est soumise à l’impôt sur les sociétés dans les conditions de droit commun ;<br/>
<br/>
c bis) La société compte au moins deux salariés à la clôture de son premier exercice ou un salarié si elle est soumise à l’obligation de s’inscrire à la chambre de métiers et de l’artisanat ;<br/>
<br/>
d) La société exerce une activité commerciale, industrielle, artisanale, libérale ou agricole, à l’exclusion des activités procurant des revenus garantis en raison de l’existence d’un tarif réglementé de rachat de la production, des activités financières, des activités de gestion de patrimoine mobilier définie à l’article 885 O quater et des activités immobilières. Toutefois, les exclusions relatives à l’exercice d’une activité financière ou immobilière ne sont pas applicables aux entreprises solidaires mentionnées à l’article L. 3332-17-1 du code du travail.<br/>
La société n’exerce pas une activité de production d’électricité utilisant l’énergie radiative du soleil ;<br/>
<br/>
d bis) Les actifs de la société ne sont pas constitués de façon prépondérante de métaux précieux, d’œuvres d’art, d’objets de collection, d’antiquités, de chevaux de course ou de concours ou, sauf si l’objet même de son activité consiste en leur consommation ou en leur vente au détail, de vins ou d’alcools ;<br/>
<br/>
d ter) Les souscriptions au capital de la société confèrent aux souscripteurs les seuls droits résultant de la qualité d’actionnaire ou d’associé, à l’exclusion de toute autre contrepartie notamment sous la forme de tarifs préférentiels ou d’accès prioritaire aux biens produits ou aux services rendus par la société ;<br/>
<br/>
e) La société doit être une petite et moyenne entreprise qui satisfait à la définition des petites et moyennes entreprises qui figure à l’annexe I au règlement (CE) n° 800/2008 de la Commission du 6 août 2008 déclarant certaines catégories d’aide compatibles avec le marché commun en application des articles 87 et 88 du traité (Règlement général d’exemption par catégorie) ;<br/>
</div>
</div>
</xpath>
<xpath expr="//div[@name='board_commitee']" position="replace">
<div name="" class="col-xs-6 pull-left" style="position:relative;top:105px;font-size:20;color:black;font-family:Roboto-Regular;">
<div style="position:relative;top:105px;">
Pour le Conseil d'administration de <span t-field="o.company_id.name"/>.
</div>
<div style="position:relative;top:110px;">
<strong><span t-field="o.company_id.board_representative"/></strong>
</div>
<div style="position:relative;top:115px;">
<img t-if="o.company_id.signature_scan" t-att-src="'data:image/png;base64,%s' % o.company_id.signature_scan" style="width:240px;height:180px;padding-bottom:5px;"/>
</div>
</div>
</xpath>
</template>
</data>
</odoo>
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<template id="certificate_i18n_fr" inherit_id="easy_my_coop.cooperator_certificat_G001_document" name="French Layout Certificate">
<xpath expr="//p[@name='label_coop_number']" position="replace">
<p name="label_coop_number" class="mt16">
<span>Ce document atteste de la souscription de parts sociales au capital de la SAS Coopérative à Capital Variable SuperQuinquin par </span>
<b><span t-field="o.name"></span></b>
<span>, enregistré(e) sous le <b>numéro de coopérateur </b></span>
<span t-field="o.cooperator_register_number"></span>
</p>
</xpath>
<xpath expr="//div[@name='total_table']" position="after">
<div name="legal_text" style="position:relative;top:145px;font-size:12;">
<div>Ce document atteste d’une souscription en numéraire au capital d’une société, répondant à la définition communautaire de la Petite et Moyenne Entreprise, dont les titres ne sont pas admis aux négociations sur un marché d’instruments financiers français ou étranger en application de l’article 199 terdecies 0A du CGI.<br/>
Conformément aux statuts, les souscriptions de parts sociales de type A et B n’ouvre pas droit à rémunération.<br/>
La société remplit les conditions mentionnées aux c, d et e du 2° du I de l’article 199 terdecies-0 A du code général des impôts : <br/>
c) La société est soumise à l’impôt sur les sociétés dans les conditions de droit commun ;<br/>
<br/>
c bis) La société compte au moins deux salariés à la clôture de son premier exercice ou un salarié si elle est soumise à l’obligation de s’inscrire à la chambre de métiers et de l’artisanat ;<br/>
<br/>
d) La société exerce une activité commerciale, industrielle, artisanale, libérale ou agricole, à l’exclusion des activités procurant des revenus garantis en raison de l’existence d’un tarif réglementé de rachat de la production, des activités financières, des activités de gestion de patrimoine mobilier définie à l’article 885 O quater et des activités immobilières. Toutefois, les exclusions relatives à l’exercice d’une activité financière ou immobilière ne sont pas applicables aux entreprises solidaires mentionnées à l’article L. 3332-17-1 du code du travail.<br/>
La société n’exerce pas une activité de production d’électricité utilisant l’énergie radiative du soleil ;<br/>
<br/>
d bis) Les actifs de la société ne sont pas constitués de façon prépondérante de métaux précieux, d’œuvres d’art, d’objets de collection, d’antiquités, de chevaux de course ou de concours ou, sauf si l’objet même de son activité consiste en leur consommation ou en leur vente au détail, de vins ou d’alcools ;<br/>
<br/>
d ter) Les souscriptions au capital de la société confèrent aux souscripteurs les seuls droits résultant de la qualité d’actionnaire ou d’associé, à l’exclusion de toute autre contrepartie notamment sous la forme de tarifs préférentiels ou d’accès prioritaire aux biens produits ou aux services rendus par la société ;<br/>
<br/>
e) La société doit être une petite et moyenne entreprise qui satisfait à la définition des petites et moyennes entreprises qui figure à l’annexe I au règlement (CE) n° 800/2008 de la Commission du 6 août 2008 déclarant certaines catégories d’aide compatibles avec le marché commun en application des articles 87 et 88 du traité (Règlement général d’exemption par catégorie) ;<br/>
</div>
</div>
</xpath>
<xpath expr="//div[@name='board_commitee']" position="replace">
<div name="" class="col-xs-6 pull-left" style="position:relative;top:105px;font-size:20;color:black;font-family:Roboto-Regular;">
<div style="position:relative;top:105px;">
Pour le Conseil d'administration de <span t-field="o.company_id.name"/>.
</div>
<div style="position:relative;top:110px;">
<strong><span t-field="o.company_id.board_representative"/></strong>
</div>
<div style="position:relative;top:115px;">
<img t-if="o.company_id.signature_scan" t-att-src="'data:image/png;base64,%s' % o.company_id.signature_scan" style="width:240px;height:180px;padding-bottom:5px;"/>
</div>
</div>
</xpath>
</template>
</data>
</odoo>

27
easy_my_coop_fr/views/layout_template.xml

@ -1,14 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<template id="layout_i18n_fr" inherit_id="theme_light.invoice_footer" name="French Layout Customization">
<xpath expr="//t[@t-if='company.company_registry']" position="before">
<t t-if="company.siret">
<span>Siret</span> :
<span t-field="company.siret"/>
</t>
</xpath>
</template>
</data>
</odoo>
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<template id="layout_i18n_fr" inherit_id="theme_light.invoice_footer" name="French Layout Customization">
<xpath expr="//t[@t-if='company.company_registry']" position="before">
<t t-if="company.siret">
<span>Siret</span> :
<span t-field="company.siret"/>
</t>
</xpath>
</template>
</data>
</odoo>

28
easy_my_coop_fr/views/subscription_template.xml

@ -1,14 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<template id="subscription_i18n_fr" inherit_id="easy_my_coop_website.becomecooperator" name="Removing fields">
<xpath expr="//label[@for='iban']/.." position="replace">
</xpath>
</template>
<template id="company_subscription_i18n_fr" inherit_id="easy_my_coop_website.becomecompanycooperator" name="Company Removing fields">
<xpath expr="//label[@for='iban']/.." position="replace">
</xpath>
</template>
</data>
</odoo>
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<template id="subscription_i18n_fr" inherit_id="easy_my_coop_website.becomecooperator" name="Removing fields">
<xpath expr="//label[@for='iban']/.." position="replace">
</xpath>
</template>
<template id="company_subscription_i18n_fr" inherit_id="easy_my_coop_website.becomecompanycooperator" name="Company Removing fields">
<xpath expr="//label[@for='iban']/.." position="replace">
</xpath>
</template>
</data>
</odoo>

2
easy_my_coop_loan/__init__.py

@ -1 +1 @@
from . import models
from . import models

1
easy_my_coop_loan/readme/CONTRIBUTORS.rst

@ -1,2 +1 @@
* Coop IT Easy SCRLfs

14
easy_my_coop_loan/security/ir.model.access.csv

@ -1,7 +1,7 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_loan_issue_user,loan.issue,model_loan_issue,base.group_user,1,0,0,0
access_loan_issue_manager,loan.issue,model_loan_issue,easy_my_coop.group_easy_my_coop_manager,1,1,1,0
access_loan_issue_line_user,loan.issue.line,model_loan_issue_line,base.group_user,1,0,0,0
access_loan_issue_line_manager,loan.issue.line,model_loan_issue_line,easy_my_coop.group_easy_my_coop_user,1,1,1,0
access_loan_interest_line_user,loan.interest.line,model_loan_interest_line,base.group_user,1,0,0,0
access_loan_interest_line_manager,loan.interest.line,model_loan_interest_line,easy_my_coop.group_easy_my_coop_manager,1,1,1,0
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_loan_issue_user,loan.issue,model_loan_issue,base.group_user,1,0,0,0
access_loan_issue_manager,loan.issue,model_loan_issue,easy_my_coop.group_easy_my_coop_manager,1,1,1,0
access_loan_issue_line_user,loan.issue.line,model_loan_issue_line,base.group_user,1,0,0,0
access_loan_issue_line_manager,loan.issue.line,model_loan_issue_line,easy_my_coop.group_easy_my_coop_user,1,1,1,0
access_loan_interest_line_user,loan.interest.line,model_loan_interest_line,base.group_user,1,0,0,0
access_loan_interest_line_manager,loan.interest.line,model_loan_interest_line,easy_my_coop.group_easy_my_coop_manager,1,1,1,0

2
easy_my_coop_loan/views/loan_view.xml

@ -44,7 +44,7 @@
<button name="compute_loan_interest" string="Compute interest"
type="object" states="closed,ongoing"
groups="easy_my_coop.group_easy_my_coop_manager"/>
<field name="state" widget="statusbar" statusbar_visible="draft,confirmed,ongoing,closed"/>
</header>
<sheet>

102
easy_my_coop_loan/views/partner_view.xml

@ -1,51 +1,51 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 Coop IT Easy
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-->
<odoo>
<record id="view_partner_form_loan_issue" model="ir.ui.view">
<field name="name">res.partner.form.loan.issue</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="easy_my_coop.view_partner_form_easy_my_coop"/>
<field name="arch" type="xml">
<page name="share_subscription" position="after">
<page string="Loan issue lines" name="loan_issue_lines" groups="easy_my_coop.group_easy_my_coop_user">
<group>
<field name="is_loaner"/>
</group>
<field name="loan_line_ids">
<tree>
<!-- <tree create="false" delete="false" edit="false">-->
<field name="loan_issue_id"/>
<field name="date"/>
<field name="quantity"/>
<field name="face_value"/>
<field name="amount"/>
<field name="state"/>
</tree>
</field>
</page>
</page>
</field>
</record>
<record id="view_res_partner_loaner_filter" model="ir.ui.view">
<field name="name">res.partner.select</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_res_partner_filter"/>
<field name="arch" type="xml">
<xpath expr="//filter[@name='supplier']" position='after'>
<filter string="Loaners" name="loaners" domain="[('is_loaner','=',1)]" help="Loaning Partners"/>
</xpath>
</field>
</record>
<record id="action_loaners" model="ir.actions.act_window">
<field name="name">Loaners</field>
<field name="res_model">res.partner</field>
<field name="view_type">form</field>
<field name="view_mode">kanban,tree,form</field>
<field name="context">{'search_default_loaners':1}</field>
</record>
</odoo>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2019 Coop IT Easy
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-->
<odoo>
<record id="view_partner_form_loan_issue" model="ir.ui.view">
<field name="name">res.partner.form.loan.issue</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="easy_my_coop.view_partner_form_easy_my_coop"/>
<field name="arch" type="xml">
<page name="share_subscription" position="after">
<page string="Loan issue lines" name="loan_issue_lines" groups="easy_my_coop.group_easy_my_coop_user">
<group>
<field name="is_loaner"/>
</group>
<field name="loan_line_ids">
<tree>
<!-- <tree create="false" delete="false" edit="false">-->
<field name="loan_issue_id"/>
<field name="date"/>
<field name="quantity"/>
<field name="face_value"/>
<field name="amount"/>
<field name="state"/>
</tree>
</field>
</page>
</page>
</field>
</record>
<record id="view_res_partner_loaner_filter" model="ir.ui.view">
<field name="name">res.partner.select</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_res_partner_filter"/>
<field name="arch" type="xml">
<xpath expr="//filter[@name='supplier']" position='after'>
<filter string="Loaners" name="loaners" domain="[('is_loaner','=',1)]" help="Loaning Partners"/>
</xpath>
</field>
</record>
<record id="action_loaners" model="ir.actions.act_window">
<field name="name">Loaners</field>
<field name="res_model">res.partner</field>
<field name="view_type">form</field>
<field name="view_mode">kanban,tree,form</field>
<field name="context">{'search_default_loaners':1}</field>
</record>
</odoo>

2
easy_my_coop_loan_website/__init__.py

@ -1 +1 @@
from . import controllers
from . import controllers

2
easy_my_coop_loan_website/controllers/__init__.py

@ -1 +1 @@
from . import main
from . import main

32
easy_my_coop_loan_website/data/website_loan_data.xml

@ -1,16 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="menu_subscribeloanissue" model="website.menu">
<field name="name">Subscribe to loan issue</field>
<field name="url">/subscription/loan_issue_form</field>
<field name="parent_id" ref="website.main_menu"/>
<field name="sequence" type="int">65</field>
</record>
<record id="subscribe_loan_issue_page" model="website.page">
<field name="website_published">True</field>
<field name="url">/subscription/loan_issue_form</field>
<field name="view_id" ref="menu_subscribeloanissue"/>
</record>
</data>
</odoo>
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="menu_subscribeloanissue" model="website.menu">
<field name="name">Subscribe to loan issue</field>
<field name="url">/subscription/loan_issue_form</field>
<field name="parent_id" ref="website.main_menu"/>
<field name="sequence" type="int">65</field>
</record>
<record id="subscribe_loan_issue_page" model="website.page">
<field name="website_published">True</field>
<field name="url">/subscription/loan_issue_form</field>
<field name="view_id" ref="menu_subscribeloanissue"/>
</record>
</data>
</odoo>

1
easy_my_coop_loan_website/readme/CONTRIBUTORS.rst

@ -1,2 +1 @@
* Coop IT Easy SCRLfs

18
easy_my_coop_loan_website/static/src/js/loan_issue.js

@ -1,23 +1,23 @@
odoo.define('easy_my_coop_loan_website.oe_easymy_coop_loan', function (require) {
$(document).ready(function () {
"use strict";
var ajax = require('web.ajax');
$(document).ready(function () {
"use strict";
var ajax = require('web.ajax');
$('.oe_easymy_coop_loan').each(function () {
$('.oe_easymy_coop_loan').each(function () {
var oe_easymy_coop_loan = this;
$('#loan_issue').change(function () {
var loan_issue_id = $("#loan_issue").val();
ajax.jsonRpc("/subscription/get_loan_issue", 'call', {
'loan_issue_id': loan_issue_id
'loan_issue_id': loan_issue_id,
})
.then(function (data) {
if (data !== false) {
$("#subscription_amount").prop('max',data[loan_issue_id].maximum_amount_per_sub);
$("#subscription_amount").prop('step',data[loan_issue_id].face_value);
$("#subscription_amount").prop('max', data[loan_issue_id].maximum_amount_per_sub);
$("#subscription_amount").prop('step', data[loan_issue_id].face_value);
}
});
});
$('#loan_issue').trigger('change');
});
});
});
});
});

108
easy_my_coop_loan_website/template/loan_issue_template.xml

@ -1,54 +1,54 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="assets_frontend" inherit_id="web.assets_frontend" name="Coop">
<xpath expr="." position="inside">
<script type="text/javascript" src="/easy_my_coop_loan_website/static/src/js/loan_issue.js"></script>
</xpath>
</template>
<template id="loanissuesubscription" name="Loan Issue Subscription">
<t t-call="website.layout">
<div id="wrap">
<div class="oe_structure"/>
<div class="container oe_easymy_coop_loan">
<h2 class="energie">Subscribe to Loan Issue</h2><br/>
<div class="row">
<div class="col-md-8">
<form action="/subscription/subscribe_loan_issue" method="post" class="form-horizontal mt32" enctype="multipart/form-data">
<p style="color:red;"><t t-esc="error_msg"/></p>
<input type="hidden" name="csrf_token" t-att-value="request.csrf_token()"/>
<div t-attf-class="form-group #{error and 'loan_issue_id' in error and 'has-error' or ''}">
<label class="col-md-3 col-sm-4 control-label" style="width:25%" for="share_product_id">Loan issue</label>
<select id="loan_issue" name="loan_issue_id" class="col-md-7 col-sm-8 form-control" style="width:54%;margin-left:15px">
<t t-foreach="loan_issues or []" t-as="loan_issue">
<option t-att-value="loan_issue.id" t-att-selected="loan_issue.id == int(loan_issue_id)"><t t-esc="loan_issue.name"/></option>
</t>
</select>
</div>
<div t-attf-class="form-group #{error and 'subscription_amount' in error and 'has-error' or ''}">
<label class="col-md-3 col-sm-4 control-label" style="width:25%" for="subscription_amount">Amount</label>
<input id="subscription_amount" type="number" class="col-md-7 col-sm-8 form-control total" name="subscription_amount" min="0" step="100" max="5000"/>
</div>
<table style="margin-left:195px">
<tr>
<!--<td width="80%">
<div class="g-recaptcha" t-att-data-sitekey="website.recaptcha_key_site" data-theme="green"/><br/>
</td>-->
<td>
<div class="form-group">
<div class="col-md-offset-3 col-sm-offset-4 col-sm-8 col-md-7">
<button class="btn btn-primary btn-lg">Send</button>
</div>
</div>
</td>
</tr>
</table>
</form>
</div>
</div>
</div>
</div>
</t>
</template>
</odoo>
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="assets_frontend" inherit_id="web.assets_frontend" name="Coop">
<xpath expr="." position="inside">
<script type="text/javascript" src="/easy_my_coop_loan_website/static/src/js/loan_issue.js"></script>
</xpath>
</template>
<template id="loanissuesubscription" name="Loan Issue Subscription">
<t t-call="website.layout">
<div id="wrap">
<div class="oe_structure"/>
<div class="container oe_easymy_coop_loan">
<h2 class="energie">Subscribe to Loan Issue</h2><br/>
<div class="row">
<div class="col-md-8">
<form action="/subscription/subscribe_loan_issue" method="post" class="form-horizontal mt32" enctype="multipart/form-data">
<p style="color:red;"><t t-esc="error_msg"/></p>
<input type="hidden" name="csrf_token" t-att-value="request.csrf_token()"/>
<div t-attf-class="form-group #{error and 'loan_issue_id' in error and 'has-error' or ''}">
<label class="col-md-3 col-sm-4 control-label" style="width:25%" for="share_product_id">Loan issue</label>
<select id="loan_issue" name="loan_issue_id" class="col-md-7 col-sm-8 form-control" style="width:54%;margin-left:15px">
<t t-foreach="loan_issues or []" t-as="loan_issue">
<option t-att-value="loan_issue.id" t-att-selected="loan_issue.id == int(loan_issue_id)"><t t-esc="loan_issue.name"/></option>
</t>
</select>
</div>
<div t-attf-class="form-group #{error and 'subscription_amount' in error and 'has-error' or ''}">
<label class="col-md-3 col-sm-4 control-label" style="width:25%" for="subscription_amount">Amount</label>
<input id="subscription_amount" type="number" class="col-md-7 col-sm-8 form-control total" name="subscription_amount" min="0" step="100" max="5000"/>
</div>
<table style="margin-left:195px">
<tr>
<!--<td width="80%">
<div class="g-recaptcha" t-att-data-sitekey="website.recaptcha_key_site" data-theme="green"/><br/>
</td>-->
<td>
<div class="form-group">
<div class="col-md-offset-3 col-sm-offset-4 col-sm-8 col-md-7">
<button class="btn btn-primary btn-lg">Send</button>
</div>
</div>
</td>
</tr>
</table>
</form>
</div>
</div>
</div>
</div>
</t>
</template>
</odoo>

1
easy_my_coop_taxshelter_report/readme/CONTRIBUTORS.rst

@ -1,2 +1 @@
* Coop IT Easy SCRLfs

2
easy_my_coop_website/__init__.py

@ -1 +1 @@
from . import controllers
from . import controllers

1
easy_my_coop_website/readme/CONTRIBUTORS.rst

@ -1,2 +1 @@
* Coop IT Easy SCRLfs

232
easy_my_coop_website/views/subscription_template.xml

@ -6,7 +6,7 @@
<script type="text/javascript" src="/easy_my_coop/static/src/js/jquery.inputmask.bundle.js"></script>
</xpath>
</template>
<template id="company_operational_offices" inherit_id="website.company_description" name="Company Description">
<address itemscope="itemscope" position="inside">
<div class="fa fa-building-o" t-field="res_company.company_registry"/><br/>
@ -15,7 +15,7 @@
</t>
</address>
</template>
<template id="cooperator_thanks" name="Cooperator contact us">
<t t-call="website.layout">
<div id="wrap">
@ -45,7 +45,7 @@
</div>
</t>
</template>
<template id="becomecooperator" name="Become Cooperator">
<t t-call="website.layout">
<div id="wrap">
@ -54,52 +54,52 @@
<h2 class="energie">Become Cooperator</h2><br/>
<div class="row">
<div class="col-md-8">
<form action="/subscription/subscribe_share" method="post" class="form-horizontal mt32" enctype="multipart/form-data">
<form action="/subscription/subscribe_share" method="post" class="form-horizontal mt32" enctype="multipart/form-data">
<p style="color:red;"><t t-esc="error_msg"/></p>
<input type="hidden" name="csrf_token" t-att-value="request.csrf_token()"/>
<div t-attf-class="form-group">
<a class='btn btn-primary' t-if="logged" t-attf-href="/my/account">You want to modify your personnal information ?</a>
<br/>
</div>
<div t-attf-class="form-group">
<a class='btn btn-primary' t-if="not logged" t-attf-href="/web/login?redirect=#{ request.httprequest.url }">You have already an account?</a>
<br/>
</div>
<div t-attf-class="form-group" style="display: none;">
<label>
<input type="checkbox" t-att-checked="logged" name="logged"/>
Logged
</label>
</div>
<div t-attf-class="form-group" style="display: none;">
<label>
<input type="checkbox" t-att-checked="already_cooperator" name="already_cooperator" />
Already cooperator?
</label>
</div>
<div name="email_from_container" t-attf-class="form-group #{error and 'email_from' in error and 'has-error' or ''}">
<label class="col-md-3 col-sm-4 control-label" for="email">Email</label>
<div class="col-md-7 col-sm-8 bottom-line" style="padding-bottom:20px">
<input type="email" class="form-control mandatory-field" name="email"
required="True" t-att-readonly="logged"
required="True" t-att-readonly="logged"
t-attf-value="#{email or ''}" placeholder="didier.bourdon@bees-coop.be"/>
</div>
</div>
<div t-if="not logged" name="confirm_email_container" t-attf-class="form-group #{error and 'email_from' in error and 'has-error' or ''}">
<label class="col-md-3 col-sm-4 control-label" for="confirm_email">Confirm Email</label>
<div class="col-md-7 col-sm-8 bottom-line" style="padding-bottom:20px">
<input type="confirm_email" class="form-control mandatory-field" name="confirm_email"
<input type="confirm_email" class="form-control mandatory-field" name="confirm_email"
t-att-required="logged" t-att-readonly="logged"
t-attf-value="#{confirm_email or ''}" placeholder="didier.bourdon@bees-coop.be"/>
</div>
</div>
<div t-attf-class="form-group #{error and 'firstname' in error and 'has-error' or ''}">
<label class="col-md-3 col-sm-4 control-label" for="firstname">First Name</label>
<div class="col-md-7 col-sm-8" style="padding-top:5px">
@ -107,16 +107,16 @@
required="True" t-att-readonly="logged"
t-attf-value="#{firstname or ''}" placeholder="Didier"/>
</div>
</div>
</div>
<div t-attf-class="form-group #{error and 'lastname' in error and 'has-error' or ''}">
<label class="col-md-3 col-sm-4 control-label" for="lastname">Last Name</label>
<div class="col-md-7 col-sm-8">
<input type="text" class="form-control mandatory-field" name="lastname"
required="True" t-att-readonly="logged" t-attf-value="#{lastname or ''}" placeholder="Bourdon"/>
</div>
</div>
</div>
<div t-attf-class="form-group #{error and 'gender' in error and 'has-error' or ''}">
<label class="col-md-3 col-sm-4 control-label" for="gender">Gender</label>
<select name="gender" class="col-md-7 col-sm-8 form-control"
@ -128,7 +128,7 @@
</t>
</select>
</div>
<div t-attf-class="form-group #{error and 'birthdate' in error and 'has-error' or ''}">
<label class="col-md-3 col-sm-4 control-label" for="birthdate">Birthdate</label>
<div class="col-md-7 col-sm-8">
@ -137,7 +137,7 @@
t-attf-value="#{birthdate or ''}" placeholder="05/03/1978"/>
</div>
</div>
<div t-attf-class="form-group #{error and 'iban' in error and 'has-error' or ''}">
<label class="col-md-3 col-sm-4 control-label" for="iban">Bank Account Number</label>
<div class="col-md-7 col-sm-8">
@ -145,20 +145,20 @@
required="True" t-att-readonly="logged" t-attf-value="#{iban or ''}" placeholder="BE48523080767127"/>
</div>
</div>
<div t-attf-class="form-group #{error and 'lang' in error and 'has-error' or ''}" >
<label class="col-md-3 col-sm-4 control-label" style="width:25%" for="lang">Language</label>
<select name="lang" class="col-md-7 col-sm-8 form-control "
<select name="lang" class="col-md-7 col-sm-8 form-control "
t-att-readonly="logged" style="width:30%;margin-left:15px">
<option value="2">Language...</option>
<t t-foreach="langs or []" t-as="langue">
<option t-att-value="langue.code" t-att-selected="langue.code == lang"><t t-esc="langue.name"/></option>
</t>
</select>
<br/>
<div class="bottom-line" style="margin-left:25%;margin-top:35px;width:59%"></div>
<br/>
<div class="bottom-line" style="margin-left:25%;margin-top:35px;width:59%"></div>
</div>
<div t-attf-class="form-group #{error and 'address' in error and 'has-error' or ''}">
<label class="col-md-3 col-sm-4 control-label" for="address">Address</label>
<div class="col-md-7 col-sm-8">
@ -166,12 +166,12 @@
required="True" t-att-readonly="logged"
t-attf-value="#{address or ''}" placeholder="rue Van Hove, 19"/>
</div>
</div>
</div>
<div t-attf-class="form-group #{error and 'zip_code' in error and 'has-error' or ''}">
<label class="col-md-3 col-sm-4 control-label" for="zip_code">City</label>
<div class="col-md-7 col-sm-8">
<table>
<table>
<tr>
<td width="20%">
<input type="text" class="form-control mandatory-field" name="zip_code"
@ -183,12 +183,12 @@
<input type="text" class="form-control mandatory-field" name="city"
required="True" t-att-readonly="logged"
t-attf-value="#{city or ''}" placeholder="Bruxelles"/>
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
</div>
</div>
<div t-attf-class="form-group #{error and 'country_id' in error and 'has-error' or ''}">
<label class="col-md-3 col-sm-4 control-label" style="width:25%" for="country_id">Country</label>
<select name="country_id" class="col-md-7 col-sm-8 form-control " t-att-readonly="logged" style="width:54%;margin-left:15px">
@ -198,15 +198,15 @@
</t>
</select>
</div>
<div t-attf-class="form-group #{error and 'phone' in error and 'has-error' or ''}">
<label class="col-md-3 col-sm-4 control-label" for="phone">Phone</label>
<div class="col-md-7 col-sm-8 bottom-line" style="padding-bottom:20px">
<input type="text" class="form-control" name="phone"
required="True" t-att-readonly="logged" t-attf-value="#{phone or ''}" placeholder="e.g. (+32).81.81.37.00"/>
</div>
</div>
</div>
<div t-attf-class="form-group #{error and 'share_product_id' in error and 'has-error' or ''}">
<label class="col-md-3 col-sm-4 control-label" style="width:25%" for="share_product_id">Parts type</label>
<select id="share_product_id" name="share_product_id" class="col-md-7 col-sm-8 form-control " style="width:54%;margin-left:15px">
@ -215,13 +215,13 @@
</t>
</select>
</div>
<div name="share_div" class="form-group">
<table style="width:80%">
<table style="width:80%">
<tr>
<td width="30%">
<label style="text-align:right; width:100%;padding-right:30px">Parts number</label>
</td>
<label style="text-align:right; width:100%;padding-right:30px">Parts number</label>
</td>
<td width="15%">
<div class="css_quantity input-group oe_website_spinner">
<span class="input-group-addon" style="margin-left:0px">
@ -245,26 +245,26 @@
<div style="margin-top:12px" t-attf-class="form-group #{error and 'total_parts' in error and 'has-error' or ''}">
<div>
<input type="text" class="form-control total" name="total_parts" value="25" t-att-data-max="company.subscription_maximum_amount"
t-att-readonly="'readonly'"
t-att-readonly="'readonly'"
/>
</div>
</div>
</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</div>
<div t-if="res_company.allow_id_card_upload" t-attf-class="form-group #{error and 'file' in error and 'has-error' or ''}">
<label class="col-md-3 col-sm-4 control-label" style="width:25%" for="file">Idendity card scan</label>
<div class="col-md-7 col-sm-8">
<input type="file" class="form-control" name="Resume" t-attf-value="#{file or ''}" style="width:50%"/>
</div>
</div>
<div class="bottom-line" style="margin-left:178px;margin-top:0px;width:61%"></div>
<div class="bottom-line" style="margin-left:178px;margin-top:0px;width:61%"></div>
<br/>
<div id="data_policy_approved" t-if="display_data_policy" t-attf-class="form-group" >
<label class="col-md-3 col-sm-4 control-label" for="data_policy_approved">Privacy Policy</label>
<div class="col-md-9 col-sm-8">
@ -279,7 +279,7 @@
</div>
</div>
</div>
<div id="internal_rules_approved" t-if="display_internal_rules" t-attf-class="form-group" >
<label class="col-md-3 col-sm-4 control-label" for="internal_rules_approved">Internal Rules</label>
<div class="col-md-9 col-sm-8">
@ -293,11 +293,11 @@
</label>
</div>
</div>
</div>
</div>
<table style="margin-left:195px">
<tr>
<td width="80%">
<div class="g-recaptcha" t-att-data-sitekey="website.recaptcha_key_site" data-theme="green"/><br/>
<div class="g-recaptcha" t-att-data-sitekey="website.recaptcha_key_site" data-theme="green"/><br/>
</td>
<td>
<div class="form-group">
@ -305,11 +305,11 @@
<button class="btn btn-primary btn-lg">Send</button>
</div>
</div>
</td>
</tr>
</table>
<br/>
</td>
</tr>
</table>
<br/>
</form>
</div>
</div>
@ -318,7 +318,7 @@
</div>
</t>
</template>
<template id="becomecompanycooperator" name="Become Cooperator">
<t t-call="website.layout">
<div id="wrap">
@ -327,10 +327,10 @@
<h2 class="energie">Become Cooperator</h2><br/>
<div class="row">
<div class="col-md-8">
<form action="/subscription/subscribe_share" method="post" class="form-horizontal mt32" enctype="multipart/form-data">
<form action="/subscription/subscribe_share" method="post" class="form-horizontal mt32" enctype="multipart/form-data">
<p style="color:red;"><t t-esc="error_msg"/></p>
<input type="hidden" name="csrf_token" t-att-value="request.csrf_token()"/>
<div t-attf-class="form-group" style="display: none;">
<label>
<input type="checkbox" t-att-checked="logged" name="logged"/>
@ -341,13 +341,13 @@
Is a company?
</label>
</div>
<div t-attf-class="form-group">
<label>
Company Info
</label>
</div>
<div t-attf-class="form-group #{error and 'company_register_number' in error and 'has-error' or ''}">
<label class="col-md-3 col-sm-4 control-label" for="company_register_number">Company Register Number</label>
<div class="col-md-7 col-sm-8">
@ -356,7 +356,7 @@
t-attf-value="#{company_register_number or ''}" placeholder="0647980091"/>
</div>
</div>
<div t-attf-class="form-group #{error and 'company_name' in error and 'has-error' or ''}">
<label class="col-md-3 col-sm-4 control-label" for="company_name">Company name</label>
<div class="col-md-7 col-sm-8">
@ -365,7 +365,7 @@
t-attf-value="#{company_name or ''}" placeholder="La super coopérative"/>
</div>
</div>
<div t-attf-class="form-group #{error and 'company_type' in error and 'has-error' or ''}">
<label class="col-md-3 col-sm-4 control-label" for="company_type">Company type</label>
<select name="company_type" class="col-md-7 col-sm-8 form-control"
@ -377,7 +377,7 @@
</t>
</select>
</div>
<div t-attf-class="form-group #{error and 'company_email' in error and 'has-error' or ''}">
<label class="col-md-3 col-sm-4 control-label" for="company_email">Company email</label>
<div class="col-md-7 col-sm-8">
@ -387,7 +387,7 @@
<div t-if="not logged" t-attf-class="form-group #{error and 'email_from' in error and 'has-error' or ''}">
<label class="col-md-3 col-sm-4 control-label" for="confirm_email">Confirm Email</label>
<div class="col-md-7 col-sm-8 bottom-line" style="padding-bottom:20px">
<input type="confirm_email" class="form-control mandatory-field" name="confirm_email"
<input type="confirm_email" class="form-control mandatory-field" name="confirm_email"
t-att-required="not logged" t-att-readonly="logged"
t-attf-value="#{confirm_email or ''}" placeholder="didier.bourdon@bees-coop.be"/>
</div>
@ -400,14 +400,14 @@
t-attf-value="#{iban or ''}" placeholder="BE48523080767127"/>
</div>
</div>
<br/>
<div t-attf-class="form-group">
<label>
Main Address
</label>
</div>
<div t-attf-class="form-group #{error and 'address' in error and 'has-error' or ''}">
<label class="col-md-3 col-sm-4 control-label" for="address">Address</label>
<div class="col-md-7 col-sm-8">
@ -415,12 +415,12 @@
required="True" t-att-readonly="logged"
t-attf-value="#{address or ''}" placeholder="rue Van Hove, 19"/>
</div>
</div>
</div>
<div t-attf-class="form-group #{error and 'zip_code' in error and 'has-error' or ''}">
<label class="col-md-3 col-sm-4 control-label" for="zip_code">City</label>
<div class="col-md-7 col-sm-8">
<table>
<table>
<tr>
<td width="20%">
<input type="text" class="form-control mandatory-field" name="zip_code"
@ -432,14 +432,14 @@
<input type="text" class="form-control mandatory-field" name="city"
required="True" t-att-readonly="logged"
t-attf-value="#{city or ''}" placeholder="Bruxelles"/>
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
</div>
</div>
<div t-attf-class="form-group #{error and 'country_id' in error and 'has-error' or ''}">
<label class="col-md-3 col-sm-4 control-label" style="width:25%" for="country_id">Country</label>
<select name="country_id" class="col-md-7 col-sm-8 form-control"
t-att-readonly="logged" style="width:54%;margin-left:15px">
@ -455,7 +455,7 @@
Contact Person
</label>
</div>
<div t-attf-class="form-group #{error and 'firstname' in error and 'has-error' or ''}">
<label class="col-md-3 col-sm-4 control-label" for="firstname">First Name</label>
<div class="col-md-7 col-sm-8" style="padding-top:5px">
@ -463,8 +463,8 @@
required="True" t-att-readonly="logged"
t-attf-value="#{firstname or ''}" placeholder="Didier"/>
</div>
</div>
</div>
<div t-attf-class="form-group #{error and 'lastname' in error and 'has-error' or ''}">
<label class="col-md-3 col-sm-4 control-label" for="lastname">Last Name</label>
<div class="col-md-7 col-sm-8">
@ -472,8 +472,8 @@
required="True" t-att-readonly="logged"
t-attf-value="#{lastname or ''}" placeholder="Bourdon"/>
</div>
</div>
</div>
<div t-attf-class="form-group #{error and 'gender' in error and 'has-error' or ''}">
<label class="col-md-3 col-sm-4 control-label" for="gender">Gender</label>
<select name="gender" class="col-md-7 col-sm-8 form-control"
@ -484,7 +484,7 @@
</t>
</select>
</div>
<div name="email_from_container" t-attf-class="form-group #{error and 'email_from' in error and 'has-error' or ''}">
<label class="col-md-3 col-sm-4 control-label" for="email">Email</label>
<div class="col-md-7 col-sm-8 bottom-line" style="padding-bottom:20px">
@ -493,7 +493,7 @@
t-attf-value="#{email or ''}" placeholder="didier.bourdon@bees-coop.be"/>
</div>
</div>
<div t-attf-class="form-group #{error and 'phone' in error and 'has-error' or ''}">
<label class="col-md-3 col-sm-4 control-label" for="phone">Phone</label>
<div class="col-md-7 col-sm-8 bottom-line" style="padding-bottom:20px">
@ -502,27 +502,27 @@
t-attf-value="#{phone or ''}" placeholder="e.g. (+32).81.81.37.00"/>
</div>
</div>
<div t-attf-class="form-group #{error and 'contact_person_function' in error and 'has-error' or ''}">
<label class="col-md-3 col-sm-4 control-label" for="contact_person_function">Function</label>
<div class="col-md-7 col-sm-8">
<input type="text" class="form-control mandatory-field" name="contact_person_function"
required="True" t-att-readonly="logged"
required="True" t-att-readonly="logged"
t-attf-value="#{contact_person_function or ''}"/>
</div>
</div>
</div>
<div t-attf-class="form-group #{error and 'birthday' in error and 'has-error' or ''}">
<label class="col-md-3 col-sm-4 control-label" for="birthdate">Birthdate</label>
<div class="col-md-7 col-sm-8">
<input type="text" data-inputmask="'alias': 'date'" class="form-control mandatory-field"
name="birthdate" required="True" t-att-readonly="logged"
name="birthdate" required="True" t-att-readonly="logged"
t-attf-value="#{birthdate or ''}" placeholder="05/03/1978"/>
</div>
</div>
<div t-attf-class="form-group #{error and 'lang' in error and 'has-error' or ''}" >
<label class="col-md-3 col-sm-4 control-label" style="width:25%" for="lang">Language</label>
<select name="lang" class="col-md-7 col-sm-8 form-control"
t-att-readonly="logged" style="width:30%;margin-left:15px">
@ -531,12 +531,12 @@
<option t-att-value="langue.code" t-att-selected="langue.code == lang"><t t-esc="langue.name"/></option>
</t>
</select>
<br/>
<div class="bottom-line" style="margin-left:25%;margin-top:35px;width:59%"></div>
<br/>
<div class="bottom-line" style="margin-left:25%;margin-top:35px;width:59%"></div>
</div>
<div t-attf-class="form-group #{error and 'product_id' in error and 'has-error' or ''}">
<label class="col-md-3 col-sm-4 control-label" style="width:25%" for="share_product_id">Parts type</label>
<select id="share_product_id" name="share_product_id" class="col-md-7 col-sm-8 form-control " style="width:54%;margin-left:15px">
<t t-foreach="products or []" t-as="product">
@ -545,11 +545,11 @@
</select>
</div>
<div name="share_div" class="form-group">
<table style="width:80%">
<table style="width:80%">
<tr>
<td width="30%">
<label style="text-align:right; width:100%;padding-right:30px">Parts number</label>
</td>
<label style="text-align:right; width:100%;padding-right:30px">Parts number</label>
</td>
<td width="15%">
<div class="css_quantity input-group oe_website_spinner">
<span class="input-group-addon" style="margin-left:0px">
@ -573,18 +573,18 @@
<div style="margin-top:12px" t-attf-class="form-group #{error and 'total_parts' in error and 'has-error' or ''}">
<div>
<input type="text" class="form-control total" name="total_parts" value="25" data-max="5000"
t-att-readonly="'readonly'"
t-att-readonly="'readonly'"
/>
</div>
</div>
</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</div>
<div class="bottom-line" style="margin-left:178px;margin-top:0px;width:61%"></div>
<div class="bottom-line" style="margin-left:178px;margin-top:0px;width:61%"></div>
<br/>
<div id="data_policy_approved" t-if="display_data_policy" t-attf-class="form-group" >
<label class="col-md-3 col-sm-4 control-label" for="data_policy_approved">Privacy Policy</label>
<div class="col-md-9 col-sm-8">
@ -599,7 +599,7 @@
</div>
</div>
</div>
<div id="internal_rules_approved" t-if="display_internal_rules" t-attf-class="form-group" >
<label class="col-md-3 col-sm-4 control-label" for="internal_rules_approved">Internal Rules</label>
<div class="col-md-9 col-sm-8">
@ -618,7 +618,7 @@
<table style="margin-left:195px">
<tr>
<td width="80%">
<div class="g-recaptcha" t-att-data-sitekey="website.recaptcha_key_site" data-theme="green"/><br/>
<div class="g-recaptcha" t-att-data-sitekey="website.recaptcha_key_site" data-theme="green"/><br/>
</td>
<td>
<div class="form-group">
@ -626,11 +626,11 @@
<button class="btn btn-primary btn-lg">Send</button>
</div>
</div>
</td>
</tr>
</table>
<br/>
</td>
</tr>
</table>
<br/>
</form>
</div>
</div>
@ -639,20 +639,20 @@
</div>
</t>
</template>
<record id="menu_becomecooperator" model="website.menu">
<field name="name">Become cooperator</field>
<field name="url">/page/become_cooperator</field>
<field name="parent_id" ref="website.main_menu"/>
<field name="sequence" type="int">65</field>
</record>
<!--<template id="footer_coop_email_contact" inherit_id="website.footer_default" customize_show="True" name="Coop email contact">
<xpath expr="//span[@t-field='res_company.email']" position="replace">
<span t-field="res_company.coop_email_contact"></span>
</xpath>
</template>-->
<template id="company_description_coop_email_contact" inherit_id="website.company_description" name="Company Description Email Contact">
<xpath expr="//div[@t-field='res_company.partner_id']" position="replace">
<div t-field="res_company.partner_id" t-field-options='{

1
easy_my_coop_website_portal/__init__.py

@ -1,2 +1 @@
# -*- coding: utf8 -*-
from . import controllers

1
easy_my_coop_website_portal/controllers/__init__.py

@ -1,2 +1 @@
# -*- coding: utf-8 -*-
from . import main

1
easy_my_coop_website_portal/readme/CONTRIBUTORS.rst

@ -1,2 +1 @@
* Coop IT Easy SCRLfs

4
easy_my_coop_website_portal/views/easy_my_coop_website_portal_templates.xml

@ -35,7 +35,7 @@
</div>
</xpath>
</template>
<!-- Add cooperator information -->
<template
id="website_portal_details_form"
@ -119,7 +119,7 @@
</xpath>
</template>
<template id="portal_my_home_menu_capital_request" name="Portal layout : capital request menu entries" inherit_id="portal.portal_breadcrumbs" priority="30">
<xpath expr="//ol[hasclass('o_portal_submenu')]" position="inside">
<li t-if="page_name == 'capital request'" t-attf-class="breadcrumb-item #{'active ' if not capital_requests else ''}">

1
easy_my_coop_website_taxshelter/__init__.py

@ -1,2 +1 @@
# -*- coding: utf8 -*-
from . import controllers

1
easy_my_coop_website_taxshelter/controllers/__init__.py

@ -1,2 +1 @@
# -*- coding: utf-8 -*-
from . import main

1
easy_my_coop_website_taxshelter/readme/CONTRIBUTORS.rst

@ -1,2 +1 @@
* Coop IT Easy SCRLfs

2
partner_age/__init__.py

@ -1 +1 @@
from . import models
from . import models

2
partner_age/models/__init__.py

@ -1 +1 @@
from . import partner
from . import partner

1
partner_age/readme/CONTRIBUTORS.rst

@ -1,2 +1 @@
* Coop IT Easy SCRLfs

48
partner_age/view/partner_view.xml

@ -1,24 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="view_partner_from_age" model="ir.ui.view">
<field name="name">res.partner.form.age</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="easy_my_coop.view_partner_form_easy_my_coop"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='birthdate_date']" position='after'>
<field name="age" attrs="{'invisible':[('is_company','=',True)]}"/>
</xpath>
</field>
</record>
<record id="view_partner_tree_age" model="ir.ui.view">
<field name="name">res.partner.tree.easy_my_coop</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="easy_my_coop.view_partner_tree_easy_my_coop"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='cooperator_type']" position='after'>
<field name="age"/>
</xpath>
</field>
</record>
</odoo>
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="view_partner_from_age" model="ir.ui.view">
<field name="name">res.partner.form.age</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="easy_my_coop.view_partner_form_easy_my_coop"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='birthdate_date']" position='after'>
<field name="age" attrs="{'invisible':[('is_company','=',True)]}"/>
</xpath>
</field>
</record>
<record id="view_partner_tree_age" model="ir.ui.view">
<field name="name">res.partner.tree.easy_my_coop</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="easy_my_coop.view_partner_tree_easy_my_coop"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='cooperator_type']" position='after'>
<field name="age"/>
</xpath>
</field>
</record>
</odoo>

1
theme_light/readme/CONTRIBUTORS.rst

@ -1,2 +1 @@
* Coop IT Easy SCRLfs

66
theme_light/report/header_report_G002.xml

@ -2,7 +2,7 @@
<odoo>
<template id="theme_light.invoice_header_G002">
<table style="width: 100%;font-size:10px">
<tr height="30px">
<tr height="30px">
<td style="width:20%;padding-right:15px" rowspan="4">
<img t-if="o.company_id.logo" t-att-src="'data:image/png;base64,%s' % o.company_id.logo" style="max-height: 100px;"/>
</td>
@ -17,26 +17,26 @@
<img src="theme_light/static/img/gallery/www_green.png" style="max-height: 30px;padding-bottom:10px"/>
</td>
</tr>
<tr height="20px">
<td style="font-size:14px"></td>
<td>
<span t-field="o.company_id.partner_id.street"/>
<span t-field="o.company_id.partner_id.street"/>
</td>
<td>
<span>Phone</span>
<span t-field="o.company_id.partner_id.phone"/>
<span t-field="o.company_id.partner_id.phone"/>
</td>
<td>
<span t-field="o.company_id.partner_id.website"/>
<span t-field="o.company_id.partner_id.website"/>
</td>
</tr>
<tr style="vertical-align:top" height="20px">
<td style="vertical-align:middle"></td>
<td style="vertical-align:middle">
<span t-field="o.company_id.partner_id.zip"/> -
<span t-field="o.company_id.partner_id.city"/>
<span t-field="o.company_id.partner_id.zip"/> -
<span t-field="o.company_id.partner_id.city"/>
</td>
<td style="vertical-align:middle">
<span>Fax</span>
@ -44,7 +44,7 @@
</td>
</tr>
<tr>
<td></td>
<td style="vertical-align:top">
<span t-field="o.company_id.partner_id.country_id.name"/>
@ -52,7 +52,7 @@
<td></td>
</tr>
<tr>
<td colspan="2"><span style="margin-left:10px" t-field="o.company_id.rml_header1"/> </td>
<td colspan="2"><span style="margin-left:10px" t-field="o.company_id.rml_header1"/> </td>
<td style="vertical-align:bottom">
<span t-field="o.company_id.partner_id.vat"/>
</td>
@ -63,9 +63,9 @@
</template>
<template id="theme_light.invoice_header_P002">
<table style="width: 100%;font-size:10px">
<tr height="30px">
<tr height="30px">
<td style="width:20%;padding-right:15px" rowspan="4">
<img t-if="o.company_id.logo" t-att-src="'data:image/png;base64,%s' % o.company_id.logo" style="max-height: 100px;"/>
</td>
@ -80,26 +80,26 @@
<img src="theme_light/static/img/gallery/www_purple.png" style="max-height: 30px;padding-bottom:10px"/>
</td>
</tr>
<tr height="20px">
<td style="font-size:14px"></td>
<td>
<span t-field="o.company_id.partner_id.street"/>
<span t-field="o.company_id.partner_id.street"/>
</td>
<td>
<span>Phone</span>
<span t-field="o.company_id.partner_id.phone"/>
<span t-field="o.company_id.partner_id.phone"/>
</td>
<td>
<span t-field="o.company_id.partner_id.website"/>
<span t-field="o.company_id.partner_id.website"/>
</td>
</tr>
<tr style="vertical-align:top" height="20px">
<td style="vertical-align:middle"></td>
<td style="vertical-align:middle">
<span t-field="o.company_id.partner_id.zip"/> -
<span t-field="o.company_id.partner_id.city"/>
<span t-field="o.company_id.partner_id.zip"/> -
<span t-field="o.company_id.partner_id.city"/>
</td>
<td style="vertical-align:middle">
<span>Fax</span>
@ -107,7 +107,7 @@
</td>
</tr>
<tr>
<td></td>
<td style="vertical-align:top">
<span t-field="o.company_id.partner_id.country_id.name"/>
@ -115,7 +115,7 @@
<td></td>
</tr>
<tr>
<td colspan="2"><span style="margin-left:10px" t-field="o.company_id.rml_header1"/> </td>
<td colspan="2"><span style="margin-left:10px" t-field="o.company_id.rml_header1"/> </td>
<td style="vertical-align:bottom">
<span t-field="o.company_id.partner_id.vat"/>
</td>
@ -124,10 +124,10 @@
</tr>
</table>
</template>
<template id="theme_light.list_header_G002">
<table style="width: 100%;font-size:10px">
<tr height="30px">
<tr height="30px">
<td style="width:20%;padding-right:15px" rowspan="4">
<img t-if="res_company.logo" t-att-src="'data:image/png;base64,%s' % res_company.logo" style="max-height: 100px;"/>
</td>
@ -142,26 +142,26 @@
<img src="theme_light/static/img/gallery/www_green.png" style="max-height: 30px;padding-bottom:10px"/>
</td>
</tr>
<tr height="20px">
<td style="font-size:14px"></td>
<td>
<span t-field="res_company.partner_id.street"/>
<span t-field="res_company.partner_id.street"/>
</td>
<td>
<span>Phone</span>
<span t-field="res_company.partner_id.phone"/>
<span t-field="res_company.partner_id.phone"/>
</td>
<td>
<span t-field="res_company.partner_id.website"/>
<span t-field="res_company.partner_id.website"/>
</td>
</tr>
<tr style="vertical-align:top" height="20px">
<td style="vertical-align:middle"></td>
<td style="vertical-align:middle">
<span t-field="res_company.partner_id.zip"/> -
<span t-field="res_company.partner_id.city"/>
<span t-field="res_company.partner_id.zip"/> -
<span t-field="res_company.partner_id.city"/>
</td>
<td style="vertical-align:middle">
<span>Fax</span>
@ -169,7 +169,7 @@
</td>
</tr>
<tr>
<td></td>
<td style="vertical-align:top">
<span t-field="res_company.partner_id.country_id.name"/>
@ -177,7 +177,7 @@
<td></td>
</tr>
<tr>
<td colspan="2"><span style="margin-left:10px" t-field="res_company.rml_header1"/> </td>
<td colspan="2"><span style="margin-left:10px" t-field="res_company.rml_header1"/> </td>
<td style="vertical-align:bottom">
<span t-field="res_company.partner_id.vat"/>
</td>
@ -185,5 +185,5 @@
<td></td>
</tr>
</table>
</template>
</template>
</odoo>

4
theme_light/static/css/global_theme.sass

@ -3,7 +3,7 @@
@import "compass/css3"
.particle_banner
position: relative
position: relative
overflow: hidden
.container
width: 100%
@ -17,5 +17,3 @@
color: rgba(255,255,255,0.6)
+text-shadow(0 0 5px rgba(0,0,0,.5))
font-size: 3em

26
theme_light/static/css/invoice_B001.css

@ -7,17 +7,17 @@ html {
-webkit-text-size-adjust: 100%;
}
body {
font-family:Montserrat-Regular;
font-family:Montserrat-Regular;
margin: 0;
color: #000
}
address {
font-family:Lato-Regular;
font-family:Lato-Regular;
font-size: 18px;
}
address::first-line {
address::first-line {
font-weight:bold;
color: #000;
}
@ -36,7 +36,7 @@ address::first-line {
padding-top: 15px;
width: 150px;
}
.info_table {
margin-top:20px;
border: 2px ridge #009ceb;
@ -44,7 +44,7 @@ address::first-line {
border-spacing: 3px;
}
.info_table th {
color: white;
text-align: center;
@ -54,7 +54,7 @@ address::first-line {
vertical-align:middle;
font-size: 12px;
}
.info_table td {
font-family:Lato-Regular;
text-align: center;
@ -87,9 +87,9 @@ div h4 {
font-family:Lato-Regular;
vertical-align : middle;
}
.tva_table {
margin-top:20px;
border: 2px ridge #009ceb;
@ -100,8 +100,8 @@ div h4 {
.tva_table th {
color : #009ceb;
text-align: center ;
border-bottom: #009ceb 1px solid;
}
border-bottom: #009ceb 1px solid;
}
.standard_line {
@ -126,9 +126,9 @@ div h4 {
}
.lgn_pair{
background-color:#e2f4fd;
}
@ -158,4 +158,4 @@ div h4 {
font-style: normal;
font-weight: 400;
src: local('Lato Regular'), url('/theme_light/static/font/Lato-Regular.ttf') format('truetype');
}
}

32
theme_light/static/css/invoice_B002.css

@ -7,7 +7,7 @@ html {
-webkit-text-size-adjust: 100%;
}
body {
font-family:Montserrat-Regular;
font-family:Montserrat-Regular;
margin: 0;
color: #000
}
@ -16,7 +16,7 @@ address {
}
address::first-line {
address::first-line {
font-weight:bold;
color: #000;
}
@ -31,17 +31,17 @@ address::first-line {
font-size: 36px;
padding-bottom: 10px;
text-align : right;
}
.color_text {
color:#009ceb;
}
.color_background {
background-color:#009ceb;
}
.white_line_border {
background-color:#ffffff;
@ -56,7 +56,7 @@ address::first-line {
border-spacing: 3px;
}
.info_table th {
color: white;
text-align: center;
@ -66,7 +66,7 @@ address::first-line {
vertical-align:middle;
font-size: 12px;
}
.info_table td {
text-align: center;
height: 25px;
@ -98,7 +98,7 @@ div h4 {
border-collapse: separate;
border-spacing: 2px;
background-color : #e2f4fd;
padding-right:5px;
padding-right:5px;
}
.total_table {
@ -111,7 +111,7 @@ div h4 {
border-collapse: separate;
border-spacing: 2px;
background-color : #e2f4fd;
padding-right:5px;
padding-right:5px;
}
.total_table td {
@ -120,9 +120,9 @@ div h4 {
border-collapse: separate;
border-spacing: 2px;
background-color : #009ceb;
padding-right:5px;
padding-right:5px;
}
.tva_table {
margin-top:20px;
border: 2px ridge #009ceb;
@ -133,8 +133,8 @@ div h4 {
.tva_table th {
color : #009ceb;
text-align: center ;
border-bottom: #009ceb 1px solid;
}
border-bottom: #009ceb 1px solid;
}
.orange_line {
@ -159,9 +159,9 @@ div h4 {
}
.lgn_pair{
background-color:#e2f4fd;
}
@ -191,4 +191,4 @@ div h4 {
font-style: normal;
font-weight: 400;
src: local('Lato Regular'), url('/theme_light/static/font/Lato-Regular.ttf') format('truetype');
}
}

26
theme_light/static/css/invoice_G001.css

@ -7,17 +7,17 @@ html {
-webkit-text-size-adjust: 100%;
}
body {
font-family:Montserrat-Regular;
font-family:Montserrat-Regular;
margin: 0;
color: #000
}
address {
font-family:Lato-Regular;
font-family:Lato-Regular;
font-size: 18px;
}
address::first-line {
address::first-line {
font-weight:bold;
color: #000;
}
@ -36,7 +36,7 @@ address::first-line {
padding-top: 15px;
width: 150px;
}
.info_table {
margin-top:20px;
border: 2px ridge #53cf00;
@ -44,7 +44,7 @@ address::first-line {
border-spacing: 3px;
}
.info_table th {
color: white;
text-align: center;
@ -54,7 +54,7 @@ address::first-line {
vertical-align:middle;
font-size: 12px;
}
.info_table td {
font-family:Lato-Regular;
text-align: center;
@ -87,9 +87,9 @@ div h4 {
font-family:Lato-Regular;
vertical-align : middle;
}
.tva_table {
margin-top:20px;
border: 2px ridge #53cf00;
@ -100,8 +100,8 @@ div h4 {
.tva_table th {
color : #53cf00;
text-align: center ;
border-bottom: #53cf00 1px solid;
}
border-bottom: #53cf00 1px solid;
}
.standard_line {
@ -126,9 +126,9 @@ div h4 {
}
.lgn_pair{
background-color:#def1d1;
}
@ -158,4 +158,4 @@ div h4 {
font-style: normal;
font-weight: 400;
src: local('Lato Regular'), url('/theme_light/static/font/Lato-Regular.ttf') format('truetype');
}
}

48
theme_light/static/css/invoice_G002.css

@ -7,7 +7,7 @@ html {
-webkit-text-size-adjust: 100%;
}
body {
font-family:Montserrat-Regular;
font-family:Montserrat-Regular;
margin: 0;
color: #000
}
@ -16,7 +16,7 @@ address {
}
address::first-line {
address::first-line {
font-weight:bold;
color: #000;
}
@ -24,8 +24,8 @@ address::first-line {
.title_table {
width: 100%;
border-bottom: #53cf00 1px solid;
vertical-align:middle;
color:#53cf00;
vertical-align:middle;
color:#53cf00;
}
.title_doc {
@ -33,17 +33,17 @@ address::first-line {
font-size: 36px;
padding-bottom: 10px;
text-align : right;
}
.color_text {
color:#53cf00;
}
.color_background {
background-color:#53cf00;
}
.white_line_border {
background-color:#ffffff;
@ -53,10 +53,10 @@ address::first-line {
.total_table {
text-align: right;
vertical-align:middle;
vertical-align:middle;
font-weight:bold;
border-bottom : 1px solid #53cf00;
border-top : 1px solid #53cf00;
border-bottom : 1px solid #53cf00;
border-top : 1px solid #53cf00;
}
.info_table {
@ -66,7 +66,7 @@ address::first-line {
border-spacing: 3px;
}
.info_table th {
color: white;
text-align: center;
@ -76,7 +76,7 @@ address::first-line {
vertical-align:middle;
font-size: 12px;
}
.info_table td {
text-align: center;
height: 25px;
@ -93,7 +93,7 @@ div h4 {
.list_line_table_head {
text-align: center ;
}
@ -108,8 +108,8 @@ div h4 {
vertical-align : middle;
border-collapse: separate;
border-spacing: 2px;
padding-right:5px;
font-size: 11px;
padding-right:5px;
font-size: 11px;
}
.single_line {
@ -120,7 +120,7 @@ div h4 {
}
.line_only {
border-bottom: #8b8b8b 1px solid;
border-bottom: #8b8b8b 1px solid;
}
.total_table {
@ -133,7 +133,7 @@ div h4 {
border-collapse: separate;
border-spacing: 2px;
background-color : #def1d1;
padding-right:5px;
padding-right:5px;
}
.total_table td {
@ -142,9 +142,9 @@ div h4 {
border-collapse: separate;
border-spacing: 2px;
background-color : #53cf00;
padding-right:5px;
padding-right:5px;
}
.tva_table {
margin-top:20px;
border: 2px ridge #53cf00;
@ -155,8 +155,8 @@ div h4 {
.tva_table th {
color : #53cf00;
text-align: center ;
border-bottom: #53cf00 1px solid;
}
border-bottom: #53cf00 1px solid;
}
.orange_line {
@ -181,9 +181,9 @@ div h4 {
}
.lgn_pair{
background-color:#def1d1;
}
@ -213,4 +213,4 @@ div h4 {
font-style: normal;
font-weight: 400;
src: local('Lato Regular'), url('/theme_light/static/font/Lato-Regular.ttf') format('truetype');
}
}

32
theme_light/static/css/invoice_O002.css

@ -7,7 +7,7 @@ html {
-webkit-text-size-adjust: 100%;
}
body {
font-family:Montserrat-Regular;
font-family:Montserrat-Regular;
margin: 0;
color: #000
}
@ -16,7 +16,7 @@ address {
}
address::first-line {
address::first-line {
font-weight:bold;
color: #000;
}
@ -31,17 +31,17 @@ address::first-line {
font-size: 36px;
padding-bottom: 10px;
text-align : right;
}
.color_text {
color:#ff7f00;
}
.color_background {
background-color:#ff7f00;
}
.white_line_border {
background-color:#ffffff;
@ -56,7 +56,7 @@ address::first-line {
border-spacing: 3px;
}
.info_table th {
color: white;
text-align: center;
@ -66,7 +66,7 @@ address::first-line {
vertical-align:middle;
font-size: 12px;
}
.info_table td {
text-align: center;
height: 25px;
@ -98,7 +98,7 @@ div h4 {
border-collapse: separate;
border-spacing: 2px;
background-color : #fff0e6;
padding-right:5px;
padding-right:5px;
}
.total_table {
@ -111,7 +111,7 @@ div h4 {
border-collapse: separate;
border-spacing: 2px;
background-color : #fff0e6;
padding-right:5px;
padding-right:5px;
}
.total_table td {
@ -120,9 +120,9 @@ div h4 {
border-collapse: separate;
border-spacing: 2px;
background-color : #ff7f00;
padding-right:5px;
padding-right:5px;
}
.tva_table {
margin-top:20px;
border: 2px ridge #ff7f00;
@ -133,8 +133,8 @@ div h4 {
.tva_table th {
color : #ff7f00;
text-align: center ;
border-bottom: #ff7f00 1px solid;
}
border-bottom: #ff7f00 1px solid;
}
.orange_line {
@ -159,9 +159,9 @@ div h4 {
}
.lgn_pair{
background-color:#ffe0b0;
}
@ -191,4 +191,4 @@ div h4 {
font-style: normal;
font-weight: 400;
src: local('Lato Regular'), url('/theme_light/static/font/Lato-Regular.ttf') format('truetype');
}
}

42
theme_light/static/css/invoice_P002.css

@ -7,7 +7,7 @@ html {
-webkit-text-size-adjust: 100%;
}
body {
font-family:Montserrat-Regular;
font-family:Montserrat-Regular;
margin: 0;
color: #000
}
@ -16,7 +16,7 @@ address {
}
address::first-line {
address::first-line {
font-weight:bold;
color: #000;
}
@ -24,8 +24,8 @@ address::first-line {
.title_table {
width: 100%;
border-bottom: #c655b0 1px solid;
vertical-align:middle;
color:#c655b0;
vertical-align:middle;
color:#c655b0;
}
.title_doc {
@ -33,17 +33,17 @@ address::first-line {
font-size: 36px;
padding-bottom: 10px;
text-align : right;
}
.color_text {
color:#c655b0;
}
.color_background {
background-color:#c655b0;
}
.white_line_border {
background-color:#ffffff;
@ -53,10 +53,10 @@ address::first-line {
.total_table {
text-align: right;
vertical-align:middle;
vertical-align:middle;
font-weight:bold;
border-bottom : 1px solid #c655b0;
border-top : 1px solid #c655b0;
border-bottom : 1px solid #c655b0;
border-top : 1px solid #c655b0;
}
.info_table {
@ -66,7 +66,7 @@ address::first-line {
border-spacing: 3px;
}
.info_table th {
color: white;
text-align: center;
@ -76,7 +76,7 @@ address::first-line {
vertical-align:middle;
font-size: 12px;
}
.info_table td {
text-align: center;
height: 25px;
@ -108,7 +108,7 @@ div h4 {
border-collapse: separate;
border-spacing: 2px;
background-color : #eddeea;
padding-right:5px;
padding-right:5px;
}
.total_table {
@ -121,7 +121,7 @@ div h4 {
border-collapse: separate;
border-spacing: 2px;
background-color : #eddeea;
padding-right:5px;
padding-right:5px;
}
.total_table td {
@ -130,9 +130,9 @@ div h4 {
border-collapse: separate;
border-spacing: 2px;
background-color : #c655b0;
padding-right:5px;
padding-right:5px;
}
.tva_table {
margin-top:20px;
border: 2px ridge #c655b0;
@ -143,8 +143,8 @@ div h4 {
.tva_table th {
color : #c655b0;
text-align: center ;
border-bottom: #c655b0 1px solid;
}
border-bottom: #c655b0 1px solid;
}
.orange_line {
@ -169,9 +169,9 @@ div h4 {
}
.lgn_pair{
background-color:#eddeea;
}
@ -201,4 +201,4 @@ div h4 {
font-style: normal;
font-weight: 400;
src: local('Lato Regular'), url('/theme_light/static/font/Lato-Regular.ttf') format('truetype');
}
}

26
theme_light/static/css/invoice_orange.css

@ -7,17 +7,17 @@ html {
-webkit-text-size-adjust: 100%;
}
body {
font-family:Montserrat-Regular;
font-family:Montserrat-Regular;
margin: 0;
color: #000
}
address {
font-family:Lato-Regular;
font-family:Lato-Regular;
font-size: 18px;
}
address::first-line {
address::first-line {
font-weight:bold;
color: #000;
}
@ -34,7 +34,7 @@ address::first-line {
padding-bottom: 10px;
width: 150px;
}
.doc_num {
font-family:Montserrat-Regular;
font-size: 18px;
@ -49,7 +49,7 @@ address::first-line {
border-spacing: 3px;
}
.info_table th {
color: white;
text-align: center;
@ -59,7 +59,7 @@ address::first-line {
vertical-align:middle;
font-size: 12px;
}
.info_table td {
font-family:Lato-Regular;
text-align: center;
@ -91,9 +91,9 @@ div h4 {
font-family:Lato-Regular;
vertical-align : middle;
}
.tva_table {
margin-top:20px;
border: 2px ridge #ff7f00;
@ -104,8 +104,8 @@ div h4 {
.tva_table th {
color : #ff7f00;
text-align: center ;
border-bottom: #ff7f00 1px solid;
}
border-bottom: #ff7f00 1px solid;
}
.orange_line {
@ -130,9 +130,9 @@ div h4 {
}
.lgn_pair{
background-color:#ffe0b0;
}
@ -162,4 +162,4 @@ div h4 {
font-style: normal;
font-weight: 400;
src: local('Lato Regular'), url('/theme_light/static/font/Lato-Regular.ttf') format('truetype');
}
}

30
theme_light/static/css/mail_template_B001.css

@ -16,20 +16,20 @@
hr {
color: #4a94a6;
background: #4a94a6;
width: 100%;
background: #4a94a6;
width: 100%;
height: 2px;
}
.box_title {
width: 375px;
width: 375px;
margin: 0px;
margin-top:15px;
padding: 0px;
padding: 0px;
height:25px;
background-color: #4a94a6;
border-top-left-radius: 5px 5px;
border-top-right-radius: 5px 5px;
background-color: #4a94a6;
border-top-left-radius: 5px 5px;
border-top-right-radius: 5px 5px;
background-repeat: repeat no-repeat;
color: white;
font-family:Calibri;
@ -37,7 +37,7 @@ hr {
}
.box-body {
width: 375px;
width: 375px;
border-left: 1px solid #4a94a6;
border-right: 1px solid #4a94a6;
font-family:Calibri;
@ -45,20 +45,18 @@ hr {
}
.box_bottom {
width: 375px;
width: 375px;
margin: 0px;
padding: 0px;
padding: 0px;
height:25px;
background-color: #4a94a6;
border-bottom-left-radius: 5px 5px;
border-bottom-right-radius: 5px 5px;
background-color: #4a94a6;
border-bottom-left-radius: 5px 5px;
border-bottom-right-radius: 5px 5px;
background-repeat: repeat no-repeat;
}
.company_text {
font-family:Calibri;
font-size: 12px;
color: #4a94a6;
color: #4a94a6;
}

12
theme_light/static/css/theme_zen_black.css

@ -5938,7 +5938,7 @@ h4 {
background-attachment: relative;
background-position: center center;
width: 100%;
-webkit-background-size: 100%;
-moz-background-size: 100%;
-o-background-size: 100%;
@ -6138,7 +6138,7 @@ h4 {
/*#footer_container {
background-color: @brand-primary-darker;
background-size: cover;
}*/
#footer h4 {
padding-left: 50px;
@ -6454,9 +6454,9 @@ h4 {
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(opacity=99)";
/*IE8*/
}
/*
100% Height for Opera as the max-height seems to be ignored, not optimal for large screens
http://bricss.net/post/11230266445/css-hack-to-target-opera
/*
100% Height for Opera as the max-height seems to be ignored, not optimal for large screens
http://bricss.net/post/11230266445/css-hack-to-target-opera
*/
x:-o-prefocus,
.lb-overlay img {
@ -9439,7 +9439,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
/* Global textual link color.*/
/* Link hover color set via `darken()` function.*/
/* == Typography*/
/*
/*
/* ## Font, line-height, and color for body text, headings, and more.*/
/* Default monospace fonts for `<code>`, `<kbd>`, and `<pre>`.*/
/* Unit-less `line-height` for use in components like buttons.*/

42
theme_light/static/css/theme_zen_blue.css

@ -15,19 +15,19 @@ body {
/* ---------- */
.blog_title h1 {
color : #4e8fb4;
color : #4e8fb4;
margin-top:55px;
margin-bottom:0px;
}
.blog_title h2 {
color : white;
color : white;
margin-top:0px;
margin-bottom:0px;
}
.blog_name {
color : #4e8fb4;
color : #4e8fb4;
}
@ -39,7 +39,7 @@ h5.mb4 {
}
h2.mb4 {
color : #c1e1eb;
color : #c1e1eb;
}
span.fa.fa-tags {
@ -564,30 +564,30 @@ cite {
.fa-map-marker {
color: #3f92aa;
color: #3f92aa;
}
.fa-envelope {
color: #3f92aa;
color: #3f92aa;
}
.fa-phone {
color: #3f92aa;
color: #3f92aa;
}
.fa-file-text-o {
color: #3f92aa;
}
color: #3f92aa;
}
.control-label {
color: #3f92aa;
color: #3f92aa;
}
[itemprop~=name] {
color: #3f92aa;
color: #3f92aa;
}
a.text-primary:hover {
color: #3c8ca3;
@ -823,7 +823,7 @@ pre code {
margin-left: auto;
padding-left: 15px;
padding-right: 15px;
}
@media (min-width: 768px) {
.container {
@ -5870,7 +5870,7 @@ button.close {
@media print {
.hidden-print {
display: none !important;
}
}
.bg_color_blue {
@ -6043,7 +6043,7 @@ h4 {
background-attachment: relative;
background-position: center center;
width: 100%;
-webkit-background-size: 100%;
-moz-background-size: 100%;
-o-background-size: 100%;
@ -6253,11 +6253,11 @@ h4 {
/*#footer_container {
background-color: @brand-primary-darker;
background-size: cover;
}*/
#footer h4 {
padding-left: 50px;
}
#footer .copy {
@ -6577,9 +6577,9 @@ h4 {
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(opacity=99)";
/*IE8*/
}
/*
100% Height for Opera as the max-height seems to be ignored, not optimal for large screens
http://bricss.net/post/11230266445/css-hack-to-target-opera
/*
100% Height for Opera as the max-height seems to be ignored, not optimal for large screens
http://bricss.net/post/11230266445/css-hack-to-target-opera
*/
x:-o-prefocus,
.lb-overlay img {
@ -9562,7 +9562,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
/* Global textual link color.*/
/* Link hover color set via `darken()` function.*/
/* == Typography*/
/*
/*
/* ## Font, line-height, and color for body text, headings, and more.*/
/* Default monospace fonts for `<code>`, `<kbd>`, and `<pre>`.*/
/* Unit-less `line-height` for use in components like buttons.*/

12
theme_light/static/css/theme_zen_brown.css

@ -6065,9 +6065,9 @@ button.close {
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(opacity=99)";
/*IE8*/
}
/*
100% Height for Opera as the max-height seems to be ignored, not optimal for large screens
http://bricss.net/post/11230266445/css-hack-to-target-opera
/*
100% Height for Opera as the max-height seems to be ignored, not optimal for large screens
http://bricss.net/post/11230266445/css-hack-to-target-opera
*/
x:-o-prefocus,
.lb-overlay img {
@ -9178,7 +9178,7 @@ h4 {
background-attachment: relative;
background-position: center center;
width: 100%;
-webkit-background-size: 100%;
-moz-background-size: 100%;
-o-background-size: 100%;
@ -9378,7 +9378,7 @@ h4 {
/*#footer_container {
background-color: @brand-primary-darker;
background-size: cover;
}*/
#footer h4 {
padding-left: 50px;
@ -9444,7 +9444,7 @@ h4 {
/* Global textual link color.*/
/* Link hover color set via `darken()` function.*/
/* == Typography*/
/*
/*
/* ## Font, line-height, and color for body text, headings, and more.*/
/* Default monospace fonts for `<code>`, `<kbd>`, and `<pre>`.*/
/* Unit-less `line-height` for use in components like buttons.*/

30
theme_light/static/css/theme_zen_green.css

@ -195,8 +195,8 @@ span.energie {
h2.energie {
color: #000000;
font-size: 28px;
font-weight: bold;
font-size: 28px;
font-weight: bold;
font-family: "Trebuchet MS", "Times New Roman", Times, serif;
}
@ -376,7 +376,7 @@ h6,
.h4,
.h5,
.h6 {
font-family: inherit;
font-weight: 100;
line-height: 1.1;
@ -488,7 +488,7 @@ h5,
.h5 {
font-size: 22px;
font-family: "Trebuchet MS", "Times New Roman", Times, serif;
}
h6,
.h6 {
@ -1736,11 +1736,11 @@ output {
}
.bottom-line {
border-bottom: 1px solid #20cf00;
border-bottom: 1px solid #20cf00;
}
.mandatory-field {
background-color: #e8f8dc;
background-color: #e8f8dc;
}
.form-control:focus {
@ -3483,7 +3483,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
margin-left: -1px;
}
.nav {
padding-top: 15px;
padding-top: 15px;
margin-bottom: 0px;
padding-left: 0;
list-style: none;
@ -3975,7 +3975,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
}
}
.navbar-default {
background-color: #20cf00;
border-color: #e7e7e7;
}
@ -6113,9 +6113,9 @@ button.close {
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(opacity=99)";
/*IE8*/
}
/*
100% Height for Opera as the max-height seems to be ignored, not optimal for large screens
http://bricss.net/post/11230266445/css-hack-to-target-opera
/*
100% Height for Opera as the max-height seems to be ignored, not optimal for large screens
http://bricss.net/post/11230266445/css-hack-to-target-opera
*/
x:-o-prefocus,
.lb-overlay img {
@ -9219,7 +9219,7 @@ h2 {
background-attachment: relative;
background-position: center center;
width: 100%;
-webkit-background-size: 100%;
-moz-background-size: 100%;
-o-background-size: 100%;
@ -9441,9 +9441,9 @@ h2 {
#footer_container {
background-color: @brand-primary-darker;
background-size: cover;
}
#footer h4 {
padding-left: 50px;
}
@ -9507,7 +9507,7 @@ h4 {
/* Global textual link color.*/
/* Link hover color set via `darken()` function.*/
/* == Typography*/
/*
/*
/* ## Font, line-height, and color for body text, headings, and more.*/
/* Default monospace fonts for `<code>`, `<kbd>`, and `<pre>`.*/
/* Unit-less `line-height` for use in components like buttons.*/

70
theme_light/static/css/theme_zen_orange.css

@ -6,7 +6,7 @@ html {
}
body {
margin: 0;
}
article,
@ -22,7 +22,7 @@ nav,
section,
summary {
display: block;
}
audio,
canvas,
@ -389,7 +389,7 @@ h6 .small,
font-weight: normal;
line-height: 1;
color: #bfbfbf;
}
h1,
.h1,
@ -416,7 +416,7 @@ h3 .small,
color: #ffc161;
margin-top: 22px;
widht:100%
}
h4,
.h4,
@ -440,7 +440,7 @@ h5 .small,
h6 .small,
.h6 .small {
font-size: 75%;
}
h1,
.h1 {
@ -458,7 +458,7 @@ h4,
.h4 {
font-size: 24px;
}
h5,
.h5 {
font-size: 20px;
@ -483,18 +483,18 @@ p {
}
small,
.small {
font-size: 85%;
font-size: 85%;
}
h3.small
h3.small
{
color: #ffc161;
font-family: "Trebuchet MS", "Times New Roman", Times, serif; font-weight: bold;
margin-top: 35px;
margin-bottom:15px;
margin-left: 0px;
}
cite {
@ -3477,7 +3477,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
.nav > li > a:focus {
text-decoration: none;
background-color: #fcd292;
/* background-color: #dedede;*/
/* background-color: #dedede;*/
}
.nav > li.disabled > a {
color: #fcd292;
@ -3958,7 +3958,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
}
.oe_img_bg {
background-position:center;
background-position:center;
}
.navbar-default .navbar-brand {
@ -5859,7 +5859,7 @@ button.close {
background: #AD988B;
}
.bg_color_dark_light {
background: #4d4d4d;
background: #4d4d4d;
}
.bg_color_gray_light {
background: #f7f7f7;
@ -5971,7 +5971,7 @@ h4 {
background-attachment: relative;
background-position: center center;
width: 100%;
-webkit-background-size: 100%;
-moz-background-size: 100%;
-o-background-size: 100%;
@ -6186,12 +6186,12 @@ footer p{color : #D3D3D3;}
h5 {color : #D3D3D3;}
footer li span {color : #D3D3D3;}
/*#footer_container {
background-color: @brand-primary-darker;
background-size: cover;
}*/
.footer-text {
@ -6202,8 +6202,8 @@ footer li span {color : #D3D3D3;}
.img-text-right {
color : #D3D3D3;
font-family: "Alef" !important;
width: 80%;
float:right;
width: 80%;
float:right;
}
@ -6227,11 +6227,11 @@ footer .fa {
}
.fa-map-marker {
color: #ff6a00;
color: #ff6a00;
}
.fa-envelope {
color: #ff6a00;
color: #ff6a00;
}
@ -6242,44 +6242,44 @@ footer .fa {
}
[itemprop~=name] {
color: #ff6a00;
color: #ff6a00;
}
[itemprop~=address] {
color: #D3D3D3;
color: #D3D3D3;
}
.fa-phone {
color: #ff6a00;
color: #ff6a00;
}
.fa-file-text-o {
color: #ff6a00;
color: #ff6a00;
}
.control-label {
color: white;
color: white;
}
.title_degrade {
background-image:linear-gradient(#fbc059, #f0920a);
text-shadow: 0px 0px 10px rgba(255, 255, 255, 0.75);
color: #000000;
font-weight: bold;
font-weight: bold;
vertical-align: middle;
font-family: 'ReFormation';
font-size:15px;
}
@media (min-width: 1200px) {
.title_degrade {
font-size: 20px;
}
}
}
.img_50 {
width:50px;
height:50px;
height:50px;
background-color:white;
}
@ -6654,9 +6654,9 @@ h4 {
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(opacity=99)";
/*IE8*/
}
/*
100% Height for Opera as the max-height seems to be ignored, not optimal for large screens
http://bricss.net/post/11230266445/css-hack-to-target-opera
/*
100% Height for Opera as the max-height seems to be ignored, not optimal for large screens
http://bricss.net/post/11230266445/css-hack-to-target-opera
*/
x:-o-prefocus,
.lb-overlay img {
@ -9654,7 +9654,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
/* Global textual link color.*/
/* Link hover color set via `darken()` function.*/
/* == Typography*/
/*
/*
/* ## Font, line-height, and color for body text, headings, and more.*/
/* Default monospace fonts for `<code>`, `<kbd>`, and `<pre>`.*/
/* Unit-less `line-height` for use in components like buttons.*/
@ -9732,8 +9732,8 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
}
.fontsforweb_fontid_1962 {
font-family: 'Bitter-Bold' !important;
}
/* Alef */
@ -9744,5 +9744,3 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
src: url('/theme_light/static/font/Alef-Regular.ttf');
src: local('Alef-Regular'), url('/theme_light/static/font/Alef-Regular.ttf') format('truetype');
}

44
theme_light/static/css/theme_zen_purple.css

@ -6,8 +6,8 @@ html {
}
.single_line {
border-bottom : 1px solid #8B4513;
height:10px
border-bottom : 1px solid #8B4513;
height:10px
}
.main_img_bckground {
@ -21,10 +21,10 @@ html {
font-size: 100%;
margin-left:-14%;
color : #ffffff;
}
.bubble
.bubble
{
position: relative;
margin:15px 15px 0px 15px;
@ -43,7 +43,7 @@ box-shadow: 2px 2px 2px 0px #656565;
filter:progid:DXImageTransform.Microsoft.Shadow(color=#656565, Direction=134, Strength=5);
}
.bubble:after
.bubble:after
{
content: '';
position: absolute;
@ -58,7 +58,7 @@ left: -11px;
top: 32%;
}
.bubble:before
.bubble:before
{
content: '';
position: absolute;
@ -94,7 +94,7 @@ filter:progid:DXImageTransform.Microsoft.Shadow(color=#656565, Direction=134, St
.bubble_2
.bubble_2
{
font-size: 0.9em;
position: relative;
@ -114,7 +114,7 @@ box-shadow: 1px 1px 1px 0px #656565;
filter:progid:DXImageTransform.Microsoft.Shadow(color=#656565, Direction=134, Strength=1);
}
.bubble_2:before
.bubble_2:before
{
content: '';
position: absolute;
@ -129,7 +129,7 @@ left: -13px;
top: 10%;
}
.bubble_3
.bubble_3
{
font-size: 0.8em;
position: relative;
@ -149,7 +149,7 @@ box-shadow: 1px 1px 1px 0px #656565;
filter:progid:DXImageTransform.Microsoft.Shadow(color=#656565, Direction=134, Strength=1);
}
.bubble_3:before
.bubble_3:before
{
content: '';
position: absolute;
@ -199,7 +199,7 @@ box-shadow: 1px 1px 1px 0px #656565;
filter:progid:DXImageTransform.Microsoft.Shadow(color=#656565, Direction=134, Strength=1);
}
.bubble_adress
.bubble_adress
{
width:650px;
height: 60px;
@ -219,7 +219,7 @@ box-shadow: 1px 1px 1px 0px #656565;
filter:progid:DXImageTransform.Microsoft.Shadow(color=#656565, Direction=134, Strength=1);
}
.bubble_adress:after
.bubble_adress:after
{
content: '';
position: absolute;
@ -233,7 +233,7 @@ bottom: -4px;
left: 50%;
}
.contact_box
.contact_box
{
position: relative;
margin:30px 30px 30px 30px;
@ -4000,13 +4000,13 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
padding-top : 10px;
margin-right: auto;
margin-left : 75px;
}
.langage_menu {
font-size: 0.75em;
margin-right:25px;
}
}
.navbar-brand:hover,
.navbar-brand:focus {
@ -6215,7 +6215,7 @@ h4 {
background-attachment: relative;
background-position: center center;
width: 100%;
-webkit-background-size: 100%;
-moz-background-size: 100%;
-o-background-size: 100%;
@ -6415,7 +6415,7 @@ h4 {
/*#footer_container {
background-color: @brand-primary-darker;
background-size: cover;
}*/
#footer .copy {
@ -6732,9 +6732,9 @@ h4 {
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(opacity=99)";
/*IE8*/
}
/*
100% Height for Opera as the max-height seems to be ignored, not optimal for large screens
http://bricss.net/post/11230266445/css-hack-to-target-opera
/*
100% Height for Opera as the max-height seems to be ignored, not optimal for large screens
http://bricss.net/post/11230266445/css-hack-to-target-opera
*/
x:-o-prefocus,
.lb-overlay img {
@ -9717,7 +9717,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
/* Global textual link color.*/
/* Link hover color set via `darken()` function.*/
/* == Typography*/
/*
/*
/* ## Font, line-height, and color for body text, headings, and more.*/
/* Default monospace fonts for `<code>`, `<kbd>`, and `<pre>`.*/
/* Unit-less `line-height` for use in components like buttons.*/

12
theme_light/static/css/theme_zen_red.css

@ -6065,9 +6065,9 @@ button.close {
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(opacity=99)";
/*IE8*/
}
/*
100% Height for Opera as the max-height seems to be ignored, not optimal for large screens
http://bricss.net/post/11230266445/css-hack-to-target-opera
/*
100% Height for Opera as the max-height seems to be ignored, not optimal for large screens
http://bricss.net/post/11230266445/css-hack-to-target-opera
*/
x:-o-prefocus,
.lb-overlay img {
@ -9178,7 +9178,7 @@ h4 {
background-attachment: relative;
background-position: center center;
width: 100%;
-webkit-background-size: 100%;
-moz-background-size: 100%;
-o-background-size: 100%;
@ -9378,7 +9378,7 @@ h4 {
/*#footer_container {
background-color: @brand-primary-darker;
background-size: cover;
}*/
#footer h4 {
padding-left: 50px;
@ -9444,7 +9444,7 @@ h4 {
/* Global textual link color.*/
/* Link hover color set via `darken()` function.*/
/* == Typography*/
/*
/*
/* ## Font, line-height, and color for body text, headings, and more.*/
/* Default monospace fonts for `<code>`, `<kbd>`, and `<pre>`.*/
/* Unit-less `line-height` for use in components like buttons.*/

177
theme_light/static/css/theme_zen_white.css

@ -8,7 +8,7 @@ body {
margin: 0;
}
article,
aside,
aside,
details,
figcaption,
figure,
@ -60,7 +60,7 @@ h1 {
h7,.h7 {
text-transform: uppercase;
font-weight: bold;
font-weight: bold;
}
@ -68,7 +68,7 @@ h7,.h7 {
.text_100 {
font-size:100%;
}
.text_85 {
font-size:85%;
}
@ -79,7 +79,7 @@ h7,.h7 {
.text_100 {
font-size:90%;
}
.text_85 {
font-size:65%;
}
@ -92,8 +92,8 @@ h7,.h7 {
.text_85 {
font-size:55%;
}
}
}
@media (min-width: 1368px) {
@ -113,7 +113,7 @@ h7,.h7 {
font-size:60%;
}
}
mark {
background: #ff0;
@ -199,7 +199,7 @@ input::-moz-focus-inner {
border : solid 1px #7d7d7d;
-webkit-border-radius: 15px;
-moz-border-radius: 15px;
border-radius: 15px;
border-radius: 15px;
padding:5px;
padding-left:10px;
padding-right:10px;
@ -211,7 +211,7 @@ input::-moz-focus-inner {
border : solid 2px black;
-webkit-border-radius: 15px;
-moz-border-radius: 15px;
border-radius: 15px;
border-radius: 15px;
padding:5px;
padding-left:10px;
padding-right:10px;
@ -225,7 +225,7 @@ input::-moz-focus-inner {
border : solid 2px #64812b;
-webkit-border-radius: 15px;
-moz-border-radius: 15px;
border-radius: 15px;
border-radius: 15px;
padding:5px;
padding-left:10px;
padding-right:10px;
@ -240,7 +240,7 @@ input::-moz-focus-inner {
border : solid 2px #64812b;
-webkit-border-radius: 15px;
-moz-border-radius: 15px;
border-radius: 15px;
border-radius: 15px;
padding:5px;
padding-left:10px;
padding-right:10px;
@ -258,7 +258,7 @@ input::-moz-focus-inner {
border : solid 2px #64812b;
-webkit-border-radius: 15px;
-moz-border-radius: 15px;
border-radius: 15px;
border-radius: 15px;
padding:5px;
padding-left:10px;
padding-right:10px;
@ -272,7 +272,7 @@ input::-moz-focus-inner {
border : solid 2px #808080;
-webkit-border-radius: 15px;
-moz-border-radius: 15px;
border-radius: 15px;
border-radius: 15px;
padding:5px;
padding-left:10px;
padding-right:10px;
@ -285,7 +285,7 @@ input::-moz-focus-inner {
border : solid 2px black;
-webkit-border-radius: 15px;
-moz-border-radius: 15px;
border-radius: 15px;
border-radius: 15px;
padding:5px;
padding-left:10px;
padding-right:10px;
@ -302,7 +302,7 @@ input::-moz-focus-inner {
border : solid 0px #64812b;
-webkit-border-radius: 15px;
-moz-border-radius: 15px;
border-radius: 15px;
border-radius: 15px;
padding:5px;
padding-left:10px;
padding-right:10px;
@ -332,14 +332,14 @@ input::-moz-focus-inner {
-moz-transition: .4s,opacity .6s;
-o-transition: .4s,opacity .6s;
transition: .4s,opacity .6s;
font-weight: bold;
background-color: rgba(255, 255, 255, 0.6);
color : black;
border : solid 0px white;
-webkit-border-radius: 15px;
-moz-border-radius: 15px;
border-radius: 15px;
border-radius: 15px;
padding:5px;
padding-left:10px;
padding-right:10px;
@ -357,9 +357,9 @@ input::-moz-focus-inner {
transform: translate(-150%,0);
}
/*
We show :before pseudo-element on :hover
and :after pseudo-element on :active
/*
We show :before pseudo-element on :hover
and :after pseudo-element on :active
*/
.button_green_hover:hover:before,
@ -397,7 +397,7 @@ input::-moz-focus-inner {
border : solid 0px #808080;;
-webkit-border-radius: 15px;
-moz-border-radius: 15px;
border-radius: 15px;
border-radius: 15px;
padding:5px;
padding-left:10px;
padding-right:10px;
@ -427,14 +427,14 @@ input::-moz-focus-inner {
-moz-transition: .4s,opacity .6s;
-o-transition: .4s,opacity .6s;
transition: .4s,opacity .6s;
font-weight: bold;
background-color: rgba(255, 255, 255, 0.6);
color : black;
border : solid 0px white;
-webkit-border-radius: 15px;
-moz-border-radius: 15px;
border-radius: 15px;
border-radius: 15px;
padding:5px;
padding-left:10px;
padding-right:10px;
@ -452,9 +452,9 @@ input::-moz-focus-inner {
transform: translate(-150%,0);
}
/*
We show :before pseudo-element on :hover
and :after pseudo-element on :active
/*
We show :before pseudo-element on :hover
and :after pseudo-element on :active
*/
.button_grey_hover:hover:before,
@ -487,7 +487,7 @@ input::-moz-focus-inner {
.grey_button {
display: inline-block;
position: relative;
overflow: hidden;
@ -497,12 +497,12 @@ input::-moz-focus-inner {
border : solid 0px #808080;
-webkit-border-radius: 15px;
-moz-border-radius: 15px;
border-radius: 15px;
border-radius: 15px;
padding:5px;
padding-left:10px;
padding-right:10px;
font-size:90%;
}
.fa-shopping-cart:before {
@ -515,7 +515,7 @@ input::-moz-focus-inner {
}
.small_text {
font-size:85%;
font-size:85%;
}
@ -616,8 +616,8 @@ th {
.navbar {
display: none;
}
.table td,
.table th {
background-color: #fff !important;
@ -654,7 +654,7 @@ html {
}
body {
font-size:14px;
font-size:14px;
font-family: 'lineto', serif;
line-height: 1.6;
color: #333;
@ -742,7 +742,7 @@ ul.product_content li {
ul.product_content li:first-child {
margin-top:30px;
}
ul.product_content:hover{
opacity: 0.75;
top: 1.2em;
@ -760,10 +760,10 @@ z-index:4;
display: initial;
float:left;
margin-left:25px;
margin-right:25px;
margin-right:25px;
margin-bottom:35px;
width:95%;
}
width:95%;
}
hr {
margin-top: 22px;
@ -899,21 +899,21 @@ p {
.lead {
font-size: 24px;
}
}
}
@media (min-width: 768px) {
div .oe_website_sale {
div .oe_website_sale {
}
#products_grid_before {
width:175px;
width:175px;
}
}
.product_title a {
color:#506655;
font-size: 125%;
font-size: 125%;
}
@ -928,7 +928,7 @@ p {
cursor: pointer;
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
border-radius: 10px;
border-radius: 10px;
}
.css_attribute_variant input {
height: 0px;
@ -937,13 +937,13 @@ p {
.css_attribute_variant.active {
border: 2px ridge black;
background-color:white;
color:black;
color:black;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
border-radius: 5px;
}
.css_attribute_variant.active:after {
.css_attribute_variant.active:after {
content: '';
position: relative;
border-style: solid;
@ -957,7 +957,7 @@ bottom: -15px;
left: 50%;
}
.css_attribute_variant.active:before {
.css_attribute_variant.active:before {
content:'';
position: relative;
border-style: solid;
@ -981,16 +981,16 @@ label.css_attribute_variant.css_not_available {
opacity: 1;
background-image: url("/website_sale/static/src/img/redcross.png");
background-size: cover;
}
}
.confirm-primary {
color : white;
color : white;
background-color :#64812b;
}
.confirm-other {
background-color :white;
color : #64812b;
background-color :white;
color : #64812b;
}
/* Wizard */
@ -1087,19 +1087,19 @@ ul.wizard_cart li:first-child {
chevron-primary {
background-color :#64812b;
background-color :#64812b;
}
.cleanse_main ul{
width: 100%;
width: 100%;
margin: auto;
box-sizing: border-box;
height: 490px;
}
.cleanse_main li{
width: 25%;
width: 25%;
float: left;
box-sizing: border-box;
}
@ -1117,7 +1117,7 @@ chevron-primary {
}
.cleanse_main .clense_type img{
margin: 10px 0;
margin: 10px 0;
}
.clense_type_head {
@ -1181,7 +1181,7 @@ cite {
}
.text-muted {
color: #4d4d4d;
}
.text-primary {
color: #777777;
@ -1333,7 +1333,7 @@ blockquote .small {
blockquote footer:before,
blockquote small:before,
blockquote .small:before {
}
.blockquote-reverse,
blockquote.pull-right {
@ -1357,7 +1357,7 @@ blockquote.pull-right footer:after,
blockquote.pull-right small:after,
.blockquote-reverse .small:after,
blockquote.pull-right .small:after {
}
blockquote:before,
@ -4481,7 +4481,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
color: #333;
font-weight: bolder;
background-image:url(/upper_website/static/img/upper_big_logo.png);
background-position:50% 0%;
background-position:50% 0%;
background-size: 25% ;
background-repeat:no-repeat;
}
@ -4634,18 +4634,18 @@ h3 {
}
.text_menu {
.text_menu {
padding-top: 5px;
border:solid 1px #333;
max-height: 35px;
width: 100%;
overflow: hidden;
-webkit-transition:max-height 0s ease;
-moz-transition:max-height 0s ease;
-o-transition:max-height 0s ease;
-htm-transition:max-height 0s ease;
transition:max-height 0s ease;
}
max-height: 35px;
width: 100%;
overflow: hidden;
-webkit-transition:max-height 0s ease;
-moz-transition:max-height 0s ease;
-o-transition:max-height 0s ease;
-htm-transition:max-height 0s ease;
transition:max-height 0s ease;
}
.text_menu ul{
padding-left: 5px;
@ -4660,9 +4660,9 @@ h3 {
vertical-align:top;
}
.text_menu:hover {
max-height: 9000px;
}
.text_menu:hover {
max-height: 9000px;
}
.text_menu_detail {
padding-left: 10px;
@ -4672,8 +4672,8 @@ h3 {
}
.text_menu_title {
font-size: 100%;
.text_menu_title {
font-size: 100%;
height:30px;
border-bottom:solid 1px #333;
background-color:white;
@ -4824,7 +4824,7 @@ h3 {
}
}
.navbar-nav {
margin: 7px -15px;
margin: 7px -15px;
text-transform:uppercase;
}
@ -4833,7 +4833,7 @@ h3 {
display:flex;
justify-content:space-between;
float: none;
font-size:90%;
font-size:90%;
}
.navbar-nav > li{
@ -6626,7 +6626,7 @@ button.close {
#wrap .carousel-indicators li{
border: 2px solid #fff;
background-color : black;
}
#wrap .carousel-indicators .active {
@ -7027,7 +7027,7 @@ h4 {
font-family: "lineto", Helvetica, Arial, sans-serif;
color: #333;
font-weight: bold;
}
.static_text {
@ -7061,7 +7061,7 @@ h4 {
padding-bottom:30px;
}
.label {
display: inline;
font-size: 75%;
@ -7128,7 +7128,7 @@ h4 {
}
.img {
}
.text-muted {
@ -7168,7 +7168,7 @@ h4 {
background-attachment: relative;
background-position: center center;
width: 100%;
-webkit-background-size: 100%;
-moz-background-size: 100%;
-o-background-size: 100%;
@ -7368,7 +7368,7 @@ h4 {
}
.navbar-nav a {
color :#000000;
color :#000000;
}
/*
.footer {
@ -7378,7 +7378,7 @@ h4 {
/*#footer_container {
background-color: @brand-primary-darker;
background-size: cover;
}*/
#footer h4 {
padding-left: 50px;
@ -7688,9 +7688,9 @@ footer .fa {
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(opacity=99)";
/*IE8*/
}
/*
100% Height for Opera as the max-height seems to be ignored, not optimal for large screens
http://bricss.net/post/11230266445/css-hack-to-target-opera
/*
100% Height for Opera as the max-height seems to be ignored, not optimal for large screens
http://bricss.net/post/11230266445/css-hack-to-target-opera
*/
x:-o-prefocus,
.lb-overlay img {
@ -10674,7 +10674,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
/* Global textual link color.*/
/* Link hover color set via `darken()` function.*/
/* == Typography*/
/*
/*
/* ## Font, line-height, and color for body text, headings, and more.*/
/* Default monospace fonts for `<code>`, `<kbd>`, and `<pre>`.*/
/* Unit-less `line-height` for use in components like buttons.*/
@ -10738,4 +10738,3 @@ lineto-couriersans-regular
.fontsforweb_fontid_1962 {
font-family: 'Bitter-Bold' !important;
}

12
theme_light/static/css/theme_zen_yellow.css

@ -6065,9 +6065,9 @@ button.close {
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(opacity=99)";
/*IE8*/
}
/*
100% Height for Opera as the max-height seems to be ignored, not optimal for large screens
http://bricss.net/post/11230266445/css-hack-to-target-opera
/*
100% Height for Opera as the max-height seems to be ignored, not optimal for large screens
http://bricss.net/post/11230266445/css-hack-to-target-opera
*/
x:-o-prefocus,
.lb-overlay img {
@ -9178,7 +9178,7 @@ h4 {
background-attachment: relative;
background-position: center center;
width: 100%;
-webkit-background-size: 100%;
-moz-background-size: 100%;
-o-background-size: 100%;
@ -9378,7 +9378,7 @@ h4 {
/*#footer_container {
background-color: @brand-primary-darker;
background-size: cover;
}*/
#footer h4 {
padding-left: 50px;
@ -9444,7 +9444,7 @@ h4 {
/* Global textual link color.*/
/* Link hover color set via `darken()` function.*/
/* == Typography*/
/*
/*
/* ## Font, line-height, and color for body text, headings, and more.*/
/* Default monospace fonts for `<code>`, `<kbd>`, and `<pre>`.*/
/* Unit-less `line-height` for use in components like buttons.*/

411
theme_light/views/layout_template.xml

@ -1,206 +1,205 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- ****************** POUR IMPRESSION FACTURE **************** -->
<template id="theme_light.layout" inherit_id="web.layout" primary="True">
<!-- Add report attributes -->
<xpath expr="//html" position="attributes">
<attribute name="t-att-data-report-margin-top">data_report_margin_top if data_report_margin_top else None</attribute>
<attribute name="t-att-data-report-header-spacing">data_report_header_spacing if data_report_header_spacing else None</attribute>
<attribute name="t-att-data-report-dpi">data_report_dpi if data_report_dpi else None</attribute>
</xpath>
<!-- Add report style -->
<xpath expr="//head" position="inside">
<link href="/web/static/lib/bootstrap/css/bootstrap.css" rel="stylesheet"/>
<link href="/website/static/src/css/website.css" rel="stylesheet"/>
<link href="/web/static/lib/fontawesome/css/font-awesome.css" rel="stylesheet"/>
<link href="/theme_light/static/css/invoice_orange.css" rel="stylesheet"/>
<style type="text/css">
<t t-call="theme_light.style"/>
</style>
</xpath>
</template>
<!-- CSS -->
<template id="style">
/* Montserrat */
@font-face {
font-family: 'Montserrat-Regular';
font-style: normal;
src: local('Montserrat Regular'), url('/theme_light/static/font/Montserrat-Regular.ttf') format('truetype');
}
/* Roboto Regular */
@font-face {
font-family: 'Roboto-Regular';
font-style: normal;
src: local('Roboto Regular'), url('/theme_light/static/font/Roboto-Regular.ttf') format('truetype');
}
/* Roboto Bold */
@font-face {
font-family: 'Roboto-Bold';
font-style: normal;
src: local('Roboto Bold'), url('/theme_light/static/font/Roboto-Bold.ttf') format('truetype');
}
/* BEBASNEUE Bold */
@font-face {
font-family: 'Bebasneue-Bold';
font-style: normal;
src: local('Bebasneue-Bold'), url('/theme_light/static/font/BEBASNEUE_BOLD.ttf') format('truetype');
}
</template>
<template id="theme_light.html_container">
<t t-set="body_classname" t-value="'container'"/>
<t t-call="theme_light.layout">
<t t-raw="0"/>
</t>
</template>
<template id="theme_light.invoice_footer">
<div class="footer">
<table style="width: 100%;font-size:13;color:black;font-family:Roboto-Regular;text-align:center">
<tr style="height:20px;">
<td/>
<td/>
<t t-if="company.display_logo1">
<td rowspan="5" style="padding-left:15px;text-align:center;width:135px;border-left:1px solid #adadad" >
<img t-if="company.bottom_logo1" t-att-src="'data:image/png;base64,%s' % company.bottom_logo1" style="width:98px;height:auto;padding-bottom:5px;"/>
<img t-if="not company.bottom_logo1" src="/theme_light/static/img/gallery/label_fin.jpg" style="width:98px;height:auto;padding-bottom:5px;"/>
</td>
</t>
<t t-if="company.display_logo2">
<td rowspan="5" style="padding-left:15px;text-align:center;width:135px;border-left:1px solid #adadad" >
<img t-if="company.bottom_logo2" t-att-src="'data:image/png;base64,%s' % company.bottom_logo2" style="width:162px;height:auto;padding-bottom:5px;"/>
<img t-if="not company.bottom_logo2" src="/theme_light/static/img/gallery/cnc_agree.jpg" style="width:162px;height:auto;padding-bottom:5px;"/>
</td>
</t>
</tr>
<tr style="height:20px;">
<td style="align: left;">
<t t-if="company.rml_header1">
<span t-field="company.rml_header1"/> -
</t>
<b><span t-field="company.name"/></b>
</td>
<td/>
<td/>
<td/>
</tr>
<tr style="height:20px">
<td style="align: left;">
<span t-field="company.partner_id.street"/> -
<t t-if="company.partner_id.street2">
<span t-field="company.partner_id.street2"/> -
</t>
<span t-field="company.partner_id.zip"/>
<span t-field="company.partner_id.city"/>
</td>
<td/>
<td/>
<td/>
</tr>
<tr style="height:20px">
<td style="align: left;">
<t t-if="company.company_registry">
<span>N.Entr.</span> :
<span t-field="company.company_registry"/>
</t>
<t t-if="company.vat">
-
<span>VAT Number</span> :
<span t-field="company.vat"/>
</t>
<t t-foreach="o.company_id.bank_journal_ids" t-as="journal">
<t t-set="b" t-value="journal.bank_account_id"/>
<t t-if="journal.display_on_footer">
-
<span t-field="b.bank_name"/>
<span t-field="b.acc_number"/>
<span t-field="b.bank_bic"/>
</t>
</t>
</td>
<td/>
<td/>
<td/>
</tr>
</table>
</div>
</template>
<template id="theme_light.invoice_footer_002">
<div class="footer">
<table style="width: 100%;font-size:13;color :black;font-family:Montserrat-Regular;text-align:center">
<tr style="height:20px;">
<td width="85%"></td>
<td rowspan="5" style="padding-left:15px;text-align:center;width:260px;border-left:1px solid #adadad" >
<img src="/theme_light/static/img/gallery/cnc_agree.png" style="max-height: 80px;padding-bottom:5px;"/>
<div style="color :#adadad;" t-field="company.company_registry"/>
</td>
</tr>
</table>
</div>
</template>
<template id="theme_light.invoice_header">
<div>
<div class="row">
<div class="col-xs-3">
<img t-if="o.company_id.logo" t-att-src="'data:image/png;base64,%s' % o.company_id.logo" style="height: 113px;"/>
</div>
</div>
</div>
</template>
<template id="theme_light.invoice_layout">
<!-- Multicompany -->
<t t-if="o and 'company_id' in o">
<t t-set="company" t-value="o.company_id"></t>
</t>
<t t-if="not o or not 'company_id' in o">
<t t-set="company" t-value="res_company"></t>
</t>
<t t-raw="0" />
<t t-call="theme_light.invoice_footer" />
</template>
<template id="theme_light.invoice_layout_002">
<!-- Multicompany -->
<t t-if="o and 'company_id' in o">
<t t-set="company" t-value="o.company_id"></t>
</t>
<t t-if="not o or not 'company_id' in o">
<t t-set="company" t-value="res_company"></t>
</t>
<t t-raw="0" />
<t t-call="theme_light.invoice_footer_002" />
</template>
<template id="theme_light.report_footer_002">
<div class="footer">
<table style="width: 100%;font-size:13;color :black;font-family:Montserrat-Regular;text-align:center">
<tr style="height:20px;">
<td width="90%"></td>
<td rowspan="5" style="padding-left:15px;text-align:center;width:260px;border-left:1px solid #adadad" >
Page :
<span class="page"/>
</td>
</tr>
</table>
</div>
</template>
<template id="theme_light.report_layout_002">
<!-- Multicompany -->
<t t-if="o and 'company_id' in o">
<t t-set="company" t-value="o.company_id"></t>
</t>
<t t-if="not o or not 'company_id' in o">
<t t-set="company" t-value="res_company"></t>
</t>
<t t-raw="0" />
<t t-call="theme_light.report_footer_002" />
</template>
</odoo>
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- ****************** POUR IMPRESSION FACTURE **************** -->
<template id="theme_light.layout" inherit_id="web.layout" primary="True">
<!-- Add report attributes -->
<xpath expr="//html" position="attributes">
<attribute name="t-att-data-report-margin-top">data_report_margin_top if data_report_margin_top else None</attribute>
<attribute name="t-att-data-report-header-spacing">data_report_header_spacing if data_report_header_spacing else None</attribute>
<attribute name="t-att-data-report-dpi">data_report_dpi if data_report_dpi else None</attribute>
</xpath>
<!-- Add report style -->
<xpath expr="//head" position="inside">
<link href="/web/static/lib/bootstrap/css/bootstrap.css" rel="stylesheet"/>
<link href="/website/static/src/css/website.css" rel="stylesheet"/>
<link href="/web/static/lib/fontawesome/css/font-awesome.css" rel="stylesheet"/>
<link href="/theme_light/static/css/invoice_orange.css" rel="stylesheet"/>
<style type="text/css">
<t t-call="theme_light.style"/>
</style>
</xpath>
</template>
<!-- CSS -->
<template id="style">
/* Montserrat */
@font-face {
font-family: 'Montserrat-Regular';
font-style: normal;
src: local('Montserrat Regular'), url('/theme_light/static/font/Montserrat-Regular.ttf') format('truetype');
}
/* Roboto Regular */
@font-face {
font-family: 'Roboto-Regular';
font-style: normal;
src: local('Roboto Regular'), url('/theme_light/static/font/Roboto-Regular.ttf') format('truetype');
}
/* Roboto Bold */
@font-face {
font-family: 'Roboto-Bold';
font-style: normal;
src: local('Roboto Bold'), url('/theme_light/static/font/Roboto-Bold.ttf') format('truetype');
}
/* BEBASNEUE Bold */
@font-face {
font-family: 'Bebasneue-Bold';
font-style: normal;
src: local('Bebasneue-Bold'), url('/theme_light/static/font/BEBASNEUE_BOLD.ttf') format('truetype');
}
</template>
<template id="theme_light.html_container">
<t t-set="body_classname" t-value="'container'"/>
<t t-call="theme_light.layout">
<t t-raw="0"/>
</t>
</template>
<template id="theme_light.invoice_footer">
<div class="footer">
<table style="width: 100%;font-size:13;color:black;font-family:Roboto-Regular;text-align:center">
<tr style="height:20px;">
<td/>
<td/>
<t t-if="company.display_logo1">
<td rowspan="5" style="padding-left:15px;text-align:center;width:135px;border-left:1px solid #adadad" >
<img t-if="company.bottom_logo1" t-att-src="'data:image/png;base64,%s' % company.bottom_logo1" style="width:98px;height:auto;padding-bottom:5px;"/>
<img t-if="not company.bottom_logo1" src="/theme_light/static/img/gallery/label_fin.jpg" style="width:98px;height:auto;padding-bottom:5px;"/>
</td>
</t>
<t t-if="company.display_logo2">
<td rowspan="5" style="padding-left:15px;text-align:center;width:135px;border-left:1px solid #adadad" >
<img t-if="company.bottom_logo2" t-att-src="'data:image/png;base64,%s' % company.bottom_logo2" style="width:162px;height:auto;padding-bottom:5px;"/>
<img t-if="not company.bottom_logo2" src="/theme_light/static/img/gallery/cnc_agree.jpg" style="width:162px;height:auto;padding-bottom:5px;"/>
</td>
</t>
</tr>
<tr style="height:20px;">
<td style="align: left;">
<t t-if="company.rml_header1">
<span t-field="company.rml_header1"/> -
</t>
<b><span t-field="company.name"/></b>
</td>
<td/>
<td/>
<td/>
</tr>
<tr style="height:20px">
<td style="align: left;">
<span t-field="company.partner_id.street"/> -
<t t-if="company.partner_id.street2">
<span t-field="company.partner_id.street2"/> -
</t>
<span t-field="company.partner_id.zip"/>
<span t-field="company.partner_id.city"/>
</td>
<td/>
<td/>
<td/>
</tr>
<tr style="height:20px">
<td style="align: left;">
<t t-if="company.company_registry">
<span>N.Entr.</span> :
<span t-field="company.company_registry"/>
</t>
<t t-if="company.vat">
-
<span>VAT Number</span> :
<span t-field="company.vat"/>
</t>
<t t-foreach="o.company_id.bank_journal_ids" t-as="journal">
<t t-set="b" t-value="journal.bank_account_id"/>
<t t-if="journal.display_on_footer">
-
<span t-field="b.bank_name"/>
<span t-field="b.acc_number"/>
<span t-field="b.bank_bic"/>
</t>
</t>
</td>
<td/>
<td/>
<td/>
</tr>
</table>
</div>
</template>
<template id="theme_light.invoice_footer_002">
<div class="footer">
<table style="width: 100%;font-size:13;color :black;font-family:Montserrat-Regular;text-align:center">
<tr style="height:20px;">
<td width="85%"></td>
<td rowspan="5" style="padding-left:15px;text-align:center;width:260px;border-left:1px solid #adadad" >
<img src="/theme_light/static/img/gallery/cnc_agree.png" style="max-height: 80px;padding-bottom:5px;"/>
<div style="color :#adadad;" t-field="company.company_registry"/>
</td>
</tr>
</table>
</div>
</template>
<template id="theme_light.invoice_header">
<div>
<div class="row">
<div class="col-xs-3">
<img t-if="o.company_id.logo" t-att-src="'data:image/png;base64,%s' % o.company_id.logo" style="height: 113px;"/>
</div>
</div>
</div>
</template>
<template id="theme_light.invoice_layout">
<!-- Multicompany -->
<t t-if="o and 'company_id' in o">
<t t-set="company" t-value="o.company_id"></t>
</t>
<t t-if="not o or not 'company_id' in o">
<t t-set="company" t-value="res_company"></t>
</t>
<t t-raw="0" />
<t t-call="theme_light.invoice_footer" />
</template>
<template id="theme_light.invoice_layout_002">
<!-- Multicompany -->
<t t-if="o and 'company_id' in o">
<t t-set="company" t-value="o.company_id"></t>
</t>
<t t-if="not o or not 'company_id' in o">
<t t-set="company" t-value="res_company"></t>
</t>
<t t-raw="0" />
<t t-call="theme_light.invoice_footer_002" />
</template>
<template id="theme_light.report_footer_002">
<div class="footer">
<table style="width: 100%;font-size:13;color :black;font-family:Montserrat-Regular;text-align:center">
<tr style="height:20px;">
<td width="90%"></td>
<td rowspan="5" style="padding-left:15px;text-align:center;width:260px;border-left:1px solid #adadad" >
Page :
<span class="page"/>
</td>
</tr>
</table>
</div>
</template>
<template id="theme_light.report_layout_002">
<!-- Multicompany -->
<t t-if="o and 'company_id' in o">
<t t-set="company" t-value="o.company_id"></t>
</t>
<t t-if="not o or not 'company_id' in o">
<t t-set="company" t-value="res_company"></t>
</t>
<t t-raw="0" />
<t t-call="theme_light.report_footer_002" />
</template>
</odoo>

1
website_recaptcha_reloaded/readme/CONTRIBUTORS.rst

@ -1,2 +1 @@
* Coop IT Easy SCRLfs

2
website_recaptcha_reloaded/views/res_config.xml

@ -27,7 +27,7 @@
<field name="recaptcha_key_secret" placeholder="XXXXX"/>
</div>
</div>
<div attrs="{'invisible': [('has_google_recaptcha', '=', False)]}" class="mt8">
<a role="button" class="btn-link" target="_blank" href="http://www.google.com/recaptcha/admin"><i class="fa fa-arrow-right"></i>
How to get my reCaptcha Key

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save