def add_page(request, user_id, project_slug=None): project = Project.objects.get(owner=user_id, slug=project_slug) form = PageForm() page = Page() if request.method == 'POST': for field_name in ['name','slug','privacy','content']: if (field_name != 'id') and (field_name[0] != "_"): setattr(page, field_name, request.POST[field_name]) page.created = datetime.now() page.modified = datetime.now() page.owner = request.user template = request.POST['template'] template_obj = Template.objects.get(id=template) page.template = template_obj page.save() # Attach the page to the respective project project.pages.add(page) return HttpResponseRedirect(request.META['SCRIPT_NAME']+'/present/'+str(request.user.id)+'/'+project.slug+'/compose/') return render_to_response('present/create_page.html', {'form': form, 'project': project}, context_instance=RequestContext(request))
def create_project(request, user_id, project_slug = None): form = ProjectForm() # If a project needs to be updated, then supply the form with the current values if project_slug != None: project = Project.objects.get(owner=user_id, slug=project_slug) form = ProjectForm(initial={ 'name': project.name, 'slug': project.slug, 'description': project.description, 'privacy': project.privacy, 'template': project.template }) # current_form = {} # current_form = {'name': project.name, 'slug': project.slug, 'description':project.description, 'privacy':project.privacy, 'template':project.template.name} # json_serializer = serializers.get_serializer("json")() # current_form = json_serializer.serialize([current_form]) # return HttpResponse(form, mimetype='text/plain') # return HttpResponse(simplejson.dumps(current_form)) return render_to_response('present/editform.html', { 'form': form, 'project_slug':project_slug }, context_instance=RequestContext(request)) if request.method == 'POST': # try: # project = Project.objects.get(owner=user_id, slug=project_slug) # except: # project = Project() try: project = Project.objects.get(owner=user_id, slug=request.POST['project_slug']) except: project = Project() for field_name in ['name','slug','description','privacy']: if (field_name != 'id') and (field_name[0] != "_"): setattr(project, field_name, request.POST[field_name]) project.created = datetime.now() project.modified = datetime.now() proejct_type = ProjectType.objects.get(id=request.POST['type']) project.type = proejct_type template = Template.objects.get(id=request.POST['template']) project.template = template project.owner = request.user project.save() # Create a default page for the project # Assigning the basic page template page_template = Template.objects.get(id=2) page = Page() page.name = 'Home' page.slug = 'home' page.owner = request.user page.created = datetime.now() page.modified = datetime.now() # Default permission is protected - that is public but not indexed by search engines page.privacy = 1 page.template = page_template page.save() project.pages.add(page) project.save() # return HttpResponseRedirect(request.META['SCRIPT_NAME']+'/present/'+str(request.user.id)+'/public/'+project.slug+'/') return HttpResponseRedirect(request.META['SCRIPT_NAME']+'/present/'+str(request.user.id)+'/'+project.slug+'/compose/') # return render_to_response('present/create_project.html', # {'form': form}, # context_instance=RequestContext(request)) return render_to_response('present/editform.html', { 'form': form, 'project_slug':project_slug }, context_instance=RequestContext(request))