westphahl/verleihsystem — Issue #7: Datenbankabfragen durch Category.get_contact_person()
Author: westphahl
Created: 2011-11-30 18:53:17+00:00
State: open
Labels: performance

Ist bei der ausgewählten Kategorie kein Kontakt angegeben, so werden alle Vorfahren im Baum auf der Suche nach einem Ansprechpartner durchlaufen.

```
def get_contact_person(self):
user_id = self.contact_id
if not user_id:
for c in self.get_ancestors(True):
if c.contact_id != None:
user_id = c.contact_id
break
user = User.objects.get(id=user_id)
return user
```

Besser wäre es, die Ansprechpartner beim Speichern einer Kategorie für alle Unterkategorien zu setzen, sofern diese noch keinen Ansprechpartner besitzen. Hierbei würde aber das Problem auftauchen, dass wenn einmal ein Ansprechpartner gesetzt wurde, dieser nur durch direktes Editieren geändert werden kann.

Evtl. könnte man hier ein Flag einbauen: Ansprechpartner vererben, oderso.