File diff d59dce512865 → 843dbaebdae4
conntrackt/models.py
Show inline comments
 
@@ -23,6 +23,28 @@
 
from django.core.exceptions import ValidationError
 
from django.core.urlresolvers import reverse
 
from django.db import models
 
from django.db.models.query_utils import Q
 

	
 

	
 
class SearchManager(models.Manager):
 
    """
 
    Custom model manager that implements search for model instances that contain
 
    a specific string (search term) in fields "name" or "description".
 
    """
 

	
 
    def search(self, search_term):
 
        """
 
        Performs a search for model instances that contain the provided search
 
        term in fields "name" or "description". The search is case-insensitive.
 

	
 
        Arguments:
 
          search_term - String to search the name and description for.
 

	
 
        Returns:
 
          Query set with model instances that matched the search.
 
        """
 

	
 
        return self.filter(Q(name__icontains=search_term) | Q(description__icontains=search_term))
 

	
 

	
 
class Project(models.Model):
 
@@ -39,6 +61,7 @@ class Project(models.Model):
 

	
 
    name = models.CharField(max_length=100, unique=True)
 
    description = models.TextField(blank=True)
 
    objects = SearchManager()
 

	
 
    class Meta:
 
        permissions = (("view", "Can view information"),)
 
@@ -119,6 +142,7 @@ class Entity(models.Model):
 
    description = models.TextField(blank=True)
 
    project = models.ForeignKey(Project)
 
    location = models.ForeignKey(Location)
 
    objects = SearchManager()
 

	
 
    class Meta:
 
        # Fix the plural form used by Django.