from django.db import models


class ThesisLinkManager(models.Manager):
    def search_results(self, form):
        return self.vetted().filter(
            title__icontains=form.cleaned_data['title_keyword'],
            author__icontains=form.cleaned_data['author'],
            abstract__icontains=form.cleaned_data['abstract_keyword'],
            supervisor__icontains=form.cleaned_data['supervisor'],
        ).order_by('-defense_date')

    def latest(self, n):
        return self.vetted().order_by('latest_activity')[:n]

    def vetted(self):
        return self.filter(vetted=True)

    def awaiting_vetting(self):
        return self.filter(vetted=False)

    def open_for_commenting(self):
        return self.filter(open_for_commenting=True)