Example #1
0
def edit(request, feed=None):
    """
    Displays the editing form for a feed, prepopulated with the data from database.
    
    @param request: Django's request object
    @param feed: the ID of the feed to be edited.
    """
    if request.user.is_authenticated():
        from sfdr.models import Feed
        from sfdr.forms import feedForm
        feed = int(feed)
        Fo = Feed.objects.get(pk=feed, user=request.user)
        if not Fo:
            from django.http import Http404
            raise Http404
        else:
            from sfdr.models import Shortener, Service
            from django.shortcuts import render_to_response
            from settings import cfMODS
            sva = []
            svr = []
            svs = Service.objects.filter(user=request.user)
            for s in svs:
                if s.key in Fo.postTo:
                    svr.append(s)
                else:
                    sva.append(s)
            init = {
                    "nm":Fo.name,
                    "fd":Fo.url,
                    "snr":Fo.urlShortener,
                    "fmt":Fo.postType,
                    "feed":feed,
                    "pre":Fo.preText,
                    "post":Fo.postText,
                    "fo":Fo.filterOn,
                    "fi":Fo.filter,
                    "cfM":Fo.cfMod
                    }
            form = feedForm(Shortener.objects.filter(user=request.user), initial=init)
            cfL = (Fo.cfMod != "None" and Fo.cfMod != None and Fo.cfMod in cfMODS)
            return render_to_response(
                                      "feedadd.html",
                                      {
                                       "action":"/feeds/store.py",
                                       "id":feed,
                                       "form":form,
                                       "sva":sva,
                                       "svr":svr,
                                       "cfL":cfL,
                                       "dbg":Fo.cfMod
                                      }
                                     )
    else:
        return HttpResponseRedirect("/session/login.html")
Example #2
0
def add(request):
    """
    This page just displays the add-a-new-feed-form
    @param request: Djangos request object
    """
    if request.user.is_authenticated():
        from django.shortcuts import render_to_response
        from sfdr.forms import feedForm
        from sfdr.models import Shortener
        form = feedForm(Shortener.objects.filter(user=request.user))
        return render_to_response("feedadd.html", {"action":"/feeds/put.py", "form":form })
    else:
        return HttpResponseRedirect("/session/login.html")
Example #3
0
def put(request):
    """
    Stores the data submitted from the form, or displays an error message.
    @param request: Djangos request object
    """
    if request.user.is_authenticated():
        #TODO: Convert form to AJAX
        from sfdr.forms import feedForm
        from sfdr.models import Shortener
        form = feedForm(Shortener.objects.filter(user=request.user), request.POST)
        if form.is_valid():
            from sfdr.models import Feed
            f = Feed(
                    user=request.user,
                    name=form.cleaned_data['nm'],
                    url=form.cleaned_data['fd'],
                    urlShortener=form.cleaned_data['snr'],
                    postType=form.cleaned_data['fmt'],
                    preText=str(form.cleaned_data['pre']),
                    postText=str(form.cleaned_data['post']),
                    filter=str(form.cleaned_data['fi']),
                    filterOn=str(form.cleaned_data['fo']),
                    )
            f.save()
            logging.debug("Added Feed \"" + form.cleaned_data['nm'] + "\" to list")
            from google.appengine.api.taskqueue import add #@UnresolvedImport
            add(
                url="/tasks/feeds/fetch.py",
                params={"feed":str(f.id)},
                method="GET",
                queue_name="feed-burns"
            )
        else:
            from django.shortcuts import render_to_response
            return render_to_response("feedadd.html", {"form":form})
            logging.debug("Unsuccessful reg because:" + str(form.errors))
        return HttpResponseRedirect("/dashboard.html")
    else:
        return HttpResponseRedirect("/session/login.html")
Example #4
0
def store(request):
    """
    Saves the new feed information to database
    
    @param request: Djangos request object.
    """
    if request.user.is_authenticated():
        from sfdr.forms import feedForm
        from sfdr.models import Shortener
        form = feedForm(Shortener.objects.filter(user=request.user), request.POST)
        if form.is_valid() and form.cleaned_data['fd']:
            logging.debug("Shortener is \"%s\"" % form.cleaned_data['snr'])
            from sfdr.models import Feed
            fid = form.cleaned_data['feed']
            try:
                Fo = Feed.objects.get(id=fid)
            except:
                from django.http import Http404
                raise Http404
            Fo.name = form.cleaned_data['nm']
            Fo.url = form.cleaned_data['fd']
            Fo.urlShortener = form.cleaned_data['snr']
            Fo.preText = str(form.cleaned_data['pre'])
            Fo.postText = str(form.cleaned_data['post'])
            Fo.postType = form.cleaned_data['fmt']
            Fo.filter = str(form.cleaned_data['fi'])
            Fo.filterOn = str(form.cleaned_data['fo'])
            Fo.cfMod = str(form.cleaned_data['cfM'])
            Fo.save()
            return HttpResponseRedirect("/dashboard.html")
        else:
            from django.shortcuts import render_to_response
            return render_to_response("feedadd.html", {"form":form, })
        logging.debug("Unsuccessful edit because:" + str(form.errors))
        return HttpResponseRedirect("/feeds/edit/" + request.POST['fd'] + ".py")
    else:
        return HttpResponseRedirect("/session/login.html")