def get_pupitres_str(self, prefix=True, tags=False, solistes=False): if not self.pk: return '' pupitres = self.pupitres.all() if solistes: pupitres = [p for p in pupitres if p.soliste] if not pupitres: return '' if not prefix: return str_list_w_last([p.html(tags=tags) for p in pupitres]) pupitres_roles = str_list_w_last([ p.html(tags=tags) for p in pupitres if p.partie.type == Partie.ROLE ]) pupitres_instruments = str_list_w_last([ p.html(tags=tags) for p in pupitres if p.partie.type == Partie.INSTRUMENT ]) if pupitres_roles: out = ugettext('de ') + pupitres_roles if pupitres_instruments: out += ugettext(' avec ') + pupitres_instruments return out return ugettext('pour ') + pupitres_instruments
def get_pupitres_str(self, prefix=True, tags=False, solistes=False): if not self.pk: return '' pupitres = self.pupitres.all() if solistes: pupitres = [p for p in pupitres if p.soliste] if not pupitres: return '' if not prefix: return str_list_w_last([p.html(tags=tags) for p in pupitres]) pupitres_roles = str_list_w_last([ p.html(tags=tags) for p in pupitres if p.partie.type == Partie.ROLE]) pupitres_instruments = str_list_w_last([ p.html(tags=tags) for p in pupitres if p.partie.type == Partie.INSTRUMENT]) if pupitres_roles: out = ugettext('de ') + pupitres_roles if pupitres_instruments: out += ugettext(' avec ') + pupitres_instruments return out return ugettext('pour ') + pupitres_instruments
def clean(self): data = super(ConstrainedModelForm, self).clean() for required_fieldnames, fieldnames in self.REQUIRED_BY: for required_fieldname in required_fieldnames: verbose_required = self.get_field_verbose(required_fieldname) for fieldname in fieldnames: verbose = self.get_field_verbose(fieldname) if data.get( fieldname) and not data.get(required_fieldname): msg = _('« %(field)s » ne peut être saisi ' 'sans « %(required)s ».') % { 'field': verbose, 'required': verbose_required } for k in (fieldname, required_fieldname): self.add_error(k, msg) for fieldnames in self.INCOMPATIBLES: if all(data.get(fieldname) for fieldname in fieldnames): for fieldname in fieldnames: verbose = self.get_field_verbose(fieldname) other_fields = [ _('« %s »') % self.get_field_verbose(k) for k in fieldnames if k != fieldname ] msg = _('« %(field)s » ne peut être saisi ' 'avec %(other_fields)s.') % { 'field': verbose, 'other_fields': str_list_w_last(other_fields) } self.add_error(fieldname, msg) return data
def clean(self): data = super(ConstrainedModelForm, self).clean() for required_fieldnames, fieldnames in self.REQUIRED_BY: for required_fieldname in required_fieldnames: verbose_required = self.get_field_verbose(required_fieldname) for fieldname in fieldnames: verbose = self.get_field_verbose(fieldname) if data.get(fieldname) and not data.get(required_fieldname): msg = _('« %(field)s » ne peut être saisi ' 'sans « %(required)s ».') % { 'field': verbose, 'required': verbose_required} for k in (fieldname, required_fieldname): self.add_error(k, msg) for fieldnames in self.INCOMPATIBLES: if all(data.get(fieldname) for fieldname in fieldnames): for fieldname in fieldnames: verbose = self.get_field_verbose(fieldname) other_fields = [_('« %s »') % self.get_field_verbose(k) for k in fieldnames if k != fieldname] msg = _('« %(field)s » ne peut être saisi ' 'avec %(other_fields)s.') % { 'field': verbose, 'other_fields': str_list_w_last(other_fields)} self.add_error(fieldname, msg) return data
def ensembles_html(self): return str_list_w_last([e.html() for e in self.ensembles.all()])
def auteurs_html(self): return str_list_w_last([a.html() for a in self.auteurs.all()])
def oeuvres_html(self): return str_list_w_last([o.titre_html() for o in self.oeuvres.all()])
def lieux_html(self): return str_list_w_last([l.html() for l in self.lieux.all()])
def calc_professions(self, tags=True): if not self.pk: return '' return str_list_w_last( p.html(feminin=self.is_feminin(), tags=tags, caps=i == 0) for i, p in enumerate(self.professions.all()))
def html(self, *args, **kwargs): return str_list_w_last([o.html(*args, **kwargs) for o in self])
def html(self, tags=True): return str_list_w_last([u.html(tags=tags) for u in self])