Replace django-moderation with CaseStudy.visible

This commit is contained in:
Carl van Tonder
2018-03-27 00:14:01 -04:00
parent 9a98520cca
commit 63a52a1f7f
8 changed files with 63 additions and 23 deletions

View File

@ -1,12 +1,33 @@
from django.contrib import admin
from moderation.admin import ModerationAdmin
from leaflet.admin import LeafletGeoAdmin
from .models import CaseStudy
class CaseStudyAdmin(LeafletGeoAdmin):
pass
list_display = ('id', 'date_created', 'entry_name', 'approved')
actions = ['approve', 'unapprove']
def approve(self, request, queryset):
updated = queryset.update(approved=True)
if updated == 1:
message_bit = "1 case study was"
else:
message_bit = "{0} case studies were".format(updated)
self.message_user(request, "{0} successfully approved".format(
message_bit
))
approve.short_description = "Approve selected case studies"
def unapprove(self, request, queryset):
updated = queryset.update(approved=False)
if updated == 1:
message_bit = "1 case study was"
else:
message_bit = "{0} case studies were".format(updated)
self.message_user(request, "{0} successfully un-approved".format(
message_bit
))
unapprove.short_description = "Un-approve selected case studies"
admin.site.register(CaseStudy, CaseStudyAdmin)

View File

@ -5,12 +5,11 @@ from crispy_forms.helper import FormHelper
from crispy_forms.layout import Submit, Layout, HTML, Fieldset
from crispy_forms.bootstrap import Tab, TabHolder, PrependedText, FormActions
from leaflet.forms.widgets import LeafletWidget
from moderation.forms import BaseModeratedObjectForm
from .models import CaseStudy
class BaseCaseStudyForm(BaseModeratedObjectForm):
class BaseCaseStudyForm(forms.models.ModelForm):
"""Base form class for the CaseStudy model."""
def __init__(self, *args, **kwargs):
super(BaseCaseStudyForm, self).__init__(*args, **kwargs)
@ -204,4 +203,4 @@ class LongCaseStudyForm(BaseCaseStudyForm):
)))
class Meta(BaseCaseStudyForm.Meta):
fields = '__all__'
exclude = ('approved',)

View File

@ -0,0 +1,24 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.6 on 2018-03-27 03:34
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('map', '0035_auto_20180326_0157'),
]
operations = [
migrations.AlterModelOptions(
name='casestudy',
options={'verbose_name_plural': 'case studies'},
),
migrations.AddField(
model_name='casestudy',
name='approved',
field=models.BooleanField(default=False),
),
]

View File

@ -16,9 +16,18 @@ class Shapefile(models.Model):
)
class CaseStudyQuerySet(models.QuerySet):
def approved(self):
return self.filter(
approved=True
)
class CaseStudy(models.Model):
"""Model for case studies submitted to the Ojuso Platform"""
approved = models.BooleanField(default=False)
# Choice lists for drop-downs
SECTOR_CHOICES = (
(_('Renewable Energy Generation'), (
@ -965,6 +974,8 @@ class CaseStudy(models.Model):
blank=True
)
objects = CaseStudyQuerySet.as_manager()
def __str__(self):
"""The String representation of the case study. (Entry name with country name.)"""
return "%s in %s" % (self.entry_name, self.country.name)

View File

@ -1,10 +0,0 @@
from moderation import moderation
from moderation.moderator import GenericModerator
from apps.map.models import CaseStudy
class CaseStudyModerator(GenericModerator):
notify_user = True
auto_approve_for_superusers = True
moderation.register(CaseStudy, CaseStudyModerator)