Merge branch 'develop' of https://gitlab.datenpol.at/odoo/tz-austria into develop
						commit
						85986d15db
					
				|  | @ -30,7 +30,6 @@ values = { | ||||||
|     "line_ids": ["0000"], |     "line_ids": ["0000"], | ||||||
|     "opt_out": True, |     "opt_out": True, | ||||||
|     "lang": "de", |     "lang": "de", | ||||||
|     "is_retailer": True, |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| res_partner_obj = odoo.env['res.partner'] | res_partner_obj = odoo.env['res.partner'] | ||||||
|  |  | ||||||
|  | @ -7,14 +7,15 @@ db = 'tz-austria_1' | ||||||
| user = 'admin' | user = 'admin' | ||||||
| pw = 'x' | pw = 'x' | ||||||
| 
 | 
 | ||||||
| host = 'erp.tzaustria.info' | # host = 'erp.tzaustria.info' | ||||||
| port = 443 | # port = 443 | ||||||
| db = 'odoo-test' | # db = 'odoo-test' | ||||||
| user = 'tz-admin' | # user = 'tz-admin' | ||||||
| pw = '12tza345' | # pw = '12tza345' | ||||||
| protocol="jsonrpc+ssl" | # protocol="jsonrpc+ssl" | ||||||
| 
 | 
 | ||||||
| odoo = odoorpc.ODOO(host, protocol=protocol, port=port) | odoo = odoorpc.ODOO(host, port=port) | ||||||
|  | # odoo = odoorpc.ODOO(host, protocol=protocol, port=port) | ||||||
| odoo.login(db, user, pw) | odoo.login(db, user, pw) | ||||||
| 
 | 
 | ||||||
| sale_order_obj = odoo.env['sale.order'] | sale_order_obj = odoo.env['sale.order'] | ||||||
|  |  | ||||||
|  | @ -7,14 +7,15 @@ db = 'tz-austria_1' | ||||||
| user = 'tz-admin' | user = 'tz-admin' | ||||||
| pw = 'x' | pw = 'x' | ||||||
| 
 | 
 | ||||||
| host = 'erp.tzaustria.info' | # host = 'erp.tzaustria.info' | ||||||
| port = 443 | # port = 443 | ||||||
| db = 'odoo-test' | # db = 'odoo-test' | ||||||
| user = 'tz-admin' | # user = 'tz-admin' | ||||||
| pw = '12tza345' | # pw = '12tza345' | ||||||
| protocol="jsonrpc+ssl" | # protocol="jsonrpc+ssl" | ||||||
| 
 | 
 | ||||||
| odoo = odoorpc.ODOO(host, protocol=protocol, port=port) | odoo = odoorpc.ODOO(host, port=port) | ||||||
|  | # odoo = odoorpc.ODOO(host, protocol=protocol, port=port) | ||||||
| odoo.login(db, user, pw) | odoo.login(db, user, pw) | ||||||
| 
 | 
 | ||||||
| values = { | values = { | ||||||
|  | @ -28,16 +29,17 @@ values = { | ||||||
|     "weight": 80.45, |     "weight": 80.45, | ||||||
|     "active": True, |     "active": True, | ||||||
|     "is_internal": True, |     "is_internal": True, | ||||||
|     "xcat_id": "Kategorie 1", |     "xcat_id": "XCategory Name", | ||||||
|     "notes": "notes", |     "notes": "notes", | ||||||
|     "material_type_id": "Holz", |     "material_type_id": "Roh Material", | ||||||
|     "categ_id": "all", |     "categ_id": "__connector", | ||||||
|     "intrastat_id": "34052000", |     "intrastat_id": "34052000", | ||||||
|     "sale_ok": True, |     "sale_ok": True, | ||||||
|     "assembly_line_ids": ["0000"], |     "assembly_line_ids": ["0000"], | ||||||
|     "list_price": 50.00, |     "list_price": 50.00, | ||||||
|     "can_be_sold_unconfigured": True, |     "can_be_sold_unconfigured": True, | ||||||
|     'image': "R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7", |     "image": "R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7", | ||||||
|  |     "tax": "20% MwSt.",# oder "10% MwSt.", "0% MwSt." | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| product_obj = odoo.env['product.template'] | product_obj = odoo.env['product.template'] | ||||||
|  |  | ||||||
|  | @ -1,6 +1,5 @@ | ||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
| import odoorpc | import odoorpc | ||||||
| from urllib.parse import urlparse |  | ||||||
| 
 | 
 | ||||||
| host = 'localhost' | host = 'localhost' | ||||||
| port = 8080 | port = 8080 | ||||||
|  | @ -32,7 +31,7 @@ values = { | ||||||
|     "vat": False, |     "vat": False, | ||||||
|     "lang": "de", |     "lang": "de", | ||||||
|     "line_ids": ["0000"], |     "line_ids": ["0000"], | ||||||
|     "property_payment_term_id": "15 Tage", |     "property_payment_term_id": "7", | ||||||
|     "property_product_pricelist": "EUR", |     "property_product_pricelist": "EUR", | ||||||
|     "date_vat_check": "2017-08-04", |     "date_vat_check": "2017-08-04", | ||||||
|     "active": True, |     "active": True, | ||||||
|  |  | ||||||
|  | @ -31,3 +31,4 @@ from . import product | ||||||
| from . import ir_attachment | from . import ir_attachment | ||||||
| from . import account | from . import account | ||||||
| from . import commission_account | from . import commission_account | ||||||
|  | from . import res_users | ||||||
|  |  | ||||||
|  | @ -27,14 +27,12 @@ class AbstractHelper(models.AbstractModel): | ||||||
|     _description = 'Abstract Helper' |     _description = 'Abstract Helper' | ||||||
| 
 | 
 | ||||||
|     @api.model |     @api.model | ||||||
|     def remove_not_specified_fields(self, vals): |     def check_not_specified_fields(self, vals): | ||||||
|         specified_fields = self._get_specified_fields() |         specified_fields = self._get_specified_fields() | ||||||
|         remove_fields = [] |  | ||||||
|         for key in list(vals.keys()): |         for key in list(vals.keys()): | ||||||
|             if key not in specified_fields: |             if key not in specified_fields: | ||||||
|                 remove_fields.append(key) |                 raise ValidationError( | ||||||
|         for key in remove_fields: |                     _('Es befinden sich unerlaubte Felder in Ihrem Aufruf. Bitte entfernen Sie diese.')) | ||||||
|             del vals[key] |  | ||||||
|         return vals |         return vals | ||||||
| 
 | 
 | ||||||
|     @api.model |     @api.model | ||||||
|  |  | ||||||
|  | @ -18,11 +18,11 @@ | ||||||
| #    along with this program.  If not, see <http://www.gnu.org/licenses/>. | #    along with this program.  If not, see <http://www.gnu.org/licenses/>. | ||||||
| # | # | ||||||
| ############################################################################## | ############################################################################## | ||||||
|  | from odoo.addons.component.core import Component | ||||||
|  | 
 | ||||||
| from odoo import fields, models, api, _ | from odoo import fields, models, api, _ | ||||||
| from odoo.exceptions import ValidationError | from odoo.exceptions import ValidationError | ||||||
| 
 | 
 | ||||||
| from odoo.addons.component.core import Component |  | ||||||
| 
 |  | ||||||
| 
 | 
 | ||||||
| class ProductXCategory(models.Model): | class ProductXCategory(models.Model): | ||||||
|     _name = 'product.xcategory' |     _name = 'product.xcategory' | ||||||
|  | @ -66,7 +66,7 @@ class ProductTemplate(models.Model): | ||||||
|         :param vals: |         :param vals: | ||||||
|         :return: |         :return: | ||||||
|         """ |         """ | ||||||
|         vals = self.remove_not_specified_fields(vals) |         self.check_not_specified_fields(vals) | ||||||
|         vals = self.correct_values(vals) |         vals = self.correct_values(vals) | ||||||
|         product_template = self.with_context(active_test=False).search([('default_code', '=', vals['default_code'])]) |         product_template = self.with_context(active_test=False).search([('default_code', '=', vals['default_code'])]) | ||||||
|         if product_template: |         if product_template: | ||||||
|  | @ -120,13 +120,23 @@ class ProductTemplate(models.Model): | ||||||
|                         _("Produktionslinie \'%s\' kann nicht zugeordnet werden") % assembly_line_code) |                         _("Produktionslinie \'%s\' kann nicht zugeordnet werden") % assembly_line_code) | ||||||
|             vals['assembly_line_ids'] = [(6, 0, assembly_line_ids)] |             vals['assembly_line_ids'] = [(6, 0, assembly_line_ids)] | ||||||
| 
 | 
 | ||||||
|  |         if vals.get('tax', False): | ||||||
|  |             if vals['tax'] not in ["20% MwSt.", "10% MwSt.", "0% MwSt."]: | ||||||
|  |                 raise ValidationError(_("Die Steuer \'%s\' ist nicht gültig.") % vals['tax']) | ||||||
|  | 
 | ||||||
|  |             tax = self.env['account.tax'].search([('name', '=', vals['tax'])]) | ||||||
|  |             if tax: | ||||||
|  |                 vals['taxes_id'] = [(6, 0, [tax.id])] | ||||||
|  |             else: | ||||||
|  |                 raise ValidationError(_("Die Steuer \'%s\' kann nicht zugeordnet werden") % vals['tax']) | ||||||
|  | 
 | ||||||
|         return vals |         return vals | ||||||
| 
 | 
 | ||||||
|     @api.model |     @api.model | ||||||
|     def _get_specified_fields(self): |     def _get_specified_fields(self): | ||||||
|         return ['default_code', 'name', 'length', 'width', 'thickness', 'surface', 'active', 'weight', 'is_internal', |         return ['default_code', 'name', 'length', 'width', 'thickness', 'surface', 'active', 'weight', 'is_internal', | ||||||
|                 'xcat_id', 'notes', 'material_type_id', 'intrastat_id', 'sale_ok', 'assembly_line_ids', 'list_price', |                 'xcat_id', 'notes', 'material_type_id', 'intrastat_id', 'sale_ok', 'assembly_line_ids', 'list_price', | ||||||
|                 'height', 'categ_id', 'can_be_sold_unconfigured', 'image'] |                 'height', 'categ_id', 'can_be_sold_unconfigured', 'image', 'tax'] | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class ProductCategory(models.Model): | class ProductCategory(models.Model): | ||||||
|  | @ -142,21 +152,30 @@ class ProductPricelistItemEventListener(Component): | ||||||
| 
 | 
 | ||||||
|     @api.model |     @api.model | ||||||
|     def on_record_write(self, record, fields=None): |     def on_record_write(self, record, fields=None): | ||||||
|         partners = self.env['res.partner'].search([('property_product_pricelist', '=', record.id)]) |         partners = self.env['res.partner'].search([('property_product_pricelist', '=', record.pricelist_id.id)]) | ||||||
|         for partner in partners: |         for partner in partners: | ||||||
|             if partner.portal_id and partner.active: |             if partner.portal_id and partner.company_type == 'company': | ||||||
|                 partner.portal_export_pending = True |                 partner.portal_export_pending = True | ||||||
| 
 | 
 | ||||||
|     @api.model |     @api.model | ||||||
|     def on_record_create(self, record, fields=None): |     def on_record_create(self, record, fields=None): | ||||||
|         partners = self.env['res.partner'].search([('property_product_pricelist', '=', record.id)]) |         partners = self.env['res.partner'].search([('property_product_pricelist', '=', record.pricelist_id.id)]) | ||||||
|         for partner in partners: |         for partner in partners: | ||||||
|             if partner.portal_id: |             if partner.portal_id and partner.company_type == 'company': | ||||||
|                 partner.portal_export_pending = True |                 partner.portal_export_pending = True | ||||||
| 
 | 
 | ||||||
|     @api.model |     @api.model | ||||||
|     def on_record_unlink(self, record): |     def on_record_unlink(self, record): | ||||||
|         partners = self.env['res.partner'].search([('property_product_pricelist', '=', record.id)]) |         partners = self.env['res.partner'].search([('property_product_pricelist', '=', record.pricelist_id.id)]) | ||||||
|         for partner in partners: |         for partner in partners: | ||||||
|             if partner.portal_id: |             if partner.portal_id and partner.company_type == 'company': | ||||||
|                 partner.portal_export_pending = True |                 partner.portal_export_pending = True | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class ProductPricelistItem(models.Model): | ||||||
|  |     _inherit = 'product.pricelist.item' | ||||||
|  | 
 | ||||||
|  |     applied_on = fields.Selection(selection=[ | ||||||
|  |         ('3_global', 'Global'), | ||||||
|  |         ('2_product_category', ' Product Category'), | ||||||
|  |         ('0_product_variant', 'Product Variant')]) | ||||||
|  |  | ||||||
|  | @ -34,16 +34,12 @@ class PartnerEventListener(Component): | ||||||
|     _apply_on = ['res.partner'] |     _apply_on = ['res.partner'] | ||||||
| 
 | 
 | ||||||
|     def on_record_write(self, record, fields=None): |     def on_record_write(self, record, fields=None): | ||||||
|         if record.active and record.portal_id: |         if record.active and record.portal_id and record.company_type == 'company': | ||||||
|             if 'company_type' in fields: |             if 'company_type' in fields or 'property_product_pricelist' in fields: | ||||||
|                 if record.company_type == 'company' and record.type != 'delivery': |  | ||||||
|                 self.env['res.partner'].with_delay().job_export_portal_price(record) |                 self.env['res.partner'].with_delay().job_export_portal_price(record) | ||||||
|             if 'property_product_pricelist' in fields: | 
 | ||||||
|                 for contact in record.child_ids: |     def on_record_create(self, record, fields=None): | ||||||
|                     if contact.type != 'delivery': |         if record.active and record.portal_id and record.company_type == 'company': | ||||||
|                         self.env['res.partner'].with_delay().job_export_portal_price(contact) |  | ||||||
|             if 'parent_id' in fields: |  | ||||||
|                 if record.type != 'delivery': |  | ||||||
|             self.env['res.partner'].with_delay().job_export_portal_price(record) |             self.env['res.partner'].with_delay().job_export_portal_price(record) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | @ -97,7 +93,7 @@ class Partner(models.Model): | ||||||
|         :param vals: |         :param vals: | ||||||
|         :return: |         :return: | ||||||
|         """ |         """ | ||||||
|         vals = self.with_context(sst_1=True).remove_not_specified_fields(vals) |         self.with_context(sst_1=True).check_not_specified_fields(vals) | ||||||
|         vals = self.correct_values(vals) |         vals = self.correct_values(vals) | ||||||
|         if not vals.get('active', False): |         if not vals.get('active', False): | ||||||
|             vals['active'] = False |             vals['active'] = False | ||||||
|  | @ -113,7 +109,7 @@ class Partner(models.Model): | ||||||
|         :param vals: |         :param vals: | ||||||
|         :return: |         :return: | ||||||
|         """ |         """ | ||||||
|         vals = self.with_context(sst_14=True).remove_not_specified_fields(vals) |         self.with_context(sst_14=True).check_not_specified_fields(vals) | ||||||
|         vals = self.correct_values(vals) |         vals = self.correct_values(vals) | ||||||
|         return self.create(vals).id |         return self.create(vals).id | ||||||
| 
 | 
 | ||||||
|  | @ -124,7 +120,7 @@ class Partner(models.Model): | ||||||
|         :param vals: |         :param vals: | ||||||
|         :return: |         :return: | ||||||
|         """ |         """ | ||||||
|         vals = self.with_context(sst_11=True).remove_not_specified_fields(vals) |         self.with_context(sst_11=True).check_not_specified_fields(vals) | ||||||
|         vals = self.correct_values(vals) |         vals = self.correct_values(vals) | ||||||
|         partner = self.with_context(active_test=False).search([('ref', '=', vals['ref'])]) |         partner = self.with_context(active_test=False).search([('ref', '=', vals['ref'])]) | ||||||
|         if partner: |         if partner: | ||||||
|  | @ -283,7 +279,6 @@ class Partner(models.Model): | ||||||
|     def cron_export_portal_prices(self): |     def cron_export_portal_prices(self): | ||||||
|         partners = self.search([('portal_export_pending', '=', True), ('company_id', '=', self.env.user.company_id.id)]) |         partners = self.search([('portal_export_pending', '=', True), ('company_id', '=', self.env.user.company_id.id)]) | ||||||
|         for partner in partners: |         for partner in partners: | ||||||
|             if partner.type != 'delivery': |  | ||||||
|             self.with_delay().job_export_portal_price(partner) |             self.with_delay().job_export_portal_price(partner) | ||||||
|             partner.portal_export_pending = False |             partner.portal_export_pending = False | ||||||
| 
 | 
 | ||||||
|  | @ -296,14 +291,14 @@ class Partner(models.Model): | ||||||
|         data = [] |         data = [] | ||||||
|         for item in pricelist.item_ids: |         for item in pricelist.item_ids: | ||||||
|             if item.compute_price == 'percentage' and item.applied_on in ['3_global', '2_product_category', |             if item.compute_price == 'percentage' and item.applied_on in ['3_global', '2_product_category', | ||||||
|                                                                           '1_product']: |                                                                           '0_product_variant']: | ||||||
|                 code = False |                 code = False | ||||||
|                 if item.applied_on == '2_product_category': |                 if item.applied_on == '2_product_category': | ||||||
|                     code = item.categ_id.code |                     code = item.categ_id.code | ||||||
|                 if item.applied_on == '1_product': |                 if item.applied_on == '0_product_variant': | ||||||
|                     code = item.product_tmpl_id.default_code |                     code = item.product_tmpl_id.default_code | ||||||
|                 data.append({ |                 data.append({ | ||||||
|                     'customer_id': partner_id.portal_id, |                     'customer_id': partner_id.commercial_partner_id.portal_id, | ||||||
|                     'code': code, |                     'code': code, | ||||||
|                     'discount': 1 - (item.percent_price / 100) |                     'discount': 1 - (item.percent_price / 100) | ||||||
|                 }) |                 }) | ||||||
|  |  | ||||||
|  | @ -0,0 +1,14 @@ | ||||||
|  | # Copyright 2018-Today datenpol gmbh (<http://www.datenpol.at>) | ||||||
|  | # License OPL-1 or later (https://www.odoo.com/documentation/user/11.0/legal/licenses/licenses.html#licenses). | ||||||
|  | 
 | ||||||
|  | from odoo import api, models | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class Users(models.Model): | ||||||
|  |     _inherit = 'res.users' | ||||||
|  | 
 | ||||||
|  |     @api.model | ||||||
|  |     def create(self, vals): | ||||||
|  |         vals['customer'] = False | ||||||
|  | 
 | ||||||
|  |         return super(Users, self).create(vals) | ||||||
|  | @ -202,7 +202,7 @@ class SaleOrder(models.Model): | ||||||
|             if key.startswith('delivery_'): |             if key.startswith('delivery_'): | ||||||
|                 delivery_vals[key.replace('delivery_', '')] = vals[key] |                 delivery_vals[key.replace('delivery_', '')] = vals[key] | ||||||
| 
 | 
 | ||||||
|         delivery_vals = delivery_partner.with_context(delivery_partner=True).remove_not_specified_fields(delivery_vals) |         delivery_partner.with_context(delivery_partner=True).check_not_specified_fields(delivery_vals) | ||||||
|         delivery_vals = delivery_partner.correct_values(delivery_vals) |         delivery_vals = delivery_partner.correct_values(delivery_vals) | ||||||
|         delivery_vals['parent_id'] = partner.id |         delivery_vals['parent_id'] = partner.id | ||||||
| 
 | 
 | ||||||
|  | @ -219,7 +219,7 @@ class SaleOrder(models.Model): | ||||||
| 
 | 
 | ||||||
|         attachment_vals = vals.get('attachment_ids', False) |         attachment_vals = vals.get('attachment_ids', False) | ||||||
|         order_line_vals = vals.get('order_lines', False) |         order_line_vals = vals.get('order_lines', False) | ||||||
|         vals = self.remove_not_specified_fields(vals) |         self.check_not_specified_fields(vals) | ||||||
|         vals = self.correct_values(vals) |         vals = self.correct_values(vals) | ||||||
|         payment_term = partner.property_payment_term_id |         payment_term = partner.property_payment_term_id | ||||||
|         if partner.retail_partner_id: |         if partner.retail_partner_id: | ||||||
|  |  | ||||||
|  | @ -62,6 +62,17 @@ | ||||||
|         </field> |         </field> | ||||||
|     </record> |     </record> | ||||||
| 
 | 
 | ||||||
|  |     <record id="dp_product_pricelist_item_form_view" model="ir.ui.view"> | ||||||
|  |         <field name="name">dp_product_pricelist_item_form_view</field> | ||||||
|  |         <field name="model">product.pricelist.item</field> | ||||||
|  |         <field name="inherit_id" ref="product.product_pricelist_item_form_view"/> | ||||||
|  |         <field name="arch" type="xml"> | ||||||
|  |             <field name="applied_on" position="attributes"> | ||||||
|  |                 <attribute name="attrs">{'invisible':[('applied_on', '=', '1_product')]}</attribute> | ||||||
|  |             </field> | ||||||
|  |         </field> | ||||||
|  |     </record> | ||||||
|  | 
 | ||||||
|     <record id="product_xcategory_form_view" model="ir.ui.view"> |     <record id="product_xcategory_form_view" model="ir.ui.view"> | ||||||
|         <field name="name">product_xcategory_form_view</field> |         <field name="name">product_xcategory_form_view</field> | ||||||
|         <field name="model">product.xcategory</field> |         <field name="model">product.xcategory</field> | ||||||
|  |  | ||||||
|  | @ -64,7 +64,7 @@ class PortalAssignCompany(models.TransientModel): | ||||||
| 
 | 
 | ||||||
|         # Wichtig hier ist, dass dieser Call vor dem ersten Write stattfindet, da das Portal |         # Wichtig hier ist, dass dieser Call vor dem ersten Write stattfindet, da das Portal | ||||||
|         # parallel einen Call absetzt, dann dann blockieren würde. |         # parallel einen Call absetzt, dann dann blockieren würde. | ||||||
|         self.send_to_portal(partner.portal_id, partner.id) |         # self.send_to_portal(partner.portal_id, partner.id) | ||||||
|         partner.write({'portal_pending': False, 'active': True}) |         partner.write({'portal_pending': False, 'active': True}) | ||||||
| 
 | 
 | ||||||
|         return True |         return True | ||||||
|  |  | ||||||
|  | @ -4,7 +4,6 @@ | ||||||
|     <template id="report_assets_common" inherit_id="web.report_assets_common"> |     <template id="report_assets_common" inherit_id="web.report_assets_common"> | ||||||
|         <xpath expr="." position="inside"> |         <xpath expr="." position="inside"> | ||||||
|             <link rel="stylesheet" type="text/less" href="/dp_reports/static/src/less/report_backend.less"/> |             <link rel="stylesheet" type="text/less" href="/dp_reports/static/src/less/report_backend.less"/> | ||||||
|             <link href="https://fonts.googleapis.com/css?family=Raleway:300,400,700" rel="stylesheet"/> |  | ||||||
|         </xpath> |         </xpath> | ||||||
|     </template> |     </template> | ||||||
| 
 | 
 | ||||||
|  | @ -89,7 +88,7 @@ | ||||||
|                         · |                         · | ||||||
|                         <span t-esc="company.email"/> |                         <span t-esc="company.email"/> | ||||||
|                         · |                         · | ||||||
|                         <span t-esc="company.website"/> |                         <span t-esc="company.website.replace('http://', '').replace('https://', '')"/> | ||||||
|                     </strong> |                     </strong> | ||||||
|                 </div> |                 </div> | ||||||
|             </div> |             </div> | ||||||
|  | @ -121,7 +120,7 @@ | ||||||
|             <div class="row" style="padding-left:0;"> |             <div class="row" style="padding-left:0;"> | ||||||
|                 <div class="col-xs-12 text-center"> |                 <div class="col-xs-12 text-center"> | ||||||
|                     <strong> |                     <strong> | ||||||
|                         Die AGBs sind auf der Homepage verfügbar. |                         Die AGBs finden Sie auf unserer Website. | ||||||
|                     </strong> |                     </strong> | ||||||
|                 </div> |                 </div> | ||||||
|             </div> |             </div> | ||||||
|  | @ -167,7 +166,7 @@ | ||||||
|         </div> |         </div> | ||||||
|         <div> |         <div> | ||||||
|             <strong> |             <strong> | ||||||
|                 <span t-esc="company.partner_id.website"/> |                 <span t-esc="company.partner_id.website.replace('http://', '').replace('https://', '')"/> | ||||||
|             </strong> |             </strong> | ||||||
|         </div> |         </div> | ||||||
|     </template> |     </template> | ||||||
|  |  | ||||||
|  | @ -106,10 +106,16 @@ | ||||||
|                                         <strong> |                                         <strong> | ||||||
|                                             <t t-esc="layout_category['name']"/> |                                             <t t-esc="layout_category['name']"/> | ||||||
|                                             <t t-if="layout_category.get('order_id')"> |                                             <t t-if="layout_category.get('order_id')"> | ||||||
|  |                                                 <t t-f="o.partner_id.id != layout_category['order_id'].partner_id.id"> | ||||||
|                                                     <t t-if="layout_category['order_id'].partner_id.ref"> |                                                     <t t-if="layout_category['order_id'].partner_id.ref"> | ||||||
|                                                         - |                                                         - | ||||||
|                                                         <t t-esc="layout_category['order_id'].partner_id.ref"/> |                                                         <t t-esc="layout_category['order_id'].partner_id.ref"/> | ||||||
|                                                     </t> |                                                     </t> | ||||||
|  |                                                     <t t-if="layout_category['order_id'].partner_id.name"> | ||||||
|  |                                                         - | ||||||
|  |                                                         <t t-esc="layout_category['order_id'].partner_id.name"/> | ||||||
|  |                                                     </t> | ||||||
|  |                                                 </t> | ||||||
|                                                 <t t-if="layout_category['order_id'].origin"> |                                                 <t t-if="layout_category['order_id'].origin"> | ||||||
|                                                     - |                                                     - | ||||||
|                                                     <t t-esc="layout_category['order_id'].origin"/> |                                                     <t t-esc="layout_category['order_id'].origin"/> | ||||||
|  |  | ||||||
|  | @ -2,6 +2,7 @@ | ||||||
| @odoo-brand-optional: #a72523; | @odoo-brand-optional: #a72523; | ||||||
| @navbar-default-color: #a72523; | @navbar-default-color: #a72523; | ||||||
| @brand-primary: #a72523; | @brand-primary: #a72523; | ||||||
|  | @font-family-sans-serif: Raleway, "Lucida Grande", Helvetica, Verdana, Arial, sans-serif; | ||||||
| 
 | 
 | ||||||
| @navbar-default-bg: #ffffff; | @navbar-default-bg: #ffffff; | ||||||
| @odoo-control-panel-background-color: #ffffff; | @odoo-control-panel-background-color: #ffffff; | ||||||
|  |  | ||||||
|  | @ -0,0 +1,3 @@ | ||||||
|  | body { | ||||||
|  |   font-family: Raleway, "Helvetica Neue", Helvetica, Arial, sans-serif; | ||||||
|  | } | ||||||
|  | @ -1,10 +1,16 @@ | ||||||
| <?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | ||||||
| <odoo> | <odoo> | ||||||
| 
 | 
 | ||||||
|     <template id="assets_backend" name="dp_style assets" inherit_id="web.assets_backend"> |     <template id="assets_backend" name="dp_style assets_backend" inherit_id="web.assets_backend"> | ||||||
|         <xpath expr="." position="inside"> |         <xpath expr="." position="inside"> | ||||||
|             <link rel="stylesheet" type="text/less" href="/dp_style/static/src/less/variables.less"/> |             <link rel="stylesheet" type="text/less" href="/dp_style/static/src/less/variables.less"/> | ||||||
|         </xpath> |         </xpath> | ||||||
|     </template> |     </template> | ||||||
| 
 | 
 | ||||||
|  |     <template id="assets_editor" name="dp_style assets_editor" inherit_id="web_editor.assets_editor"> | ||||||
|  |         <xpath expr="." position="inside"> | ||||||
|  |             <link rel="stylesheet" type="text/less" href="/dp_style/static/src/less/web_variables.less"/> | ||||||
|  |         </xpath> | ||||||
|  |     </template> | ||||||
|  | 
 | ||||||
| </odoo> | </odoo> | ||||||
|  |  | ||||||
|  | @ -17,13 +17,13 @@ class ConfigTZA(Config): | ||||||
|             'zip': '2244', |             'zip': '2244', | ||||||
|             'phone': '+43 2538/8628–0', |             'phone': '+43 2538/8628–0', | ||||||
|             'email': 'office@tzaustria.com', |             'email': 'office@tzaustria.com', | ||||||
|             'website': 'https://www.tzaustria.com/', |             'website': 'www.tzaustria.com', | ||||||
|             'company_registry': 'FN 224119m', |             'company_registry': 'FN2244119m', | ||||||
|             'country_id': 'at', # 'de' für Deutschland |             'country_id': 'at', # 'de' für Deutschland | ||||||
|             'vat': 'ATU 546 19 104', |             'vat': 'ATU 546 19 104', | ||||||
|             'vat_check_vies': True, |             'vat_check_vies': True, | ||||||
|             'logo': '../ext/custom-addons/dp_custom/static/src/img/logo.png', |             'logo': '../ext/custom-addons/dp_custom/static/src/img/logo.png', | ||||||
|             'eori_nr': 'ATEOS 100011273', |             'eori_nr': 'ATEOS1 0000 11273', | ||||||
|             #'favicon_backend': '../ext/custom-addons/dp_custom/static/src/img/favicon.ico', |             #'favicon_backend': '../ext/custom-addons/dp_custom/static/src/img/favicon.ico', | ||||||
|             #'favicon_backend_mimetype': 'image/x-icon' |             #'favicon_backend_mimetype': 'image/x-icon' | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  | @ -40,9 +40,9 @@ ENVIRONMENTS = { | ||||||
|     'br-tz'       : Environment('http://localhost',  '8080', 'tz-austria_1', 'tz-admin',     'x', 'admin', config = ConfigTZA()), |     'br-tz'       : Environment('http://localhost',  '8080', 'tz-austria_1', 'tz-admin',     'x', 'admin', config = ConfigTZA()), | ||||||
|     'br-glaser'   : Environment('http://localhost',  '8080', 'tz-austria_1', 'glaser-admin', 'x', 'admin', config = ConfigGlaser()), |     'br-glaser'   : Environment('http://localhost',  '8080', 'tz-austria_1', 'glaser-admin', 'x', 'admin', config = ConfigGlaser()), | ||||||
| 
 | 
 | ||||||
|     'aa'          : Environment('http://localhost',  '8080', 'tz-austria_1', 'admin',        'x', 'admin', config = ConfigTZA()), |     'aa'          : Environment('http://localhost',  '8080', 'tz-austria_2', 'admin',        'x', 'admin', config = ConfigTZA()), | ||||||
|     'aa-tz'       : Environment('http://localhost',  '8080', 'tz-austria_1', 'tz-admin',     'x', 'admin', config = ConfigTZA()), |     'aa-tz'       : Environment('http://localhost',  '8080', 'tz-austria_1', 'tz-admin',     'x', 'admin', config = ConfigTZA()), | ||||||
|     'aa-glaser'   : Environment('http://localhost',  '8080', 'tz-austria_1', 'glaser-admin', 'x', 'admin', config = ConfigGlaser()), |     'aa-glaser'   : Environment('http://localhost',  '8080', 'tz-austria_2', 'glaser-admin', 'x', 'admin', config = ConfigGlaser()), | ||||||
| 
 | 
 | ||||||
|     'rw'          : Environment('http://localhost',  '8080', 'tz-austria_1', 'admin',        'x', 'admin', config = ConfigTZA()), |     'rw'          : Environment('http://localhost',  '8080', 'tz-austria_1', 'admin',        'x', 'admin', config = ConfigTZA()), | ||||||
|     'rw-tz'       : Environment('http://localhost',  '8080', 'tz-austria_1', 'tz-admin',     'x', 'admin', config = ConfigTZA()), |     'rw-tz'       : Environment('http://localhost',  '8080', 'tz-austria_1', 'tz-admin',     'x', 'admin', config = ConfigTZA()), | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue