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 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
Exemple #3
0
 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)
Exemple #6
0
def sph_tag_labels(value):
    return tag_get_labels(value)
Exemple #7
0
def get_tag_labels(instance, context):
    return tag_get_labels(instance)
Exemple #8
0
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 } ) ) )
Exemple #9
0
 def get_tag_labels(self):
     return tag_get_labels(self.post)
Exemple #10
0
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
                })))