Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 88243ee

Browse filesBrowse files
committed
Use SoftDeletableModel for Events
1 parent 98f998a commit 88243ee
Copy full SHA for 88243ee

File tree

Expand file treeCollapse file tree

3 files changed

+44
-2
lines changed
Open diff view settings
Filter options
Expand file treeCollapse file tree

3 files changed

+44
-2
lines changed
Open diff view settings
Collapse file

‎landing/admin.py‎

Copy file name to clipboard
+38-1Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,43 @@
11
from django.contrib import admin
2+
from django.utils.encoding import force_text
23

34
from .models import Event
45

56

6-
admin.site.register(Event)
7+
class IsArchivedListFilter(admin.SimpleListFilter):
8+
title = 'Is Archived?'
9+
parameter_name = 'is_removed'
10+
11+
def lookups(self, request, model_admin):
12+
return (
13+
(True, 'Yes'),
14+
)
15+
16+
def choices(self, changelist):
17+
yield {
18+
'selected': self.value() is None,
19+
'query_string': changelist.get_query_string({}, [self.parameter_name]),
20+
'display': 'No',
21+
}
22+
for lookup, title in self.lookup_choices:
23+
yield {
24+
'selected': self.value() == force_text(lookup),
25+
'query_string': changelist.get_query_string({self.parameter_name: lookup}, []),
26+
'display': title,
27+
}
28+
29+
def queryset(self, request, queryset):
30+
if self.value():
31+
return queryset.filter(is_removed=True)
32+
return queryset.filter(is_removed=False)
33+
34+
class EventAdmin(admin.ModelAdmin):
35+
search_fields = ('name', 'location',)
36+
list_filter = (IsArchivedListFilter,)
37+
list_display = ('name', 'location', 'schedule',)
38+
39+
def get_queryset(self, request):
40+
return Event.all_objects.all()
41+
42+
43+
admin.site.register(Event, EventAdmin)
Collapse file

‎landing/models.py‎

Copy file name to clipboardExpand all lines: landing/models.py
+5-1Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
from django.db import models
2+
from model_utils.models import SoftDeletableModel
23

34

4-
class Event(models.Model):
5+
class Event(SoftDeletableModel):
56
name = models.CharField(max_length=255)
67
schedule = models.CharField(max_length=255)
78
location = models.CharField(max_length=255)
@@ -11,3 +12,6 @@ class Event(models.Model):
1112

1213
def __unicode__(self):
1314
return self.name
15+
16+
def __str__(self):
17+
return f'{self.name}, {self.location} - {self.schedule}'
Collapse file

‎requirements.txt‎

Copy file name to clipboardExpand all lines: requirements.txt
+1Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ django-markdownx==3.0.1
1010
django-storages==1.6.5
1111
django-taggit==1.2.0
1212
django-tastypie==0.14.3
13+
django-model-utils==4.1.1
1314
raven==6.10.0
1415
requests>=2.13.0
1516
whitenoise==5.0.1

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.