"""Module for work with template details.""" from flask import g from oto import status from salessheets import features from salessheets.constants import features as feature_flags from salessheets.models import template_details from salessheets.models import vendor_default_template def get_vendor_template(vendor_id): """Return template for given vendor. Args: vendor_id (int): vendor id, coincides with the art_relations.vendor.vendor_id Returns: Response: Response with vendor template JSON. """ vendor_info = vendor_default_template.get_vendor_default_template( vendor_id) if vendor_info.status == status.NOT_FOUND: g.log.error( 'There is no default template for vendor {} found.'.format( vendor_id)) return template_details.get_default_template() if not vendor_info: return vendor_info template_id = vendor_info.message['template_id'] return template_details.get_template_by_id(template_id) def set_vendor_template(vendor_id, template_id): """Set template for given vendor. Args: vendor_id (int): vendor id, coincides with the art_relations.vendor.vendor_id template_id (int): template id, to set for a vendor Returns: Response: Response with vendor template JSON. """ template = template_details.get_template_by_id(template_id) if not template: return template return vendor_default_template.set_vendor_template(vendor_id, template_id) def get_default_templates(): """Return the list of possible variants of default templates. Returns: flask.Response: Response with JSON list of templates. """ result = template_details.get_all_templates() if result: if not features.is_feature_enabled( feature_flags.LOCALIZED_SALES_SHEETS_EUROPE): result.message = [ t for t in result.message if t['template_name'] != 'Europe'] if not features.is_feature_enabled( feature_flags.JAPAN_SALES_SHEETS): result.message = [ t for t in result.message if t['template_name'] != 'Japan'] return result