二十. 增加一個項目協作留言板功能(六)----- 增加一個任務結束按鈕

在之前我們增加了一個刪除功能,是用於刪除整個任務的。但在實際過程中,我們並不希望刪除該任務,而是希望它留存下來供日後查詢,僅僅需要的是一個結束任務的功能。當結束任務後,任務中的任何信息都不能再更改,任務的狀態也變更成了已結單。



1.      task_edit.html中增加結束任務的按鈕,由於之前已經設置相關按鈕在‘處理中’的狀態時才顯示,因此通過結束任務按鈕將任務狀態置爲已結單,那麼相關按鈕將不再顯示。

{% if user == item.process_signer and task.task_status == '處理中' %}
<span>
    <a href="{% url 'process_edit' item.id %}" style="color:grey">編輯</a>|
    <a id="modal_button_2" class="grey" data-toggle="modal" href="#modal_form" rel="{% url 'process_delete' item.id %}" content="確認刪除內容爲{{ item.process_content }}的記錄麼?" title="刪除記錄">刪除</a>

</span>

{% endif %}

2.      views.py中增加結單功能函數:

from django.shortcuts import render, redirect, get_object_or_404, HttpResponse
import json
#結束任務功能
def task_finish(request, pk):
    #獲取任務實例
    task_ins = get_object_or_404(Task,pk=pk)
    #獲得該提交
    if request.method == 'POST':
        try:
            #將task的狀態置爲已結單
            task_ins.task_status = '已結單'
            task_ins.save()
            #在process增加一條記錄,標識某人結束了該項任務
            process_task = Task.objects.get(id = task_ins.id)
            process_ins = Process()
            process_ins.task = process_task
            process_ins.process_content = str(request.user) + u'完成了該項任務並結單'
            process_ins.process_signer = request.user
            process_ins.save()
            #返回JSON值,success
            data = 'success'
        except IntegrityError:
            #返回JSON值,error
            data = 'error'
        #通過json形式返回相關數值
        return HttpResponse(json.dumps(data), content_type = "application/json")

3.     urls.py中增加相應信息

url(r'^task_finish/(?P<pk>\d+)/$',echo.views.task_finish, name='task_finish'),


4.      驗證後,發現點擊結束任務按鈕後,所有按鈕將失效。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章