Add admin link to reset http time for a blog
authorMagnus Hagander <magnus@hagander.net>
Thu, 9 Dec 2010 10:17:29 +0000 (11:17 +0100)
committerMagnus Hagander <magnus@hagander.net>
Thu, 9 Dec 2010 10:17:29 +0000 (11:17 +0100)
In case the blog incorrectly changes things backwards in time, or
similar situations where the If-Modified-Since header actually points
beyond the end of the blog, we don't get the latest posts. It's really
a problem on the blog side from what I can tell, but this gives the
blog owner a chance to reset the counter and re-fetch the whole blog.

hamnadmin/register/templates/index.html
hamnadmin/register/urls.py
hamnadmin/register/views.py

index 86fcf4a82ac8196540bbda1fd24ddd3c2ef406c0..e6e84235458f4b9b469315c1cb333a3bd657a113 100644 (file)
@@ -23,7 +23,8 @@ We have the following blog(s) registered:
  <td>{{blog.approved|yesno:"Yes,No"}}</td>
  <td>Feed: <a href="{{blog.feedurl}}">{{blog.feedurl}}</a><br/>Blog: <a href="{{blog.blogurl}}">{{blog.blogurl}}</a><br/>
 Author Filter: {{blog.authorfilter}}<br/>
-Twitter name: {%if blog.twitteruser%}@<a href="http://twitter.com/{{blog.twitteruser}}">{{blog.twitteruser}}</a>{%endif%}
+Twitter name: {%if blog.twitteruser%}@<a href="http://twitter.com/{{blog.twitteruser}}">{{blog.twitteruser}}</a>{%endif%}<br/>
+Last http get: {{blog.lastget}}<br/>
  </td>
 
  <td><a href="log/{{blog.id}}/">View log</a><br/>
@@ -36,6 +37,7 @@ Not approved yet.<br/>
 {%if user.is_superuser %}
   <br/>
   <nobr><a href="discover/{{blog.id}}/">Fetch metadata</a></nobr><br/>
+  <nobr><a href="reset/{{blog.id}}/">Reset http time</a></nobr><br/>
 </td>
 {%endif%}
 </tr>
index 1260fbfef752308751d6d2a391a0de98885eda8a..c241d133a00f00ff72e7cc724393c667b9cf398f 100644 (file)
@@ -10,6 +10,7 @@ urlpatterns = patterns('',
     (r'^new/$', 'hamnadmin.register.views.new'),
     (r'^discover/(\d+)/$', 'hamnadmin.register.views.discover'),
     (r'^delete/(\d+)/$', 'hamnadmin.register.views.delete'),
+    (r'^reset/(\d+)/$', 'hamnadmin.register.views.reset'),
 
     (r'^log/(\d+)/$','hamnadmin.register.views.logview'),
     (r'^blogposts/(\d+)/$', 'hamnadmin.register.views.blogposts'),
index f3cdb3702b479cb1c76fa8a10a50cccc128a56d0..6ad42e0ad8dac01cf99ce35932892187fc45f81d 100644 (file)
@@ -11,6 +11,7 @@ from hamnadmin.register.models import *
 from hamnadmin.exceptions import pExcept
 
 import socket
+import datetime
 import feedparser
 
 def issuperuser(user):
@@ -120,6 +121,17 @@ The user '%s' has deleted the blog at
        AuditEntry(request.user.username, 'Deleted blog %s' % blog.feedurl).save()
        return HttpResponseRedirect('../..')
 
+@login_required
+@transaction.commit_on_success
+def reset(request, id):
+       blog = get_object_or_404(Blog, id=id)
+       if not blog.userid == request.user.username:
+               raise pExcept("You can only reset your own feeds! Don't try to hack!")
+       blog.lastget = datetime.datetime(2000,01,01)
+       blog.save()
+       AuditEntry(request.user.username, 'Reset blog %s' % blog.feedurl).save()
+       return HttpResponseRedirect('../..')
+
 @user_passes_test(issuperuser)
 @transaction.commit_on_success
 def discover(request, id):