Skip to content

Commit a2e59c8

Browse files
committed
require login to submit success stories
1 parent 4ad9d40 commit a2e59c8

File tree

5 files changed

+48
-2
lines changed

5 files changed

+48
-2
lines changed

successstories/admin.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ class StoryCategoryAdmin(NameSlugAdmin):
1313
@admin.register(Story)
1414
class StoryAdmin(ContentManageableModelAdmin):
1515
prepopulated_fields = {'slug': ('name',)}
16-
raw_id_fields = ['category']
16+
raw_id_fields = ['category', 'submitted_by']
1717
search_fields = ['name']
1818

1919
def get_list_filter(self, request):
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Generated by Django 2.2.24 on 2022-01-27 19:21
2+
3+
from django.conf import settings
4+
from django.db import migrations, models
5+
import django.db.models.deletion
6+
7+
8+
class Migration(migrations.Migration):
9+
10+
dependencies = [
11+
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
12+
('successstories', '0009_auto_20180705_0352'),
13+
]
14+
15+
operations = [
16+
migrations.AddField(
17+
model_name='story',
18+
name='submitted_by',
19+
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL),
20+
),
21+
]
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Generated by Django 2.2.24 on 2022-01-27 19:23
2+
3+
from django.conf import settings
4+
from django.db import migrations, models
5+
import django.db.models.deletion
6+
7+
8+
class Migration(migrations.Migration):
9+
10+
dependencies = [
11+
('successstories', '0010_story_submitted_by'),
12+
]
13+
14+
operations = [
15+
migrations.AlterField(
16+
model_name='story',
17+
name='submitted_by',
18+
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL),
19+
),
20+
]

successstories/models.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,8 @@ class Story(NameSlugModel, ContentManageable):
5858
featured = models.BooleanField(default=False, help_text="Set to use story in the supernav")
5959
image = models.ImageField(upload_to='successstories', blank=True, null=True)
6060

61+
submitted_by = models.ForeignKey(settings.AUTH_USER_MODEL, blank=True, null=True, on_delete=models.SET_NULL)
62+
6163
objects = StoryManager()
6264

6365
class Meta:

successstories/views.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from django.contrib import messages
2+
from django.contrib.auth.mixins import LoginRequiredMixin
23
from django.urls import reverse
34
from django.utils.decorators import method_decorator
45
from django.views.generic import CreateView, DetailView, ListView
@@ -17,7 +18,7 @@ def get_context_data(self, **kwargs):
1718
return context
1819

1920

20-
class StoryCreate(ContextMixin, CreateView):
21+
class StoryCreate(LoginRequiredMixin, ContextMixin, CreateView):
2122
model = Story
2223
form_class = StoryForm
2324
template_name = 'successstories/story_form.html'
@@ -34,6 +35,8 @@ def get_success_url(self):
3435
return reverse('success_story_create')
3536

3637
def form_valid(self, form):
38+
obj = form.save(commit=False)
39+
obj.submitted_by = self.request.user
3740
messages.add_message(self.request, messages.SUCCESS, self.success_message)
3841
return super().form_valid(form)
3942

0 commit comments

Comments
 (0)