Includes: - Odoo 19 framework (odoo/) - 27 custom EnCoach addons (new_project/custom_addons/) - encoach_core, encoach_api, encoach_lms_api, encoach_adaptive_api - encoach_exam, encoach_taxonomy, encoach_adaptive, encoach_assignment - encoach_ai, encoach_ai_grading, encoach_ai_generation, encoach_ai_media - encoach_courseware, encoach_communication, encoach_subscription - encoach_notification, encoach_approval, encoach_branding - encoach_classroom, encoach_registration, encoach_stats - encoach_faq, encoach_ticket, encoach_training, encoach_resources - encoach_adaptive_ai, encoach_sis - 21 OpenEduCat Enterprise modules (new_project/enterprise-19/) - 14 OpenEduCat Community modules (new_project/openeducat_erp-19.0/) - Configuration: odoo.conf, requirements.txt, scripts - 200+ REST API endpoints with JWT authentication - SRS and test documentation Made-with: Cursor
43 lines
1.7 KiB
Python
43 lines
1.7 KiB
Python
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
import werkzeug.urls
|
|
|
|
from odoo import models, fields, api
|
|
|
|
|
|
class ResPartner(models.Model):
|
|
_name = 'res.partner'
|
|
_inherit = ['res.partner', 'website.published.multi.mixin']
|
|
|
|
visitor_ids = fields.One2many('website.visitor', 'partner_id', string='Visitors')
|
|
|
|
def google_map_img(self, zoom=8, width=298, height=298):
|
|
google_maps_api_key = self.env['website'].get_current_website().google_maps_api_key
|
|
if not google_maps_api_key:
|
|
return False
|
|
params = {
|
|
'center': '%s, %s %s, %s' % (self.street or '', self.city or '', self.zip or '', self.country_id and self.country_id.display_name or ''),
|
|
'size': "%sx%s" % (width, height),
|
|
'zoom': zoom,
|
|
'sensor': 'false',
|
|
'key': google_maps_api_key,
|
|
}
|
|
return '//maps.googleapis.com/maps/api/staticmap?' + werkzeug.urls.url_encode(params)
|
|
|
|
def google_map_link(self, zoom=10):
|
|
params = {
|
|
'q': '%s, %s %s, %s' % (self.street or '', self.city or '', self.zip or '', self.country_id and self.country_id.display_name or ''),
|
|
'z': zoom,
|
|
}
|
|
return 'https://maps.google.com/maps?' + werkzeug.urls.url_encode(params)
|
|
|
|
@api.depends('website_id')
|
|
@api.depends_context('display_website')
|
|
def _compute_display_name(self):
|
|
super()._compute_display_name()
|
|
if not self.env.context.get('display_website') or not self.env.user.has_group('website.group_multi_website'):
|
|
return
|
|
for partner in self:
|
|
if partner.website_id:
|
|
partner.display_name += f' [{partner.website_id.name}]'
|