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)

View File

@ -60,7 +60,6 @@ INSTALLED_APPS = [
'django_extensions',
'envelope',
'leaflet',
'moderation',
'raven.contrib.django.raven_compat',
'registration',
'rest_framework',
@ -252,10 +251,6 @@ LEAFLET_CONFIG = {
},
}
# Moderation
# https://django-moderation.readthedocs.io/
MODERATION_MODERATORS = ('livvy@base.nu',)
# Sentry - Error Reporting
RAVEN_CONFIG = {
'dsn': 'https://296dda892e6e4838835a2330dd621569:10943d15104244d683fe5ccc0c898386@sentry.io/227480',
@ -272,4 +267,4 @@ AVATAR_CLEANUP_DELETED = True
from django.contrib.messages import constants as messages
MESSAGE_TAGS = {
messages.ERROR: 'danger'
}
}

View File

@ -41,9 +41,10 @@ class CaseStudySerializer(gis_serializers.GeoFeatureModelSerializer):
class CaseStudyViewSet(viewsets.ModelViewSet):
queryset = CaseStudy.objects.all()
queryset = CaseStudy.objects.approved()
serializer_class = CaseStudySerializer
apirouter = routers.DefaultRouter()
apirouter.register(r'users', UserViewSet)
apirouter.register(r'case-studies', CaseStudyViewSet)

View File

@ -16,7 +16,6 @@ django-extensions==1.7.9
django-geojson==2.10.0
#django-leaflet==0.22.0
-e git://github.com/makinacorpus/django-leaflet.git@a43acc5fed6674b413a6fab0feeb7c44e67c2ca8#egg=django-leaflet
django-moderation==0.5.0
django-multiselectfield==0.1.8
django-multiupload==0.5.2
django-registration-redux==1.6