# -*- mode: python; coding: utf-8 -*- """printer.forms Form to add, edit, cancel printer jobs. Author : Maxime Bombar . """ from django import forms from django.forms import ( Form, ModelForm, ) from django.utils.translation import ugettext_lazy as _ import itertools from re2o.mixins import FormRevMixin from users.models import User from .models import ( JobWithOptions, ) class JobWithOptionsForm(FormRevMixin, ModelForm): def __init__(self, *args, **kwargs): prefix = kwargs.pop('prefix', self.Meta.model.__name__) self.user = kwargs.pop('user') super(JobWithOptionsForm, self).__init__(*args, prefix=prefix, **kwargs) if not self.user.adherent.club_members.all(): self.fields.pop('printAs') else: self.fields['printAs'].label = _('Print As') self.fields['printAs'].empty_label = self.user.pseudo self.fields['printAs'].queryset = self.user.adherent.club_members.all() class Meta: model = JobWithOptions fields = [ 'file', 'printAs', 'color', 'disposition', 'format', 'count', ]