allow banning
This commit is contained in:
@@ -1,26 +1,40 @@
|
||||
from django.contrib import admin
|
||||
from .models import Betrieb, Partei, PresidentCandidate, Question
|
||||
from startpage.models import Banned
|
||||
|
||||
|
||||
def ban_ip(modeladmin, request, queryset):
|
||||
for obj in queryset:
|
||||
banned = Banned(ip_address=obj.ip_address,
|
||||
reason="")
|
||||
banned.save()
|
||||
modeladmin.message_user(request, "Ausgewählte Urheber erfolgreich verbannt.")
|
||||
ban_ip.short_description = "Urheber ausgewählter Eintrage verbannen"
|
||||
|
||||
|
||||
# Register your models here.
|
||||
class BetriebAdmin(admin.ModelAdmin):
|
||||
list_display = ('name', 'manager', 'confirmed')
|
||||
list_filter = ('confirmed',)
|
||||
actions = [ban_ip]
|
||||
|
||||
|
||||
class ParteiAdmin(admin.ModelAdmin):
|
||||
list_display = ('name', 'abbreviation', 'chef', 'description', 'confirmed')
|
||||
list_filter = ('confirmed',)
|
||||
actions = ('ban_ip',)
|
||||
|
||||
|
||||
class PresidentAdmin(admin.ModelAdmin):
|
||||
list_display = ('name', 'confirmed')
|
||||
list_filter = ('confirmed',)
|
||||
actions = ('ban_ip',)
|
||||
|
||||
|
||||
class QuestionAdmin(admin.ModelAdmin):
|
||||
list_display = ('subject', 'answered')
|
||||
list_filter = ('answered',)
|
||||
actions = ('ban_ip',)
|
||||
|
||||
admin.site.register(Betrieb, BetriebAdmin)
|
||||
admin.site.register(Partei, ParteiAdmin)
|
||||
|
||||
@@ -7,6 +7,7 @@ class Betrieb(models.Model):
|
||||
manager = models.CharField('Betriebsleiter', max_length=200)
|
||||
email = models.EmailField('Kontakt Email')
|
||||
business_idea = models.TextField('Idee')
|
||||
ip_address = models.CharField('IP Adresse', max_length=50, blank=True)
|
||||
confirmed = models.BooleanField('Bestätigt', default=False)
|
||||
|
||||
def __str__(self):
|
||||
@@ -23,6 +24,7 @@ class Partei(models.Model):
|
||||
chef = models.CharField('Parteivorsitzende', max_length=200)
|
||||
email = models.EmailField('Kontakt Email')
|
||||
description = models.TextField('Beschreibung (Ziele etc.)')
|
||||
ip_address = models.CharField('IP Adresse', max_length=50, blank=True)
|
||||
confirmed = models.BooleanField('Bestätigt', default=False)
|
||||
|
||||
def __str__(self):
|
||||
@@ -37,6 +39,7 @@ class PresidentCandidate(models.Model):
|
||||
name = models.CharField('Name', max_length=100)
|
||||
email = models.EmailField('Kontakt Email')
|
||||
motivation = models.TextField('Motivation')
|
||||
ip_address = models.CharField('IP Adresse', max_length=50, blank=True)
|
||||
confirmed = models.BooleanField('Bestätigt', default=False)
|
||||
|
||||
def __str__(self):
|
||||
@@ -51,6 +54,7 @@ class Question(models.Model):
|
||||
subject = models.CharField('Betreff', max_length=100)
|
||||
email = models.EmailField('Kontakt Email')
|
||||
content = models.TextField('Inhalt')
|
||||
ip_address = models.CharField('IP Adresse', max_length=50, blank=True)
|
||||
answered = models.BooleanField('Beantwortet', default=False)
|
||||
|
||||
def __str__(self):
|
||||
|
||||
@@ -48,6 +48,7 @@ def betrieb_new(request):
|
||||
manager=form.cleaned_data.get('manager'),
|
||||
email=form.cleaned_data.get('email'),
|
||||
business_idea=form.cleaned_data.get('business_idea'),
|
||||
ip_address=get_client_ip(request),
|
||||
confirmed=False)
|
||||
betrieb.save()
|
||||
return render_confirmation(request)
|
||||
@@ -105,3 +106,12 @@ def question_new(request):
|
||||
|
||||
def render_confirmation(request):
|
||||
return render(request, "meingoethopia/confirmed.html")
|
||||
|
||||
|
||||
def get_client_ip(request):
|
||||
x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
|
||||
if x_forwarded_for:
|
||||
ip = x_forwarded_for.split(',')[0]
|
||||
else:
|
||||
ip = request.META.get('REMOTE_ADDR')
|
||||
return ip
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
from django.contrib import admin
|
||||
from .models import Banned
|
||||
|
||||
|
||||
class BanAdmin(admin.ModelAdmin):
|
||||
list_display = ('ip_address', 'reason')
|
||||
|
||||
# Register your models here.
|
||||
admin.site.register(Banned, BanAdmin)
|
||||
|
||||
@@ -1,3 +1,11 @@
|
||||
from django.db import models
|
||||
|
||||
|
||||
# Create your models here.
|
||||
class Banned(models.Model):
|
||||
ip_address = models.CharField('IP Adresse', max_length=50)
|
||||
reason = models.TextField('Grund')
|
||||
|
||||
class Meta:
|
||||
verbose_name = 'Verbannte'
|
||||
verbose_name_plural = 'Verbannte'
|
||||
|
||||
Reference in New Issue
Block a user