Remove training events
authorMagnus Hagander <magnus@hagander.net>
Wed, 5 Dec 2018 15:38:38 +0000 (16:38 +0100)
committerMagnus Hagander <magnus@hagander.net>
Fri, 7 Dec 2018 09:24:12 +0000 (10:24 +0100)
The way these were handled they weren't really providing any value to
users, because a lot of sessions were registered and never run etc etc,
but did cause a lot of work for our moderators.

The general feature may return later in the form of "training providers"
or similar as part of the professional services section, but for now
there is no point in maintaining this data.

pgweb/core/views.py
pgweb/events/admin.py
pgweb/events/feeds.py
pgweb/events/migrations/0003_drop_training.py [new file with mode: 0644]
pgweb/events/models.py
pgweb/events/views.py
pgweb/urls.py

index a94c9f07130b0479d39a20e077786c1a10b18dac..f04a7683f669942a12391eecfcda0517e6544d22 100644 (file)
@@ -45,7 +45,6 @@ def home(request):
        # get up to seven events to display on the homepage
        event_base_queryset = Event.objects.select_related('country').filter(
                approved=True,
-               training=False,
                enddate__gte=today,
        )
        # first, see if there are up to two non-badged events within 90 days
@@ -60,19 +59,11 @@ def home(request):
        versions = Version.objects.filter(supported=True)
        planet = ImportedRSSItem.objects.filter(feed__internalname="planet").order_by("-posttime")[:9]
 
-       traininginfo = Event.objects.filter(approved=True, training=True).extra(where=("startdate <= (CURRENT_DATE + '6 Months'::interval) AND enddate >= CURRENT_DATE",)).aggregate(Count('id'), Count('country', distinct=True))
-       # can't figure out how to make django do this
-       curs = connection.cursor()
-       curs.execute("SELECT * FROM (SELECT DISTINCT(core_organisation.name) FROM events_event INNER JOIN core_organisation ON org_id=core_organisation.id WHERE startdate <= (CURRENT_DATE + '6 Months'::interval) AND enddate >= CURRENT_DATE AND events_event.approved AND training AND org_id IS NOT NULL) x ORDER BY random() LIMIT 3")
-       trainingcompanies = [r[0] for r in curs.fetchall()]
-
        return render(request, 'index.html', {
                'title': 'The world\'s most advanced open source database',
                'news': news,
                'newstags': NewsTag.objects.all(),
                'events': events,
-               'traininginfo': traininginfo,
-               'trainingcompanies': trainingcompanies,
                'versions': versions,
                'planet': planet,
        })
index 8726eb30757fcd658f91b4ba5ecf8388ac72582c..dd2084fa66ae7075c8954b1b66794ac76f83f659 100644 (file)
@@ -29,8 +29,8 @@ class EventAdminForm(forms.ModelForm):
                return cleaned_data
 
 class EventAdmin(PgwebAdmin):
-       list_display = ('title', 'org', 'startdate', 'enddate', 'training', 'approved',)
-       list_filter = ('approved','training',)
+       list_display = ('title', 'org', 'startdate', 'enddate', 'approved',)
+       list_filter = ('approved',)
        search_fields = ('summary', 'details', 'title', )
        actions = [approve_event, ]
        form = EventAdminForm
index b21d678bfcb0f30d70a6c190f2b17e2f25321403..6273975eb430daa6d2d265d68f08af5ff4b5bb5a 100644 (file)
@@ -12,7 +12,7 @@ class EventFeed(Feed):
        title_template = 'events/rss_title.html'
 
        def items(self):
-               return Event.objects.filter(approved=True).filter(training=False)[:10]
+               return Event.objects.filter(approved=True)[:10]
 
        def item_link(self, obj):
                return "https://www.postgresql.org/about/event/%s/" % obj.id
