diff --git a/comments/migrations/0010_auto_20170216_1831.py b/comments/migrations/0010_auto_20170216_1831.py deleted file mode 100644 index 2a44e624ab9cbfb9c17af0907de9493ab2e19ccb..0000000000000000000000000000000000000000 --- a/comments/migrations/0010_auto_20170216_1831.py +++ /dev/null @@ -1,27 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.10.3 on 2017-02-16 17:31 -from __future__ import unicode_literals - -import comments.behaviors -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('comments', '0009_auto_20170212_2025'), - ] - - operations = [ - migrations.AlterField( - model_name='comment', - name='author', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='scipost.Contributor'), - ), - migrations.AlterField( - model_name='comment', - name='file_attachment', - field=models.FileField(blank=True, upload_to='uploads/comments/%Y/%m/%d/', validators=[comments.behaviors.validate_file_extension, comments.behaviors.validate_max_file_size]), - ), - ] diff --git a/theses/factories.py b/theses/factories.py index 550d5a73e004b69b8e40ac52ed2dc4618e9309c9..bf4a32440a8b5ddbbe1932c0bb2a27feaca7a464 100644 --- a/theses/factories.py +++ b/theses/factories.py @@ -23,6 +23,11 @@ class ThesisLinkFactory(factory.django.DjangoModelFactory): domain = 'ET' +class VettedThesisLinkFactory(ThesisLinkFactory): + vetted_by = factory.SubFactory(ContributorFactory) + vetted = True + + class VetThesisLinkFormFactory(FormFactory): class Meta: model = VetThesisLinkForm diff --git a/theses/forms.py b/theses/forms.py index 6f8a0e2c1757dec0992cec6e55417a3aad15a17c..3f5dfcc0e5784131d4e8a0d9f7039bad5b07064a 100644 --- a/theses/forms.py +++ b/theses/forms.py @@ -108,5 +108,3 @@ class ThesisLinkSearchForm(forms.Form): title_keyword = forms.CharField(max_length=100, label="Title", required=False) abstract_keyword = forms.CharField(max_length=1000, required=False, label="Abstract") supervisor = forms.CharField(max_length=100, required=False, label="Supervisor") - from_date = forms.DateField(widget=forms.DateInput(attrs={'type': 'date'}), required=False) - to_date = forms.DateField(widget=forms.DateInput(attrs={'type': 'date'}), required=False) diff --git a/theses/managers.py b/theses/managers.py index ecd55472d300655f05c42f7c0fda4b4415b4a79b..79e971b796332fa2fd46270961a988389b00d0f2 100644 --- a/theses/managers.py +++ b/theses/managers.py @@ -6,15 +6,11 @@ from django.utils import timezone class ThesisLinkManager(models.Manager): def search_results(self, form): - from_date = form.cleaned_data['from_date'] if form.cleaned_data['from_date'] else datetime.date(1600, 1, 1) - to_date = form.cleaned_data['to_date'] if form.cleaned_data['to_date'] else timezone.now() - 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'], - defense_date__range=(from_date, to_date) ).order_by('-defense_date') def latest(self, n): diff --git a/theses/test_views.py b/theses/test_views.py index a237707266bf81c328ba2344ff39f5f28533e1b3..b5ee851bcf04cd742cfc21c0f7c33a3976019550 100644 --- a/theses/test_views.py +++ b/theses/test_views.py @@ -13,7 +13,7 @@ from comments.factories import CommentFactory from comments.forms import CommentForm from comments.models import Comment from .views import RequestThesisLink, VetThesisLink, thesis_detail -from .factories import ThesisLinkFactory, VetThesisLinkFormFactory +from .factories import ThesisLinkFactory, VettedThesisLinkFactory, VetThesisLinkFormFactory from .models import ThesisLink from .forms import VetThesisLinkForm from common.helpers import model_form_data @@ -173,3 +173,26 @@ class TestVetThesisLinkRequests(TestCase): self.assertEqual(self.thesislink.vetted_by, contributor) self.assertEqual(len(mail.outbox), 1) self.assertEqual(mail.outbox[0].subject, 'SciPost Thesis Link activated') + +class TestTheses(TestCase): + fixtures = ['groups', 'permissions'] + + def setUp(self): + self.client = Client() + self.target = reverse('theses:theses') + + def test_empty_search_query(self): + thesislink = VettedThesisLinkFactory() + response = self.client.get(self.target) + search_results = response.context["search_results"] + recent_theses = response.context["recent_theses"] + self.assertEqual(search_results.exists(), False) + self.assertEqual(recent_theses.exists(), True) + + def test_search_query_on_author(self): + thesislink = VettedThesisLinkFactory() + form_data = {'author': thesislink.author} + response = self.client.get(self.target, form_data) + search_results = response.context['search_results'] + self.assertTrue(thesislink in search_results) + self.assertEqual(len(search_results), 1)