def _render_template_list(target, event=None): tpl = get_template_module('designer/_list.html') default_ticket = get_default_ticket_on_category(target) if isinstance(target, Category) else None default_badge = get_default_badge_on_category(target) if isinstance(target, Category) else None not_deletable = get_not_deletable_templates(target) return tpl.render_template_list(target.designer_templates, target, event=event, default_ticket=default_ticket, default_badge=default_badge, inherited_templates=get_inherited_templates(target), not_deletable_templates=not_deletable)
def _process(self): templates = get_inherited_templates(self.target) not_deletable = get_not_deletable_templates(self.target) default_ticket = get_default_ticket_on_category(self.target) if isinstance(self.target, Category) else None default_badge = get_default_badge_on_category(self.target) if isinstance(self.target, Category) else None signals.event.filter_selectable_badges.send(type(self), badge_templates=templates) signals.event.filter_selectable_badges.send(type(self), badge_templates=not_deletable) return self._render_template('list.html', inherited_templates=templates, not_deletable_templates=not_deletable, default_ticket=default_ticket, default_badge=default_badge)
def __init__(self, *args, **kwargs): event = kwargs.pop('event') super().__init__(*args, **kwargs) default_tpl = get_default_ticket_on_category(event.category) all_templates = set(event.designer_templates) | get_inherited_templates(event) badge_templates = [(tpl.id, tpl.title) for tpl in all_templates if tpl.type == TemplateType.badge and tpl != default_tpl] # Show the default template first badge_templates.insert(0, (default_tpl.id, '{} ({})'.format(default_tpl.title, _('Default category template')))) self.ticket_template_id.choices = badge_templates
def generate_ticket(registration): from indico.modules.designer.util import get_default_ticket_on_category from indico.modules.events.registration.controllers.management.tickets import DEFAULT_TICKET_PRINTING_SETTINGS template = (registration.registration_form.ticket_template or get_default_ticket_on_category(registration.event.category)) registrations = [registration] signals.event.designer.print_badge_template.send(template, regform=registration.registration_form, registrations=registrations) pdf_class = RegistrantsListToBadgesPDFFoldable if template.backside_template else RegistrantsListToBadgesPDF pdf = pdf_class(template, DEFAULT_TICKET_PRINTING_SETTINGS, registration.event, registrations) return pdf.get_pdf()
def _process(self): template = DesignerTemplate.get_or_404(request.view_args['template_id']) all_ticket_templates = [tpl for tpl in get_all_templates(self.category) if tpl.type == TemplateType.badge and tpl.is_ticket] if template not in all_ticket_templates: raise Exception('Invalid template') if template == self.category.default_ticket_template: # already the default -> clear it self.category.default_ticket_template = None elif template == get_default_ticket_on_category(self.category, only_inherited=True): # already the inherited default -> clear it instead of setting it explicitly self.category.default_ticket_template = None else: self.category.default_ticket_template = template if self.category.is_root and not self.category.default_ticket_template: raise Exception('Cannot clear default ticket template on root category') return jsonify_data(html=_render_template_list(self.category))