Beispiel #1
0
def page(request, slug="index"):
    if request.method == "GET":
        if exists(slug):
            page = get_page(slug)
            return dict(page=page,
                        edit=request.GET.get('edit', False),
                        exists=True)
        else:
            return dict(exists=False,
                        slug=slug)
    else:
        # save/create a page
        if exists(slug):
            page = get_page(slug)
            page.body = request.POST.get('body', '')
            page.title = request.POST.get('title', '')
            tags = parse_tags(request.POST.get('tags', ''))
            page.update_tags(tags)
            page.save()
            return HttpResponseRedirect(page.get_absolute_url())
        else:
            if slug == '':
                slug = request.POST.get('title').lower()
            page = create_page(slug=slug, title=request.POST.get('title', ''),
                               body=request.POST.get('body', ''),
                               tags=parse_tags(request.POST.get('tags', '')))
            return HttpResponseRedirect(page.get_absolute_url())
Beispiel #2
0
def import_url(request):
    if request.method == "GET":
        return import_url_form(request)
    if request.method == "POST":
        urls = []
        url = request.POST.get('url', '')
        if url != '':
            urls = [url]
        else:
            # probably an html page submission
            for k in request.POST.keys():
                if k.startswith("image_"):
                    url = k[len("image_"):]
                    urls.append(url)

        tags = parse_tags(request.POST.get('tags', ''))
        pairs = []
        try:
            for url in urls:
                image_id = models.create_image(url=url, tags=tags)
                pairs.append((image_id, url))
        except:
            raise
        else:
            for (image_id, url) in pairs:
                tasks.ingest_image.delay(image_id, url)
        return HttpResponseRedirect("/")
Beispiel #3
0
 def clean(self, value):
     value = super(StatusField, self).clean(value)
     try:
         values = parse_tags(value)
         if not values:
             return values
         objs = []
         names = i18n_fieldnames('name')
         for value in values:
             try:
                 filters = [Q(**{name: value}) for name in names]
                 objs.append(EntryTag.objects.get(
                     reduce(operator.or_, filters)))
             except EntryTag.DoesNotExist:
                 raise forms.ValidationError(
                     _("EntryTag does not exist: ") + value)
         return objs
     except ValueError:
         raise forms.ValidationError(
             _("Please provide a comma-separated list of tags."))
Beispiel #4
0
 def Tags(self):
     return utils.parse_tags(self.state.tags)