コード例 #1
0
ファイル: views.py プロジェクト: alejo8591/maker
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)
コード例 #2
0
ファイル: views.py プロジェクト: alejo8591/maker
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')
コード例 #3
0
ファイル: views.py プロジェクト: alejo8591/maker
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)
コード例 #4
0
ファイル: views.py プロジェクト: alejo8591/maker
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)
コード例 #5
0
ファイル: views.py プロジェクト: alejo8591/maker
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)
コード例 #6
0
ファイル: views.py プロジェクト: alejo8591/maker
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)
コード例 #7
0
ファイル: views.py プロジェクト: alejo8591/maker
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)
コード例 #8
0
ファイル: views.py プロジェクト: alejo8591/maker
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)
コード例 #9
0
ファイル: views.py プロジェクト: alejo8591/maker
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)
コード例 #10
0
ファイル: views.py プロジェクト: alejo8591/maker
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)
コード例 #11
0
ファイル: views.py プロジェクト: alejo8591/maker
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)
コード例 #12
0
ファイル: views.py プロジェクト: alejo8591/maker
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)
コード例 #13
0
ファイル: views.py プロジェクト: alejo8591/maker
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)
コード例 #14
0
ファイル: views.py プロジェクト: alejo8591/maker
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)
コード例 #15
0
ファイル: views.py プロジェクト: alejo8591/maker
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)
コード例 #16
0
ファイル: views.py プロジェクト: alejo8591/maker
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)
コード例 #17
0
ファイル: views.py プロジェクト: alejo8591/maker
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)  
コード例 #18
0
ファイル: views.py プロジェクト: alejo8591/maker
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)
コード例 #19
0
ファイル: views.py プロジェクト: alejo8591/maker
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)
コード例 #20
0
ファイル: views.py プロジェクト: alejo8591/maker
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)
コード例 #21
0
ファイル: views.py プロジェクト: alejo8591/maker
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)
コード例 #22
0
ファイル: views.py プロジェクト: alejo8591/maker
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)
コード例 #23
0
ファイル: views.py プロジェクト: alejo8591/maker
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)
コード例 #24
0
ファイル: views.py プロジェクト: alejo8591/maker
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) 
コード例 #25
0
ファイル: views.py プロジェクト: alejo8591/maker
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)
コード例 #26
0
ファイル: views.py プロジェクト: alejo8591/maker
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) 
コード例 #27
0
ファイル: views.py プロジェクト: alejo8591/maker
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)
コード例 #28
0
ファイル: views.py プロジェクト: alejo8591/maker
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) 
コード例 #29
0
ファイル: views.py プロジェクト: alejo8591/maker
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)
コード例 #30
0
ファイル: views.py プロジェクト: alejo8591/maker
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)