def step5(request, action_id, form_class=ActionStep5Form, template_name="actions/step5.html"): action = get_object_or_404(Action, pk=action_id) if not has_perm(request.user,'actions.add_action'): raise Http403 if request.method == "POST": form = form_class(request.POST) if form.is_valid(): add_article = form.cleaned_data['add_article'] if add_article: # add an article from articles.models import Article from categories.models import Category from perms.object_perms import ObjectPermission from django.template.defaultfilters import slugify # article slug is a unique field, if the slug already exists, # what should we do? let append the action id to it to keep it unique slug = slugify(action.email.subject + '-' + str(action.id)) try: art = Article.objects.get(slug=slug) except Article.DoesNotExist: art = Article() art.headline = action.email.subject art.slug = slug art.summary = "" art.body = action.email.body art.sourct = request.user.get_full_name() art.first_name = request.user.first_name art.last_name = request.user.last_name profile = request.user.get_profile() art.phone = profile.phone art.fax = profile.fax art.email = profile.email art.website = get_setting('site', 'global', 'siteurl') art.release_dt = datetime.datetime.now() if action.member_only: art.allow_anonymous_view = 1 art.allow_user_view = 1 art.allow_member_view = 1 art.allow_anonymous_edit = 0 art.allow_user_edit = 0 art.allow_member_edit = 0 art.status = 1 art.status_detail = 'active' art.creator = request.user art.creator_username = request.user.username art.owner = request.user art.owner_username = request.user.username art.save() # user group - assign the permission to view this article if action.group: ObjectPermission.objects.assign_group(action.group, art) # update category category = Category.objects.update(art, 'Newsletter', 'category') action.article = art action.save() #if action.group.members.count() < LIMIT: return HttpResponseRedirect(reverse('action.send', args=[action.id])) #else: # # return to confirmation page # return HttpResponseRedirect(reverse('action.confirm', args=[action.id])) else: form = form_class() return render_to_response(template_name, {'form':form, 'action':action}, context_instance=RequestContext(request))