Assignment1 : Wordbucket GitHub Link
Commit 9 Wordbucket : add detail page for the word and non duplicate word added function
Commits on Mar 4, 2018
functional tests
เพิ่ม test โดย
- แก้ implicit wait ออกเพื่อลดเวลาการ test
- แก้ประโยคที่ไม่ make sense ใน user story
- เพิ่ม test_can_view_the_word_explanation_and_add_exist_word_new_explanation เทสในคำอธิบายใหม่ในคำที่ซ้ำ(ใส่คำที่มีอยู่แล้วไป กับ explanation ที่ต่างจากเดิมจะทำการเพิ่ม explanation ในคำที่มีอยู่แล้ว) พร้อม user story ใหม่
models.py
เพิ่ม model เล็กน้อยโดยใส่ datetime ที่ โพสเข้าไป
/templates/detail.html
เพิ่มหน้า detail.html สำหรับดูคำอธิบาย (explanation) ของ word (มีหลาย explanation สำหรับหลายคนก็อาจจะอธิบายไม่เหมือนกัน)
| @@ -0,0 +1,21 @@ | ||
| +<html> | ||
| + <head> | ||
| + <title>Word Bucket</title> | ||
| + </head> | ||
| + <body> | ||
| + <h1>Word Bucket</h1> | ||
| + <form method="POST" id="form1"> | ||
| + <input name="explanation_input" id="id_new_eplanation" placeholder="Add explanation" /> | ||
| + {% csrf_token %} | ||
| + </form> | ||
| + <button type="submit" form="form1" value="Submit">Submit</button> | ||
| + | ||
| + <h2>{{ word }}</h2> | ||
| + | ||
| + <table id="id_explanation_table"> | ||
| + {% for explanation in word.explanation_set.all %} | ||
| + <tr><td>explanation {{ forloop.counter }} : {{ explanation.explanation_text }}</td></tr> | ||
| + {% endfor %} | ||
| + </table> | ||
| + </body> | ||
| +</html> |
/templates/home.html
- เพิ่ม message เตือนตอน word ซ้ำโดยให้ตัวแปรชื่อ d_message
- เปลี่ยนจากโชว์ word ในตารางธรรมดาเป็น link ไปหน้า detail ของ word นั้นๆ
unit test
- แก้ชื่อคลาส WordAndExplanationModelTest เป็น AllAroundModelsTest เนื่องจากไม่ได้ test แค่ word กับ explanation แต่จะมี ตารางอื่นเพิ่มมาในอนาคต
- test หน้า word view (function word_view and template detail.html) โดยมี 3 tests คือ
- test template ถูกต้องหรือไม่
- test ใช้ template
- test แสดง explanation ใน word ที่เราดู
urls.py
เพิ่ม path function ที่เพิ่มใน views.py
| @@ -1,6 +1,13 @@ | ||
| from django.urls import path, re_path | ||
| from wordbucket import views | ||
| +app_name = 'wordbucket' | ||
| urlpatterns = [ | ||
| path('', views.home_page, name='home'), | ||
| + path('add_word/', views.add_word, name='add_word'), | ||
| + path('search/', views.search, name='search'), | ||
| + re_path(r'^(\d+)/$', views.view_word, name='detail'), | ||
| + re_path(r'^(\d+)/add_explanation$', views.add_explanation, name='add_explanation'), | ||
| + re_path(r'^(\d+)/like$', views.vote_like, name='like'), | ||
| + re_path(r'^(\d+)/dislike$', views.vote_dislike, name='dislike'), | ||
| ] |
views.py
- แก้การ home_page() ไม่ให้สามารถเพิ่ม duplicate word แล้วสร้างคำใหม่โดยใช้ตัวแปร d_query query หา word ใน database ถ้าไม่มีถึงเพิ่มได้ ถ้ามีจะเพิ่ม explanation ใน word เดิม
- เพิ่ม function view_word() โดยตอนนี้ทำเพียง ส่งตัวแปร word_ ตาม link จากหน้า home ในชื่อ word โดยสามารถ ขอ explanation_set ของ word นั้นใน template ได้ จึงสามารถแสดง explanation ทั้งหมดของ word นั้นๆได้
ไม่มีความคิดเห็น:
แสดงความคิดเห็น