def init_for_category_type(self, category_type, post): self.__ext_id = None super(BlogPostForm, self).init_for_category_type(category_type, post) if post: try: ext = post.blogpostextension_set.get() self.__ext_id = ext.id self.fields['tags'].initial = tag_get_labels(post) self.fields['slug'].initial = ext.slug self.fields['status'].initial = ext.status except BlogPostExtension.DoesNotExist: # This can happen after post was created for # attaching a file.. which wouldn't create a BlogPostExtension. pass
def get_tag_labels(self): return tag_get_labels(self.post)
def sph_tag_labels(value): return tag_get_labels(value)
def get_tag_labels(instance, context): return tag_get_labels(instance)
def editSnip(request, group, snipName, versionId = None): version = None data = request.method == 'POST' and request.POST or None try: snip = WikiSnip.objects.get( group = group, name__exact = snipName ) if versionId is not None: version = WikiSnipChange.objects.get( pk = versionId ) if not version or version.snip != snip: # TODO: raise a 404 instead raise PermissionDenied() snip.body = version.body #SnipForm = forms.models.form_for_instance(snip, form = CaptchaEditBaseForm) form = WikiSnipForm(data, instance = snip) except WikiSnip.DoesNotExist: #SnipForm = forms.models.form_for_model(WikiSnip, form = CaptchaEditBaseForm) form = WikiSnipForm(data) snip = WikiSnip( name = snipName, group = group ) #snip = None if not snip.has_edit_permission(): raise PermissionDenied() #SnipForm.base_fields['body'].widget.attrs['cols'] = 80 #SnipForm.base_fields['body'].widget.attrs['rows'] = 30 changemessage = "" if request.method == 'POST': if 'type' in request.POST and request.POST['type'] == 'preview': return HttpResponse( unicode(WikiSnip(body = request.POST['body']).render() )) changemessage = request.POST['message'] #form = SnipForm(request.POST) if form.is_valid(): old_title = None old_body = None change_type = 0 if snip.id: old_title = snip.title old_body = snip.body snip = form.save(commit=False) snip.group = group snip.name = snipName if request.user.is_authenticated(): snip.editor = request.user else: snip.editor = None snip.save() if old_body is not None: if snip.body != old_body: change_type |= 1 if snip.title != old_title: change_type |= 2 else: # if a snip is new, everything has changed .. change_type = 1 | 2 | 4 data = form.cleaned_data if tag_set_labels( snip, data['tags'] ): change_type |= 4 change = WikiSnipChange( snip = snip, #editor = request.user, editor = snip.editor, edited = datetime.today(), message = request.POST['message'], title = snip.title, body = snip.body, change_type = change_type, ) change.save() tag_set_labels( change, data['tags'] ) return HttpResponseRedirect( snip.get_absolute_url() ) else: #form = SnipForm() if snip is not None: form.fields['tags'].initial = tag_get_labels(snip) pass if version: from sphene.community.templatetags.sph_extras import sph_date changemessage = ugettext('Reverted to revision of %(editdate)s') % \ { 'editdate': sph_date( version.edited ) } t = loader.get_template( 'sphene/sphwiki/editSnip.html' ) return HttpResponse( t.render( RequestContext( request, { 'form': form, 'snip': snip, 'version': version, 'changemessage': changemessage } ) ) )
def editSnip(request, group, snipName, versionId=None): version = None data = request.method == 'POST' and request.POST or None try: snip = WikiSnip.objects.get(group=group, name__exact=snipName) if versionId is not None: version = WikiSnipChange.objects.get(pk=versionId) if not version or version.snip != snip: # TODO: raise a 404 instead raise PermissionDenied() snip.body = version.body #SnipForm = forms.models.form_for_instance(snip, form = CaptchaEditBaseForm) form = WikiSnipForm(data, instance=snip) except WikiSnip.DoesNotExist: #SnipForm = forms.models.form_for_model(WikiSnip, form = CaptchaEditBaseForm) form = WikiSnipForm(data) snip = WikiSnip(name=snipName, group=group) #snip = None if not snip.has_edit_permission(): raise PermissionDenied() #SnipForm.base_fields['body'].widget.attrs['cols'] = 80 #SnipForm.base_fields['body'].widget.attrs['rows'] = 30 changemessage = "" if request.method == 'POST': if 'type' in request.POST and request.POST['type'] == 'preview': return HttpResponse( unicode(WikiSnip(body=request.POST['body']).render())) changemessage = request.POST['message'] #form = SnipForm(request.POST) if form.is_valid(): old_title = None old_body = None change_type = 0 if snip.id: old_title = snip.title old_body = snip.body snip = form.save(commit=False) snip.group = group snip.name = snipName if request.user.is_authenticated(): snip.editor = request.user else: snip.editor = None snip.save() if old_body is not None: if snip.body != old_body: change_type |= 1 if snip.title != old_title: change_type |= 2 else: # if a snip is new, everything has changed .. change_type = 1 | 2 | 4 data = form.cleaned_data if tag_set_labels(snip, data['tags']): change_type |= 4 change = WikiSnipChange( snip=snip, #editor = request.user, editor=snip.editor, edited=datetime.today(), message=request.POST['message'], title=snip.title, body=snip.body, change_type=change_type, ) change.save() tag_set_labels(change, data['tags']) return HttpResponseRedirect(snip.get_absolute_url()) else: #form = SnipForm() if snip is not None: form.fields['tags'].initial = tag_get_labels(snip) pass if version: from sphene.community.templatetags.sph_extras import sph_date changemessage = ugettext('Reverted to revision of %(editdate)s') % \ { 'editdate': sph_date( version.edited ) } t = loader.get_template('sphene/sphwiki/editSnip.html') return HttpResponse( t.render( RequestContext( request, { 'form': form, 'snip': snip, 'version': version, 'changemessage': changemessage })))