You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@community.apache.org by rg...@apache.org on 2015/07/26 10:23:49 UTC
svn commit: r1692697 - in /comdev/tools/events_list: admin.py models.py
templates/events/index.html views.py
Author: rgardler
Date: Sun Jul 26 08:23:49 2015
New Revision: 1692697
URL: http://svn.apache.org/r1692697
Log:
log actions and use the log of last import action to activate/disable the import link
Modified:
comdev/tools/events_list/admin.py
comdev/tools/events_list/models.py
comdev/tools/events_list/templates/events/index.html
comdev/tools/events_list/views.py
Modified: comdev/tools/events_list/admin.py
URL: http://svn.apache.org/viewvc/comdev/tools/events_list/admin.py?rev=1692697&r1=1692696&r2=1692697&view=diff
==============================================================================
--- comdev/tools/events_list/admin.py (original)
+++ comdev/tools/events_list/admin.py Sun Jul 26 08:23:49 2015
@@ -1,8 +1,10 @@
from django.contrib import admin
-from .models import Event, Group, Hashtag
+from .models import Event, Group, Hashtag, Log
admin.site.register(Event)
admin.site.register(Group)
admin.site.register(Hashtag)
+admin.site.register(Log)
+
Modified: comdev/tools/events_list/models.py
URL: http://svn.apache.org/viewvc/comdev/tools/events_list/models.py?rev=1692697&r1=1692696&r2=1692697&view=diff
==============================================================================
--- comdev/tools/events_list/models.py (original)
+++ comdev/tools/events_list/models.py Sun Jul 26 08:23:49 2015
@@ -1,3 +1,4 @@
+from datetime import datetime
from django.db import models
class Group(models.Model):
@@ -48,3 +49,25 @@ class Event(models.Model):
def __unicode__(self):
return u'{n}, {d}'.format(n=self.name, d=self.local_start)
+
+class Log(models.Model):
+ EVENT_UPDATE = 'EU'
+ EVENT_IMPORT = 'EI'
+ ACTION_TYPE_CHOICES = (
+ (EVENT_UPDATE, 'Event Update'),
+ (EVENT_IMPORT, 'Event Import'),
+ )
+ description = models.CharField(max_length=200)
+ datetime = models.DateTimeField(default=datetime.now)
+ action_type = models.CharField(max_length=2,
+ choices = ACTION_TYPE_CHOICES)
+ object_id = models.BigIntegerField(blank = True, null = True)
+
+ def __str__(self):
+ return u'{d}: {t} - {n}'.format(d=self.datetime, t=self.action_type, n=self.description)
+
+ def __unicode__(self):
+ return u'{d}: {t} - {n}'.format(d=self.datetime, t=self.action_type, n=self.description)
+
+ class Meta:
+ ordering = ('-datetime',)
Modified: comdev/tools/events_list/templates/events/index.html
URL: http://svn.apache.org/viewvc/comdev/tools/events_list/templates/events/index.html?rev=1692697&r1=1692696&r2=1692697&view=diff
==============================================================================
--- comdev/tools/events_list/templates/events/index.html (original)
+++ comdev/tools/events_list/templates/events/index.html Sun Jul 26 08:23:49 2015
@@ -1,6 +1,8 @@
<h1>Events</h1>
-<a href="/events/importMeetups">Import Meetups</a>
+{% if can_import %}
+ <a href="/events/importMeetups">Import Meetups</a>
+{% endif %}
{% if upcoming_events_list %}
<table>
Modified: comdev/tools/events_list/views.py
URL: http://svn.apache.org/viewvc/comdev/tools/events_list/views.py?rev=1692697&r1=1692696&r2=1692697&view=diff
==============================================================================
--- comdev/tools/events_list/views.py (original)
+++ comdev/tools/events_list/views.py Sun Jul 26 08:23:49 2015
@@ -1,7 +1,7 @@
from django.shortcuts import get_object_or_404, render, redirect
from django.http import HttpResponse
from django.template import RequestContext, loader
-from events_list.models import Event, Group, Hashtag
+from events_list.models import Event, Group, Hashtag, Log
from datetime import datetime, timedelta
import json
import logging
@@ -12,10 +12,19 @@ logger = logging.getLogger(__name__)
def index(request):
now = datetime.now()
+ can_import = True
+ try:
+ last_import = Log.objects.filter(action_type = Log.EVENT_IMPORT)[:1].get()
+ if now - last_import.datetime < timedelta(hours = 1):
+ can_import = False
+ except:
+ pass
+
upcoming_events_list = Event.objects.filter(is_applicable = True).filter(local_start__gte=now).order_by('local_start')[:20]
template = loader.get_template('events/index.html')
context = RequestContext(request, {
'upcoming_events_list': upcoming_events_list,
+ 'can_import': can_import
})
return HttpResponse(template.render(context))
@@ -25,10 +34,25 @@ def toggleNA(request, event_id):
event.is_applicable = not event.is_applicable
event.save()
+ log = Log();
+ desc = "Event (id=" + event_id + ") marked as "
+ if (event.is_applicable):
+ desc = desc + "applicable "
+ else:
+ desc = desc + "not applicable "
+ log.description = desc;
+ log.object_id = event_id
+ log.action_type = Log.EVENT_UPDATE
+ log.save()
+
return redirect('events_list.views.index')
def importMeetups(request):
- # Import latest meetups from meetup.com
+ # Import latest meetups from meetup.com, if we didn't import them within the last hour
+ log = Log()
+ log.description = "Events imported"
+ log.action_type = Log.EVENT_IMPORT
+ log.save()
# FIXME: make these fixtures when installing app
try: