Merge lp:~psivaa/uci-engine/assignable-for-edit into lp:uci-engine

Proposed by Para Siva
Status: Needs review
Proposed branch: lp:~psivaa/uci-engine/assignable-for-edit
Merge into: lp:uci-engine
Prerequisite: lp:~joetalbott/uci-engine/add_ready_checkbox
Diff against target: 145 lines (+102/-1)
2 files modified
tests/test_webui.py (+92/-0)
webui/tickets/static/tickets/webuiforms.js (+10/-1)
To merge this branch: bzr merge lp:~psivaa/uci-engine/assignable-for-edit
Reviewer Review Type Date Requested Status
Francis Ginther Needs Fixing
Review via email: mp+244556@code.launchpad.net

This proposal supersedes a proposal from 2014-12-12.

Description of the change

Adding 'Ready to assign' to the edit form, following josepht's MP, https://code.launchpad.net/~joetalbott/uci-engine/add_ready_checkbox/+merge/243878

To post a comment you must log in.
Revision history for this message
Francis Ginther (fginther) wrote :

If a ticket is already marked as "ready to assign" and then edited again, the checkbox appears unset. As there is no way to go backward from "ready to assign" to not, the form should show that the option is set, but not allow it to be unset or just not display the option if it is set.

review: Needs Fixing
911. By Para Siva

Once a ticket is marked as ready to assign, no going back

912. By Para Siva

Adding test for not allowing to uncheck assignable

Revision history for this message
Para Siva (psivaa) wrote :

Thanks for the point, Francis. That has been fixed and a test to that effect is also added. Would appreciate a further look. Thanks

913. By Para Siva

Merging trunk

Unmerged revisions

913. By Para Siva

Merging trunk

912. By Para Siva

Adding test for not allowing to uncheck assignable

911. By Para Siva

Once a ticket is marked as ready to assign, no going back

910. By Para Siva

