commit 035402f3d7835c1f4c15918dc0c8ca1c36a5b15e Author: Magnus Hagander Date: Wed Dec 5 16:38:38 2018 +0100 Remove training events 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. diff --git a/pgweb/core/views.py b/pgweb/core/views.py index a94c9f0..f04a768 100644 --- a/pgweb/core/views.py +++ b/pgweb/core/views.py @@ -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, }) diff --git a/pgweb/events/admin.py b/pgweb/events/admin.py index 8726eb3..dd2084f 100644 --- a/pgweb/events/admin.py +++ b/pgweb/events/admin.py @@ -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 diff --git a/pgweb/events/feeds.py b/pgweb/events/feeds.py index b21d678..6273975 100644 --- a/pgweb/events/feeds.py +++ b/pgweb/events/feeds.py @@ -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 index 0000000..49923ed --- /dev/null +++ b/pgweb/events/migrations/0003_drop_training.py @@ -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', + ), + ] diff --git a/pgweb/events/models.py b/pgweb/events/models.py index 02a3714..8969afb 100644 --- a/pgweb/events/models.py +++ b/pgweb/events/models.py @@ -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 community event guidelines.') 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") diff --git a/pgweb/events/views.py b/pgweb/events/views.py index 8668b1d..ed00367 100644 --- a/pgweb/events/views.py +++ b/pgweb/events/views.py @@ -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) diff --git a/pgweb/urls.py b/pgweb/urls.py index bae3a82..56f6a3f 100644 --- a/pgweb/urls.py +++ b/pgweb/urls.py @@ -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),