Skip to content

Commit c62ca31

Browse files
committed
Format the feed entry detail, add unit tests
1 parent c78ba8e commit c62ca31

File tree

7 files changed

+453
-34
lines changed

7 files changed

+453
-34
lines changed

qgisfeedproject/qgisfeed/forms.py

-22
Original file line numberDiff line numberDiff line change
@@ -174,25 +174,3 @@ def get_approvers_choices(self):
174174
)
175175

176176

177-
class FeedItemDetailForm(forms.ModelForm):
178-
"""
179-
Form for feed entry detail view
180-
"""
181-
class Meta:
182-
model = QgisFeedEntry
183-
fields = [
184-
'language_filter',
185-
'spatial_filter'
186-
]
187-
188-
def __init__(self, *args, **kwargs):
189-
super(FeedItemDetailForm, self).__init__(*args, **kwargs)
190-
# Custom fields widget
191-
self.fields['spatial_filter'].widget = MapWidget(attrs={
192-
'geom_type': 'Polygon',
193-
'default_lat': 0,
194-
'default_lon': 0,
195-
'default_zoom': 2,
196-
'disable_draw': True,
197-
'disable_add': True
198-
})

qgisfeedproject/qgisfeed/models.py

+10-1
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,14 @@
2525
from qgisfeed.utils import simplify
2626
from django.core.exceptions import ValidationError
2727

28+
from .languages import LANGUAGES
29+
2830
class QgisLanguageField(models.CharField):
2931
"""
3032
A language field for Django models.
3133
"""
3234
def __init__(self, *args, **kwargs):
3335
# Local import so the languages aren't loaded unless they are needed.
34-
from .languages import LANGUAGES
3536
kwargs.setdefault('max_length', 3)
3637
kwargs.setdefault('choices', LANGUAGES)
3738
super().__init__(*args, **kwargs)
@@ -113,6 +114,14 @@ def publish_from_epoch(self):
113114
def __str__(self):
114115
return self.title
115116

117+
@property
118+
def language_filter_text(self):
119+
"""Return the text value of the language filter"""
120+
if self.language_filter:
121+
choices_dict = dict(LANGUAGES)
122+
return choices_dict.get(self.language_filter, 'English')
123+
return None
124+
116125
class Meta:
117126
db_table = ''
118127
managed = True

qgisfeedproject/qgisfeed/tests.py

+19
Original file line numberDiff line numberDiff line change
@@ -621,3 +621,22 @@ def test_add_feed_with_reviewer(self):
621621
settings.QGISFEED_FROM_EMAIL
622622
)
623623

624+
625+
class FeedEntryDetailViewTestCase(TestCase):
626+
fixtures = ['qgisfeed.json', 'users.json']
627+
628+
def setUp(self):
629+
self.client = Client()
630+
631+
def test_feed_entry_detail_view(self):
632+
# Test accessing a valid feed entry detail
633+
feed_entry = QgisFeedEntry.objects.first()
634+
response = self.client.get(reverse('feed_detail', args=[feed_entry.pk]))
635+
self.assertEqual(response.status_code, 200)
636+
self.assertTemplateUsed(response, 'feeds/feed_item_detail.html')
637+
self.assertContains(response, feed_entry.title)
638+
639+
def test_feed_entry_detail_view_not_found(self):
640+
# Test accessing a non-existent feed entry detail
641+
response = self.client.get(reverse('feed_detail', args=[9999]))
642+
self.assertEqual(response.status_code, 404)

qgisfeedproject/qgisfeed/views.py

+2-5
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
from django.db import transaction
2929
from django.contrib.auth.models import User
3030

31-
from .forms import FeedEntryFilterForm, FeedItemForm, HomePageFilterForm, FeedItemDetailForm
31+
from .forms import FeedEntryFilterForm, FeedItemForm, HomePageFilterForm
3232
from .utils import get_field_max_length, notify_reviewers
3333
from .models import QgisFeedEntry, CharacterLimitConfiguration
3434
from .languages import LANGUAGE_KEYS
@@ -413,10 +413,7 @@ class FeedEntryDetailView(View):
413413
View to display a feed entry item
414414
"""
415415
template_name = 'feeds/feed_item_detail.html'
416-
# For spatial filter
417-
form_class = FeedItemDetailForm
418416

419417
def get(self, request, pk):
420418
feed_entry = get_object_or_404(QgisFeedEntry, pk=pk)
421-
form = self.form_class(instance=feed_entry)
422-
return render(request, self.template_name, {"feed_entry": feed_entry, "form": form})
419+
return render(request, self.template_name, {"feed_entry": feed_entry})

0 commit comments

Comments
 (0)