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())
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("/")
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."))
def Tags(self): return utils.parse_tags(self.state.tags)