diff --git a/pgweb/events/migrations/0003_drop_training.py b/pgweb/events/migrations/0003_drop_training.py
new file mode 100644 (file)
index 0000000..49923ed
--- /dev/null
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.10 on 2018-12-05 15:38
+from __future__ import unicode_literals
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('events', '0002_event_badged'),
+    ]
+
+    operations = [
+        migrations.RunSQL("DELETE FROM events_event WHERE training"),
+        migrations.RemoveField(
+            model_name='event',
+            name='training',
+        ),
+    ]
index 02a3714653d3074ad2176d2ce7575037d0c1bea1..8969afb5239ffbaf1d9eec456d638e9639cc5afa 100644 (file)
@@ -13,7 +13,6 @@ class Event(models.Model):
        country = models.ForeignKey(Country, null=True, blank=True)
        language = models.ForeignKey(Language, null=True, blank=True, default='eng', help_text="Primary language for event. When multiple languages, specify this in the event description")
 
-       training = models.BooleanField(null=False, blank=False, default=False)
        badged = models.BooleanField(null=False, blank=False, default=False, verbose_name='Community event', help_text='Choose "Community event" if this is a community recognized event following the <a href="/community/recognition/#conferences" target="_blank">community event guidelines</a>.')
        description_for_badged = models.TextField(blank=True, null=True, verbose_name='Description for community event', help_text='DEPRECRATED: This was used in the beginning of community events to collect additional information.')
        startdate = models.DateField(null=False, blank=False, verbose_name="Start date")
index 8668b1de6a3957f3aef0aab70942e123da62fe53..ed00367dcb0b13cbb11225c9c921131f5a86bf62 100644 (file)
@@ -11,21 +11,19 @@ from models import Event
 from forms import EventForm
 
 def main(request):
-       community_events = Event.objects.select_related('country').filter(approved=True, badged=True).filter(training=False, enddate__gt=date.today()).order_by('enddate', 'startdate',)
-       other_events = Event.objects.select_related('country').filter(approved=True, badged=False).filter(training=False, enddate__gt=date.today()).order_by('enddate', 'startdate',)
-       training = Event.objects.select_related('country').filter(approved=True).filter(training=True, enddate__gt=date.today()).order_by('enddate', 'startdate',)
+       community_events = Event.objects.select_related('country').filter(approved=True, badged=True).filter(enddate__gt=date.today()).order_by('enddate', 'startdate',)
+       other_events = Event.objects.select_related('country').filter(approved=True, badged=False).filter(enddate__gt=date.today()).order_by('enddate', 'startdate',)
        return render_pgweb(request, 'about', 'events/archive.html', {
                'title': 'Upcoming Events',
                'eventblocks': (
                        { 'name': 'Community Events', 'events': community_events, 'link': '',},
                        { 'name': 'Other Events', 'events': other_events, 'link': '',},
-                       { 'name': 'Training', 'events': training, 'link': 'training/',},
                ),
        })
 
-def _eventarchive(request, training, title):
+def _eventarchive(request, title):
        # Hardcode to the latest 100 events. Do we need paging too?
-       events = Event.objects.select_related('country').filter(approved=True).filter(training=training, enddate__lte=date.today()).order_by('-enddate', '-startdate',)[:100]
+       events = Event.objects.select_related('country').filter(approved=True).filter(enddate__lte=date.today()).order_by('-enddate', '-startdate',)[:100]
        return render_pgweb(request, 'about', 'events/archive.html', {
                        'title': '%s Archive' % title,
                        'archive': True,
@@ -35,10 +33,7 @@ def _eventarchive(request, training, title):
        })
 
 def archive(request):
-       return _eventarchive(request, False, 'Event')
-
-def trainingarchive(request):
-       return _eventarchive(request, True, 'Training')
+       return _eventarchive(request, 'Event')
 
 def item(request, itemid, throwaway=None):
        event = get_object_or_404(Event, pk=itemid)
index bae3a8288163893f62aea73d429a2f8f38a655f9..56f6a3fe174e4927b5eec72e2a5a966be3aba5e8 100644 (file)
@@ -40,7 +40,6 @@ urlpatterns = [
        url(r'^about/news/taglist.json/$', pgweb.news.views.taglist_json),
        url(r'^about/events/$', pgweb.events.views.main),
        url(r'^about/eventarchive/$', pgweb.events.views.archive),
-       url(r'^about/eventarchive/training/$', pgweb.events.views.trainingarchive),
        url(r'^about/event/(\d+)(-.*)?/$', pgweb.events.views.item),
        url(r'^about/featurematrix/$', pgweb.featurematrix.views.root),
        url(r'^about/featurematrix/detail/(\d+)/$', pgweb.featurematrix.views.detail),