assignable checkbox for editing

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'tests/test_webui.py' (properties changed: +x to -x)
2--- tests/test_webui.py 2015-01-09 13:27:24 +0000
3+++ tests/test_webui.py 2015-01-12 09:52:29 +0000
4@@ -123,6 +123,98 @@
5 for error_span in require_errors:
6 assert_displayed(error_span)
7
8+ def test_edit_ticket_assignable(self):
9+ # Create a ticket via WebUI form.
10+ go_to('/create')
11+ assert_title('Ubuntu CI Engine')
12+ title_text = 'Create for assignable edit {}'.format(time.asctime())
13+
14+ wait_for(get_element, tag='form')
15+
16+ # Submit the form with the required fields.
17+ title = get_element_by_css('input[name="title"]')
18+ write_textfield(title, title_text)
19+ owner = get_element_by_css('input[name="owner"]')
20+ write_textfield(owner, 'foo@bar.com')
21+
22+ submit = get_element_by_css('input[type="submit"]')
23+ click_button(submit, wait=True)
24+
25+ ticket_title = wait_for(get_element, tag='h2')
26+ self.assertEqual(title_text, ticket_title.text)
27+
28+ # Edit a ticket sources & MPs.
29+ go_to('/')
30+
31+ # Edit the first available ticket.
32+ wait_for(get_element_by_css, 'a.yui3-pagview-link-page-active')
33+ a_ticket_link = get_elements_by_css('a.row_link')[0]
34+ a_ticket_link.click()
35+ edit_link = wait_for(get_element_by_css, 'a.edit-link')
36+ edit_link.click()
37+ wait_for(get_element, tag='form')
38+
39+ # Update the ticket with a unique title and distinct sources
40+ # and merge proposals.
41+ new_title = 'Edited assignable {}!'.format(time.asctime())
42+ title = get_element_by_css('input[name="title"]')
43+ write_textfield(title, new_title)
44+ assignable = get_element_by_css('input[name="assignable"]')
45+ set_checkbox_value(assignable, True)
46+ submit = get_element_by_css('input[type="submit"]')
47+ click_button(submit, wait=True)
48+
49+ spinners = get_elements_by_css('img[title="Silo creating"]')
50+ self.assertEqual(1, len(spinners),
51+ "Silo creating spinner is not shown on the page")
52+
53+ def test_edit_ticket_un_un_assignable(self):
54+ # Create a ticket via WebUI form.
55+ go_to('/create')
56+ assert_title('Ubuntu CI Engine')
57+ title_text = 'Create for assignable edit {}'.format(time.asctime())
58+
59+ wait_for(get_element, tag='form')
60+
61+ # Submit the form with the required fields.
62+ title = get_element_by_css('input[name="title"]')
63+ write_textfield(title, title_text)
64+ owner = get_element_by_css('input[name="owner"]')
65+ write_textfield(owner, 'foo@bar.com')
66+ assignable = get_element_by_css('input[name="assignable"]')
67+ set_checkbox_value(assignable, True)
68+
69+ submit = get_element_by_css('input[type="submit"]')
70+ click_button(submit, wait=True)
71+
72+ ticket_title = wait_for(get_element, tag='h2')
73+ self.assertEqual(title_text, ticket_title.text)
74+
75+ # Edit a ticket sources & MPs.
76+ go_to('/')
77+
78+ # Edit the first available ticket.
79+ wait_for(get_element_by_css, 'a.yui3-pagview-link-page-active')
80+ a_ticket_link = get_elements_by_css('a.row_link')[0]
81+ a_ticket_link.click()
82+ edit_link = wait_for(get_element_by_css, 'a.edit-link')
83+ edit_link.click()
84+ wait_for(get_element, tag='form')
85+
86+ # Update the ticket with a unique title and distinct sources
87+ # and merge proposals.
88+ new_title = 'Edited assignable {}!'.format(time.asctime())
89+ title = get_element_by_css('input[name="title"]')
90+ write_textfield(title, new_title)
91+ assignable = get_element_by_css('input[name="assignable"]')
92+ self.assertEqual(assignable.is_enabled(), False)
93+
94+ submit = get_element_by_css('input[type="submit"]')
95+ click_button(submit, wait=True)
96+ spinners = get_elements_by_css('img[title="Silo creating"]')
97+ self.assertEqual(1, len(spinners),
98+ "Silo creating spinner is not shown on the page")
99+
100 def test_create_ticket(self):
101 # Create a ticket via WebUI form.
102 go_to('/create')
103
104=== modified file 'webui/tickets/static/tickets/webuiforms.js'
105--- webui/tickets/static/tickets/webuiforms.js 2014-12-19 21:01:56 +0000
106+++ webui/tickets/static/tickets/webuiforms.js 2015-01-12 09:52:29 +0000
107@@ -238,7 +238,7 @@
108 *
109 * Positive int32 except ZERO (1 - 2147483648)
110 *
111- * @method setupEditForm
112+ * @method validateBugId
113 */
114 validateBugId: function(val, field) {
115 var filter = /^[\d]*$/;
116@@ -306,6 +306,8 @@
117 type: 'TextareaField'},
118 {name: 'comments', label: 'Comments:',
119 type: 'TextareaField'},
120+ {name: 'assignable', label: 'Ready to assign?',
121+ type: 'CheckboxField'},
122 {name: 'edit-button', type: 'SubmitButton',
123 value: 'Update!'}
124 ]
125@@ -345,6 +347,12 @@
126 });
127 field.set('value', mps.join('\n'));
128 break;
129+ case 'assignable':
130+ if (ticket['status'] === 'In progress') {
131+ field.set("checked", true);
132+ field.set("disabled", true);
133+ }
134+ break;
135 default:
136 field.set('value', ticket[name] || '');
137 }
138@@ -386,6 +394,7 @@
139 var form_data = f.toJSON();
140 form_data = Y.webuiforms._mangleFormSources(form_data);
141 form_data = Y.webuiforms._mangleFormCitrain(form_data);
142+ form_data = Y.webuiforms._mangleFormAssignable(form_data);
143 /* Tastypie integer field do not cope with empty strings,
144 if cleared, 'bug_id' has to be explicitly null. */
145 if (!form_data['bug_id'].trim()) {

Subscribers

People subscribed via source and target branches