def report_view(request, response_format='html', report_id=None): "Display the report" report = get_object_or_404(Report, pk=report_id) report_context = _get_report_content(report, request) context = _get_default_context(request) context.update(report_context) if response_format == "csv": return render_to_response('reports/gen', context, context_instance=RequestContext(request), response_format='csv') report_content = str(render_to_response('reports/gen', context, context_instance=RequestContext(request), response_format='html')).replace('Content-Type: text/html', '') charts = report.chart_set.filter(trash=False) # Now take the rendered report and embed it in the report view page. context = _get_default_context(request) context.update({'report': report, 'charts': charts, 'report_content': report_content}) return render_to_response('reports/report_view', context, context_instance=RequestContext(request), response_format=response_format)
def authorize_request_token(request, form_class=AuthorizeRequestTokenForm, template_name='core/api/auth/authorize', verification_template_name='core/api/auth/authorize_verification_code'): if 'oauth_token' not in request.REQUEST: return HttpResponseBadRequest('No request token specified.') oauth_request = get_oauth_request(request) try: request_token = store.fetch_request_token(request, oauth_request, request.REQUEST['oauth_token']) except InvalidTokenError: return HttpResponseBadRequest('Invalid request token.') consumer = store.get_consumer_for_request_token(request, oauth_request, request_token) if request.method == 'POST': form = form_class(request.POST) if form.is_valid() and form.cleaned_data['authorize_access']: request_token = store.authorize_request_token(request, oauth_request, request_token) if request_token.callback is not None and request_token.callback != 'oob': domain = RequestSite(request).domain return HttpResponseRedirect('%s&%s' % (request_token.get_callback_url(), urlencode({'oauth_token': request_token.key, 'domain': domain}))) else: return render_to_response(verification_template_name, {'consumer': consumer, 'verification_code': request_token.verifier}, context_instance=RequestContext(request), response_format='html') else: form = form_class(initial={'oauth_token': request_token.key}) return render_to_response(template_name, {'consumer': consumer, 'form': form}, context_instance=RequestContext(request), response_format='html')
def category_edit(request, knowledgeCategory_id, response_format='html'): "Knowledge category edit page" category = get_object_or_404(KnowledgeCategory, pk=knowledgeCategory_id) items = Object.filter_permitted(manager=KnowledgeItem.objects, user=request.user.get_profile(), mode='r') if not request.user.get_profile().has_permission(category, mode="w"): return user_denied(request, message="You don't have access to this Knowledge Category") if request.POST: if not 'cancel' in request.POST: form = KnowledgeCategoryForm(request.POST, instance=category) if form.is_valid(): category = form.save() return HttpResponseRedirect(reverse('knowledge_category_view', args=[category.treepath])) else: return HttpResponseRedirect(reverse('knowledge_category_view', args=[category.treepath])) else: form = KnowledgeCategoryForm(instance=category) context = _get_default_context(request) context.update({'form': form, 'category': category, 'items':items}) return render_to_response('knowledge/category_edit', context, context_instance=RequestContext(request), response_format=response_format)
def item_add_folder(request, folderPath, response_format='html'): "Add new knowledge item to preselected folder" items = Object.filter_permitted(manager=KnowledgeItem.objects, user=request.user.get_profile(), mode='r') try: folder = KnowledgeFolder.by_path(folderPath) knowledgeType_id = folder.id except KnowledgeFolder.DoesNotExist: raise Http404 if request.POST: if not 'cancel' in request.POST: item = KnowledgeItem() form = KnowledgeItemForm(request.user.get_profile(), knowledgeType_id, request.POST, instance=item) if form.is_valid(): item = form.save() item.set_user_from_request(request) return HttpResponseRedirect(reverse('knowledge_item_view', args=[item.folder.treepath, item.treepath])) else: return HttpResponseRedirect(reverse('knowledge')) else: form = KnowledgeItemForm(request.user.get_profile(), knowledgeType_id) context = _get_default_context(request) context.update({'items': items, 'form':form, 'folder':folder}) return render_to_response('knowledge/item_add_folder', context, context_instance=RequestContext(request), response_format=response_format)
def folder_delete(request, knowledgeType_id, response_format='html'): "Type delete" folder = get_object_or_404(KnowledgeFolder, pk=knowledgeType_id) items = Object.filter_by_request(request, manager=KnowledgeItem.objects.filter(folder=folder)) if not request.user.get_profile().has_permission(folder, mode='w'): return user_denied(request, message="You don't have access to this Knowledge Type") if request.POST: if 'delete' in request.POST: if 'trash' in request.POST: folder.trash = True folder.save() else: folder.delete() return HttpResponseRedirect(reverse('knowledge_index')) elif 'cancel' in request.POST: return HttpResponseRedirect(reverse('knowledge_folder_view', args=[folder.treepath])) context = _get_default_context(request) context.update({'items': items, 'folder':folder}) return render_to_response('knowledge/folder_delete', context, context_instance=RequestContext(request), response_format=response_format)
def index(request, response_format='html'): "Default index page" profile = request.user.get_profile() query = _get_filter_query(profile, filters=request.GET) updates = UpdateRecord.objects.filter(query).distinct() if request.POST: record = UpdateRecord() record.record_type = 'share' form = UpdateRecordForm(request.POST, user=profile, instance=record) if form.is_valid(): record = form.save() record.body = record.body.replace('\n', ' <br />') record.save() record.set_user_from_request(request) return HttpResponseRedirect(reverse('news_index')) else: form = UpdateRecordForm(user=profile) if response_format == 'rss': return ObjectFeed(title=_('All Activity'), link=request.path, description=_('Updates on activity in your Tree.io'), objects=updates)(request) context = _get_default_context(request) context.update({'form': form, 'updates': updates, 'profile': profile}) return render_to_response('news/index', context, context_instance=RequestContext(request), response_format=response_format)
def my_watchlist(request, response_format='html'): "Displays news about all objects a User is subscribed to" profile = request.user.get_profile() query = _get_filter_query(profile, do_recipients=False, filters=request.GET) & Q(about__in=profile.subscriptions.all()) & ~Q(author=profile) updates = UpdateRecord.objects.filter(query).distinct() if request.POST: record = UpdateRecord() record.record_type = 'share' form = UpdateRecordForm(request.POST,user=profile, instance=record) if form.is_valid(): record = form.save(commit=False) record.body = record.body.replace('\n', ' <br />') record.save() record.set_user_from_request(request) return HttpResponseRedirect(reverse('news_index')) else: form = UpdateRecordForm(user=profile) if response_format == 'rss': return ObjectFeed(title=_('My Watchlist'), link=request.path, description=_('Updates on your watchlist in Tree.io'), objects=updates)(request) context = _get_default_context(request) context.update({'form': form, 'updates': updates, 'profile': profile}) return render_to_response('news/my_watchlist', context, context_instance=RequestContext(request), response_format=response_format)
def task_time_slot_edit(request, time_slot_id, response_format='html'): "Task time slot edit page" task_time_slot = get_object_or_404(TaskTimeSlot, pk=time_slot_id) task = task_time_slot.task if not request.user.get_profile().has_permission(task_time_slot, mode='w') \ and not request.user.get_profile().has_permission(task, mode='w'): return user_denied(request, message="You don't have access to this Task Time Slot") if request.POST: form = TaskTimeSlotForm(request.user.get_profile(), None, request.POST, instance=task_time_slot) if form.is_valid(): task_time_slot = form.save() return HttpResponseRedirect(reverse('projects_task_view', args=[task.id])) elif 'cancel' in request.POST: return HttpResponseRedirect(reverse('projects_task_view', args=[task.id])) else: form = TaskTimeSlotForm(request.user.get_profile(), None, instance=task_time_slot) context = _get_default_context(request) context.update({'form': form, 'task_time_slot': task_time_slot, 'task':task}) return render_to_response('projects/task_time_edit', context, context_instance=RequestContext(request), response_format=response_format)
def service_record_add(request, response_format='html'): "New service_record form" if not request.user.get_profile().is_admin('maker.infrastructure'): return user_denied(request, message="You don't have administrator access to the Infrastructure module") service_record = ItemServicing() if request.POST: if not 'cancel' in request.POST: form = ServiceRecordForm(request.user.get_profile(), service_record, request.POST) if form.is_valid(): record = form.save(request) return HttpResponseRedirect(reverse('infrastructure_service_record_view', args=[record.id])) else: return HttpResponseRedirect(reverse('infrastructure_service_record_index')) else: form = ServiceRecordForm(request.user.get_profile(), service_record) context = _get_default_context(request) context.update({'service_record': service_record, 'form': form}) return render_to_response('infrastructure/service_record_add', context, context_instance=RequestContext(request), response_format=response_format)
def settings_view(request, response_format='html'): "Settings" if not request.user.get_profile().is_admin('maker.infrastructure'): return user_denied(request, message="You are not an Administrator of the Infrastructure module", response_format=response_format) item_types = ItemType.objects.all().filter(trash=False) item_statuses = ItemStatus.objects.all().filter(trash=False) item_fields = ItemField.objects.all().filter(trash=False) default_item_status = None try: conf = ModuleSetting.get_for_module('maker.infrastructure', 'default_item_status')[0] default_item_status = ItemStatus.objects.get(pk=long(conf.value), trash=False) except Exception: pass context = _get_default_context(request) context.update({'item_types': item_types, 'item_fields': item_fields, 'item_statuses': item_statuses, 'default_item_status': default_item_status}) return render_to_response('infrastructure/settings_view', context, context_instance=RequestContext(request), response_format=response_format)
def item_edit(request, item_id, response_format='html'): "Item edit page" item = get_object_or_404(Item, pk=item_id) if not request.user.get_profile().has_permission(item, mode="w"): return user_denied(request, message="You don't have write access to this Item", response_format=response_format) if request.POST: if not 'cancel' in request.POST: form = ItemForm(request.user.get_profile(), item.item_type, request.POST, files=request.FILES, instance=item) if form.is_valid(): item = form.save(request) return HttpResponseRedirect(reverse('infrastructure_item_view', args=[item.id])) else: return HttpResponseRedirect(reverse('infrastructure_item_view', args=[item.id])) else: form = ItemForm(request.user.get_profile(), item.item_type, instance=item) context = _get_default_context(request) context.update({'item': item, 'form': form }) return render_to_response('infrastructure/item_edit', context, context_instance=RequestContext(request), response_format=response_format)
def item_add_typed(request, type_id, response_format='html'): "Item add with preselected type" item_type = get_object_or_404(ItemType, pk=type_id) if not request.user.get_profile().has_permission(item_type, mode='x'): return user_denied(request, message="You don't have access to create " + unicode(item_type), response_format=response_format) if request.POST: if not 'cancel' in request.POST: form = ItemForm(request.user.get_profile(), item_type, request.POST, files=request.FILES) if form.is_valid(): item = form.save(request) return HttpResponseRedirect(reverse('infrastructure_item_view', args=[item.id])) else: return HttpResponseRedirect(reverse('infrastructure_index')) else: form = ItemForm(request.user.get_profile(), item_type) context = _get_default_context(request) context.update({'item_type': item_type, 'form': form}) return render_to_response('infrastructure/item_add_typed', context, context_instance=RequestContext(request), response_format=response_format)
def item_add(request, response_format='html'): "New item form" context = _get_default_context(request) return render_to_response('infrastructure/item_add', context, context_instance=RequestContext(request), response_format=response_format)
def status_add(request, response_format='html'): "ItemStatus edit" if not request.user.get_profile().is_admin('maker.infrastructure'): return user_denied(request, message="You are not an Administrator of the Infrastructure module", response_format=response_format) if request.POST: if not 'cancel' in request.POST: item_status = ItemStatus() form = ItemStatusForm(request.POST, instance=item_status) if form.is_valid(): item_status = form.save(request) item_status.set_user_from_request(request) return HttpResponseRedirect(reverse('infrastructure_status_view', args=[item_status.id])) else: return HttpResponseRedirect(reverse('infrastructure_settings_view')) else: form = ItemStatusForm() context = _get_default_context(request) context.update({'form': form}) return render_to_response('infrastructure/item_status_add', context, context_instance=RequestContext(request), response_format=response_format)
def status_edit(request, status_id, response_format='html'): "ItemStatus edit" item_status = get_object_or_404(ItemStatus, pk=status_id) if not request.user.get_profile().has_permission(item_status, mode='w'): return user_denied(request, message="You don't have access to this Item Status", response_format=response_format) if request.POST: if not 'cancel' in request.POST: form = ItemStatusForm(request.POST, instance=item_status) if form.is_valid(): item_status = form.save(request) return HttpResponseRedirect(reverse('infrastructure_status_view', args=[item_status.id])) else: return HttpResponseRedirect(reverse('infrastructure_status_view', args=[item_status.id])) else: form = ItemStatusForm(instance=item_status) context = _get_default_context(request) context.update({'item_status': item_status, 'form': form}) return render_to_response('infrastructure/item_status_edit', context, context_instance=RequestContext(request), response_format=response_format)
def task_delete(request, task_id, response_format='html'): "Task delete" task = get_object_or_404(Task, pk=task_id) if not request.user.get_profile().has_permission(task, mode='w'): return user_denied(request, message="You don't have access to this Task") if request.POST: if 'delete' in request.POST: if 'trash' in request.POST: task.trash = True task.save() else: task.delete() return HttpResponseRedirect(reverse('projects_index')) elif 'cancel' in request.POST: return HttpResponseRedirect(reverse('projects_task_view', args=[task.id])) subtasks = Object.filter_by_request(request, Task.objects.filter(parent=task)) time_slots = Object.filter_by_request(request, TaskTimeSlot.objects.filter(task=task)) context = _get_default_context(request) context.update({'task': task, 'subtasks': subtasks, 'time_slots': time_slots}) return render_to_response('projects/task_delete', context, context_instance=RequestContext(request), response_format=response_format)
def task_time_slot_add(request, task_id, response_format='html'): "Time slot add to preselected task" task = get_object_or_404(Task, pk=task_id) if not request.user.get_profile().has_permission(task, mode='x'): return user_denied(request, message="You don't have access to this Task") if request.POST: task_time_slot = TaskTimeSlot(task=task, time_to=datetime.now(), user=request.user.get_profile()) form = TaskTimeSlotForm(request.user.get_profile(), task_id, request.POST, instance=task_time_slot) if 'cancel' in request.POST: return HttpResponseRedirect(reverse('projects_task_view', args=[task.id])) elif form.is_valid(): task_time_slot = form.save() task_time_slot.set_user_from_request(request) return HttpResponseRedirect(reverse('projects_task_view', args=[task.id])) else: form = TaskTimeSlotForm(request.user.get_profile(), task_id) subtasks = Object.filter_by_request(request, Task.objects.filter(parent=task)) time_slots = Object.filter_by_request(request, TaskTimeSlot.objects.filter(task=task)) context = _get_default_context(request) context.update({'form': form, 'task': task, 'subtasks': subtasks, 'time_slots': time_slots}) return render_to_response('projects/task_time_add', context, context_instance=RequestContext(request), response_format=response_format)
def service_record_edit(request, service_record_id, response_format='html'): "ServiceRecord edit page" service_record = get_object_or_404(ItemServicing, pk=service_record_id) if not request.user.get_profile().has_permission(service_record, mode="w"): return user_denied(request, message="You don't have write access to this ServiceRecord", response_format=response_format) if request.POST: if not 'cancel' in request.POST: form = ServiceRecordForm(request.user.get_profile(), None, request.POST, instance=service_record) if form.is_valid(): service_record = form.save(request) return HttpResponseRedirect(reverse('infrastructure_service_record_view', args=[service_record.id])) else: return HttpResponseRedirect(reverse('infrastructure_service_record_view', args=[service_record.id])) else: form = ServiceRecordForm(request.user.get_profile(), None, instance=service_record) context = _get_default_context(request) context.update({'service_record': service_record, 'form': form }) return render_to_response('infrastructure/service_record_edit', context, context_instance=RequestContext(request), response_format=response_format)
def task_time_slot_delete(request, time_slot_id, response_format='html'): "Task time slot delete" task_time_slot = get_object_or_404(TaskTimeSlot, pk=time_slot_id) task = task_time_slot.task if not request.user.get_profile().has_permission(task_time_slot, mode='w') \ and not request.user.get_profile().has_permission(task, mode='w'): return user_denied(request, message="You don't have access to this Task Time Slot") if request.POST: if 'delete' in request.POST: if 'trash' in request.POST: task_time_slot.trash = True task_time_slot.save() else: task_time_slot.delete() return HttpResponseRedirect(reverse('projects_task_view', args=[task.id])) elif 'cancel' in request.POST: return HttpResponseRedirect(reverse('projects_task_view', args=[task.id])) context = _get_default_context(request) context.update({'task_time_slot': task_time_slot, 'task':task}) return render_to_response('projects/task_time_delete', context, context_instance=RequestContext(request), response_format=response_format)
def task_status_delete(request, status_id, response_format='html'): "TaskStatus delete" status = get_object_or_404(TaskStatus, pk=status_id) if not request.user.get_profile().has_permission(status, mode='w'): return user_denied(request, message="You don't have access to this Task Status") if request.POST: if 'delete' in request.POST: if 'trash' in request.POST: status.trash = True status.save() else: status.delete() return HttpResponseRedirect(reverse('projects_index')) elif 'cancel' in request.POST: return HttpResponseRedirect(reverse('projects_index_by_status', args=[status.id])) milestones = Object.filter_by_request(request, Milestone.objects) context = _get_default_context(request) context.update({'status':status, 'milestones':milestones}) return render_to_response('projects/status_delete', context, context_instance=RequestContext(request), response_format=response_format)
def widget_news_social(request, response_format='html'): "Widget: Social Activity" profile = request.user.get_profile() query = _get_filter_query(profile) & Q(record_type='share') updates = UpdateRecord.objects.filter(query).distinct() if request.POST: record = UpdateRecord() record.record_type = 'share' form = UpdateRecordForm(request.POST,user=profile, instance=record) if form.is_valid(): record = form.save() record.body = record.body.replace('\n', ' <br />') record.save() record.set_user_from_request(request) return HttpResponseRedirect(reverse('core_dashboard_index')) else: form = UpdateRecordForm(user=profile) context = _get_default_context(request) context.update({'form': form, 'updates': updates, 'profile': profile}) return render_to_response('news/widgets/social', context, context_instance=RequestContext(request), response_format=response_format)
def milestone_add_typed(request, project_id=None, response_format='html'): "Milestone add to preselected project" project = None if project_id: project = get_object_or_404(Project, pk=project_id) if not request.user.get_profile().has_permission(project, mode='x'): project = None if request.POST: if not 'cancel' in request.POST: milestone = Milestone() form = MilestoneForm(request.user.get_profile(), project_id, request.POST, instance=milestone) if form.is_valid(): milestone = form.save() milestone.set_user_from_request(request) return HttpResponseRedirect(reverse('projects_milestone_view', args=[milestone.id])) else: return HttpResponseRedirect(reverse('projects')) else: form = MilestoneForm(request.user.get_profile(), project_id) context = _get_default_context(request) context.update({'form': form, 'project': project}) return render_to_response('projects/milestone_add_typed', context, context_instance=RequestContext(request), response_format=response_format)
def folder_edit(request, knowledgeType_id, response_format='html'): "Knowledge folder edit page" folder = get_object_or_404(KnowledgeFolder, pk=knowledgeType_id) items = Object.filter_by_request(request, manager=KnowledgeItem.objects.filter(folder=folder)) if not request.user.get_profile().has_permission(folder, mode="w"): return user_denied(request, message="You don't have access to this Knowledge Type") if request.POST: if not 'cancel' in request.POST: form = KnowledgeFolderForm(request.user.get_profile(), None, request.POST, instance=folder) if form.is_valid(): folder = form.save() return HttpResponseRedirect(reverse('knowledge_folder_view', args=[folder.treepath])) else: return HttpResponseRedirect(reverse('knowledge_folder_view', args=[folder.treepath])) else: form = KnowledgeFolderForm(request.user.get_profile(), None, instance=folder) context = _get_default_context(request) context.update({'items': items, 'folder': folder, 'form': form}) return render_to_response('knowledge/folder_edit', context, context_instance=RequestContext(request), response_format=response_format)
def milestone_edit(request, milestone_id, response_format='html'): "Milestone edit page" milestone = get_object_or_404(Milestone, pk=milestone_id) project = milestone.project if not request.user.get_profile().has_permission(milestone, mode='w'): return user_denied(request, message="You don't have access to this Milestone") if request.POST: if not 'cancel' in request.POST: form = MilestoneForm(request.user.get_profile(), None, request.POST, instance=milestone) if form.is_valid(): milestone = form.save() return HttpResponseRedirect(reverse('projects_milestone_view', args=[milestone.id])) else: return HttpResponseRedirect(reverse('projects_milestone_view', args=[milestone.id])) else: form = MilestoneForm(request.user.get_profile(), None, instance=milestone) context = _get_default_context(request) context.update({'form': form, 'milestone': milestone, 'project':project}) return render_to_response('projects/milestone_edit', context, context_instance=RequestContext(request), response_format=response_format)
def item_add(request, response_format='html'): "Add new knowledge item" items = Object.filter_permitted(manager=KnowledgeItem.objects, user=request.user.get_profile(), mode='r') if request.POST: if not 'cancel' in request.POST: item = KnowledgeItem() form = KnowledgeItemForm(request.user.get_profile(), None, request.POST, instance=item) if form.is_valid(): item = form.save() item.set_user_from_request(request) return HttpResponseRedirect(reverse('knowledge_item_view', args=[item.folder.treepath, item.treepath])) else: return HttpResponseRedirect(reverse('knowledge')) else: form = KnowledgeItemForm(request.user.get_profile(), None) context = _get_default_context(request) context.update({'items': items, 'form':form}) return render_to_response('knowledge/item_add', context, context_instance=RequestContext(request), response_format=response_format)
def milestone_delete(request, milestone_id, response_format='html'): "Milestone delete" milestone = get_object_or_404(Milestone, pk=milestone_id) project = milestone.project if not request.user.get_profile().has_permission(milestone, mode='w'): return user_denied(request, message="You don't have access to this Milestone") query = Q(milestone=milestone, parent__isnull=True) if request.GET: query = query & _get_filter_query(request.GET) tasks = Object.filter_by_request(request, Task.objects.filter(query)) if request.POST: if 'delete' in request.POST: if 'trash' in request.POST: milestone.trash = True milestone.save() else: milestone.delete() return HttpResponseRedirect(reverse('projects_index')) elif 'cancel' in request.POST: return HttpResponseRedirect(reverse('projects_milestone_view', args=[milestone.id])) context = _get_default_context(request) context.update({'milestone': milestone, 'tasks': tasks, 'project':project}) return render_to_response('projects/milestone_delete', context, context_instance=RequestContext(request), response_format=response_format)
def item_edit(request, knowledgeItem_id, response_format='html'): "Knowledge item edit page" item = get_object_or_404(KnowledgeItem, pk=knowledgeItem_id) items = Object.filter_permitted(manager=KnowledgeItem.objects, user=request.user.get_profile(), mode='r') if not request.user.get_profile().has_permission(item, mode="w"): return user_denied(request, message="You don't have access to this Knowledge Item") if request.POST: if not 'cancel' in request.POST: form = KnowledgeItemForm(request.user.get_profile(), None, request.POST, instance=item) if form.is_valid(): item = form.save() return HttpResponseRedirect(reverse('knowledge_item_view', args=[item.folder.treepath, item.treepath])) else: return HttpResponseRedirect(reverse('knowledge_item_view', args=[item.folder.treepath, item.treepath])) else: form = KnowledgeItemForm(request.user.get_profile(), None, instance=item) context = _get_default_context(request) context.update({'form': form, 'item':item, 'items':items}) return render_to_response('knowledge/item_edit', context, context_instance=RequestContext(request), response_format=response_format)
def task_add_to_milestone(request, milestone_id=None, response_format='html'): "Task add to preselected project" milestone = None if milestone_id: milestone = get_object_or_404(Milestone, pk=milestone_id) if not request.user.get_profile().has_permission(milestone, mode='x'): milestone = None project = milestone.project project_id = milestone.project.id if request.POST: if not 'cancel' in request.POST: task = Task() form = TaskForm(request.user.get_profile(), None, project_id, milestone_id, request.POST, instance=task) if form.is_valid(): task = form.save() task.set_user_from_request(request) return HttpResponseRedirect(reverse('projects_task_view', args=[task.id])) else: return HttpResponseRedirect(reverse('projects_milestone_view', args=[milestone.id])) else: form = TaskForm(request.user.get_profile(), None, project_id, milestone_id) context = _get_default_context(request) context.update({'form': form, 'project':project, 'milestone':milestone}) return render_to_response('projects/task_add_to_milestone', context, context_instance=RequestContext(request), response_format=response_format)
def category_delete(request, knowledgeCategory_id, response_format='html'): "Knowledge Category delete" category = get_object_or_404(KnowledgeCategory, pk=knowledgeCategory_id) items = Object.filter_permitted(manager=KnowledgeItem.objects, user=request.user.get_profile(), mode='r') if not request.user.get_profile().has_permission(category, mode="w"): return user_denied(request, message="You don't have access to this Knowledge Category") if request.POST: if 'delete' in request.POST: if 'trash' in request.POST: category.trash = True category.save() else: category.delete() return HttpResponseRedirect(reverse('knowledge_index')) elif 'cancel' in request.POST: return HttpResponseRedirect(reverse('knowledge_category_view', args=[category.treepath])) context = _get_default_context(request) context.update({'category': category, 'items':items}) return render_to_response('knowledge/category_delete', context, context_instance=RequestContext(request), response_format=response_format)
def task_add_subtask(request, task_id=None, response_format='html'): "New subtask form" parent = None if task_id: parent = get_object_or_404(Task, pk=task_id) if not request.user.get_profile().has_permission(parent, mode='x'): parent = None if request.POST: if not 'cancel' in request.POST: task = Task() form = TaskForm(request.user.get_profile(), parent, None, None, request.POST, instance=task) if form.is_valid(): task = form.save() task.set_user_from_request(request) return HttpResponseRedirect(reverse('projects_task_view', args=[parent.id])) else: return HttpResponseRedirect(reverse('projects_task_view', args=[parent.id])) else: form = TaskForm(request.user.get_profile(), parent, None, None) context = _get_default_context(request) context.update({'form': form, 'task': parent}) return render_to_response('projects/task_add_subtask', context, context_instance=RequestContext(request), response_format=response_format)