def edit_image(request, slug): project = get_object_or_404(Project, slug=slug) metric_permissions = project.get_metrics_permissions(request.user) if request.method == 'POST': form = project_forms.ProjectImageForm(request.POST, request.FILES, instance=project) if form.is_valid(): messages.success(request, _('Image updated')) form.save() return http.HttpResponseRedirect( reverse('projects_show', kwargs={ 'slug': project.slug, })) else: messages.error(request, _('There was an error uploading your image')) else: form = project_forms.ProjectImageForm(instance=project) return render_to_response( 'projects/project_edit_image.html', { 'project': project, 'form': form, 'image_tab': True, 'can_view_metric_overview': metric_permissions[0], 'is_challenge': (project.category == project.CHALLENGE), }, context_instance=RequestContext(request))
def create(request, category=None): user = request.user.get_profile() if request.method == 'POST': form = project_forms.ProjectForm(category, request.POST) image_form = None if form.is_valid(): project = form.save() if category: project.category = category image_form = project_forms.ProjectImageForm(request.POST, request.FILES, instance=project) if image_form.is_valid(): image_form.save() project.set_duration(form.cleaned_data['duration'] or 0) #CS - too much logic in view act = Activity(actor=user, verb=verbs['post'], scope_object=project, target_object=project) act.save() participation = Participation(project=project, user=user, organizing=True) participation.save() new_rel, created = Relationship.objects.get_or_create(source=user, target_project=project) new_rel.deleted = False new_rel.save() detailed_description_content = render_to_string( "projects/detailed_description_initial_content.html", {'project': project}) detailed_description = Page(title=_('Full Description'), slug='full-description', content=detailed_description_content, listed=False, author_id=user.id, project_id=project.id) if project.category != Project.STUDY_GROUP: detailed_description.collaborative = False detailed_description.save() project.detailed_description_id = detailed_description.id sign_up = Signup(author_id=user.id, project_id=project.id) sign_up.save() project.create() messages.success(request, _('The %s has been created.') % project.kind.lower()) return http.HttpResponseRedirect(reverse('projects_create_tasks', kwargs={'slug': project.slug,})) else: msg = _("Problem creating the course") messages.error(request, msg) else: form = project_forms.ProjectForm(category, initial={'test':True}) image_form = project_forms.ProjectImageForm() context = { 'form': form, 'image_form': image_form, 'category': category, 'is_challenge': (category == Project.CHALLENGE), } return render_to_response('projects/project_create_overview.html', context, context_instance=RequestContext(request))
def edit_image(request, slug): project = get_object_or_404(Project, slug=slug) if request.method == 'POST': form = project_forms.ProjectImageForm(request.POST, request.FILES, instance=project) if form.is_valid(): messages.success(request, _('Project image updated')) form.save() return http.HttpResponseRedirect(reverse('projects_show', kwargs={ 'slug': project.slug, })) else: messages.error(request, _('There was an error uploading your image')) else: form = project_forms.ProjectImageForm(instance=project) return render_to_response('projects/project_edit_image.html', { 'project': project, 'form': form, }, context_instance=RequestContext(request))
def edit_image_async(request, slug): project = get_object_or_404(Project, slug=slug) form = project_forms.ProjectImageForm(request.POST, request.FILES, instance=project) if form.is_valid(): instance = form.save() return http.HttpResponse(simplejson.dumps({ 'filename': instance.image.name, })) return http.HttpResponse(simplejson.dumps({ 'error': 'There was an error uploading your image.', }))