Changeset 522
- Timestamp:
- 02/02/10 11:23:10 (5 weeks ago)
- Files:
-
- 1 modified
-
trunk/telemeta/models/crem.py (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/telemeta/models/crem.py
r521 r522 39 39 from telemeta.util.unaccent import unaccent_icmp 40 40 import re 41 from django.db.models import FieldDoesNotExist 41 from django.db.models import FieldDoesNotExist, Q 42 42 from telemeta.models.core import DurationField, Duration, WeakForeignKey, EnhancedModel, \ 43 43 CharField, TextField, IntegerField, BooleanField, \ … … 571 571 return MediaCollection.objects.by_location(self) 572 572 573 def ancestors(self): 574 return Location.objects.filter(descendant_relations__location=self) 575 576 def descendants(self): 577 return Location.objects.filter(ancestor_relations__ancestor_location=self) 573 def ancestors(self, direct=False): 574 q = Q(descendant_relations__location=self) 575 if direct: 576 q &= Q(descendant_relations__is_direct=True) 577 return Location.objects.filter(q) 578 579 def descendants(self, direct=False): 580 q = Q(ancestor_relations__ancestor_location=self) 581 if direct: 582 q &= Q(ancestor_relations__is_direct=True) 583 return Location.objects.filter(q) 578 584 579 585 def add_child(self, other): … … 658 664 db_table = 'location_relations' 659 665 unique_together = ('location', 'ancestor_location') 666 667 def __unicode__(self): 668 sep = ' > ' 669 if not self.is_direct: 670 sep = ' >..> ' 671 return unicode(self.ancestor_location) + sep + unicode(self.location) 660 672 661 673 class ContextKeyword(Enumeration):
