def save_post(self, newpost, data): super(BlogCategoryType, self).save_post(newpost, data) if newpost.thread is not None: return try: ext = newpost.blogpostextension_set.get() except BlogPostExtension.DoesNotExist: ext = BlogPostExtension( post = newpost, ) ext.slug = data['slug'] ext.status = data['status'] ext.save() tag_set_labels( newpost, data['tags'] ) if newpost.is_new_post: try: config = BlogCategoryConfig.objects.get( \ category = self.category) if config.enable_googleblogping: # If enabled, ping google blogsearch. import urllib url = self.category.group.get_baseurl() blog_feed_url = reverse('sphblog-feeds', urlconf=get_current_urlconf(), kwargs = { 'url': 'latestposts/%s' % self.category.id }) pingurl = 'http://blogsearch.google.com/ping?%s' % \ urllib.urlencode( \ { 'name': self.category.name, 'url': ''.join((url, self.category.get_absolute_url()),), 'changesURL': ''.join((url, blog_feed_url),) } ) urllib.urlopen( pingurl ) except BlogCategoryConfig.DoesNotExist: pass
def save_post(self, newpost, data): super(BlogCategoryType, self).save_post(newpost, data) if newpost.thread is not None: return try: ext = newpost.blogpostextension_set.get() except BlogPostExtension.DoesNotExist: ext = BlogPostExtension(post=newpost, ) ext.slug = data['slug'] ext.status = data['status'] ext.save() tag_set_labels(newpost, data['tags'])
def save_post(self, newpost, data): super(BlogCategoryType, self).save_post(newpost, data) if newpost.thread is not None: return try: ext = newpost.blogpostextension_set.get() except BlogPostExtension.DoesNotExist: ext = BlogPostExtension( post = newpost, ) ext.slug = data['slug'] ext.status = data['status'] ext.save() tag_set_labels( newpost, data['tags'] )
def save_post(self, newpost, data): super(BlogCategoryType, self).save_post(newpost, data) if newpost.thread is not None: return try: ext = newpost.blogpostextension_set.get() except BlogPostExtension.DoesNotExist: ext = BlogPostExtension(post=newpost, ) ext.slug = data['slug'] ext.status = data['status'] ext.save() tag_set_labels(newpost, data['tags']) if newpost.is_new_post: try: config = BlogCategoryConfig.objects.get( \ category = self.category) if config.enable_googleblogping: # If enabled, ping google blogsearch. import urllib url = self.category.group.get_baseurl() blog_feed_url = sph_reverse( 'sphblog-feeds', urlconf=get_current_urlconf(), kwargs={'category_id': self.category.id}) pingurl = 'http://blogsearch.google.com/ping?%s' % \ urllib.urlencode( \ { 'name': self.category.name, 'url': ''.join((url, self.category.get_absolute_url()),), 'changesURL': ''.join((url, blog_feed_url),) } ) urllib.urlopen(pingurl) except BlogCategoryConfig.DoesNotExist: pass
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 })))