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
=== modified file 'tests/test_webui.py' (properties changed: +x to -x)
--- tests/test_webui.py 2015-01-09 13:27:24 +0000
+++ tests/test_webui.py 2015-01-12 09:52:29 +0000
@@ -123,6 +123,98 @@
123 for error_span in require_errors:123 for error_span in require_errors:
124 assert_displayed(error_span)124 assert_displayed(error_span)
125125
126 def test_edit_ticket_assignable(self):
127 # Create a ticket via WebUI form.
128 go_to('/create')
129 assert_title('Ubuntu CI Engine')
130 title_text = 'Create for assignable edit {}'.format(time.asctime())
131
132 wait_for(get_element, tag='form')
133
134 # Submit the form with the required fields.
135 title = get_element_by_css('input[name="title"]')
136 write_textfield(title, title_text)
137 owner = get_element_by_css('input[name="owner"]')
138 write_textfield(owner, 'foo@bar.com')
139
140 submit = get_element_by_css('input[type="submit"]')
141 click_button(submit, wait=True)
142
143 ticket_title = wait_for(get_element, tag='h2')
144 self.assertEqual(title_text, ticket_title.text)
145
146 # Edit a ticket sources & MPs.
147 go_to('/')
148
149 # Edit the first available ticket.
150 wait_for(get_element_by_css, 'a.yui3-pagview-link-page-active')
151 a_ticket_link = get_elements_by_css('a.row_link')[0]
152 a_ticket_link.click()
153 edit_link = wait_for(get_element_by_css, 'a.edit-link')
154 edit_link.click()
155 wait_for(get_element, tag='form')
156
157 # Update the ticket with a unique title and distinct sources
158 # and merge proposals.
159 new_title = 'Edited assignable {}!'.format(time.asctime())
160 title = get_element_by_css('input[name="title"]')
161 write_textfield(title, new_title)
162 assignable = get_element_by_css('input[name="assignable"]')
163 set_checkbox_value(assignable, True)
164 submit = get_element_by_css('input[type="submit"]')
165 click_button(submit, wait=True)
166
167 spinners = get_elements_by_css('img[title="Silo creating"]')
168 self.assertEqual(1, len(spinners),
169 "Silo creating spinner is not shown on the page")
170
171 def test_edit_ticket_un_un_assignable(self):
172 # Create a ticket via WebUI form.
173 go_to('/create')
174 assert_title('Ubuntu CI Engine')
175 title_text = 'Create for assignable edit {}'.format(time.asctime())
176
177 wait_for(get_element, tag='form')
178
179 # Submit the form with the required fields.
180 title = get_element_by_css('input[name="title"]')
181 write_textfield(title, title_text)
182 owner = get_element_by_css('input[name="owner"]')
183 write_textfield(owner, 'foo@bar.com')
184 assignable = get_element_by_css('input[name="assignable"]')
185 set_checkbox_value(assignable, True)
186
187 submit = get_element_by_css('input[type="submit"]')
188 click_button(submit, wait=True)
189
190 ticket_title = wait_for(get_element, tag='h2')
191 self.assertEqual(title_text, ticket_title.text)
192
193 # Edit a ticket sources & MPs.
194 go_to('/')
195
196 # Edit the first available ticket.
197 wait_for(get_element_by_css, 'a.yui3-pagview-link-page-active')
198 a_ticket_link = get_elements_by_css('a.row_link')[0]
199 a_ticket_link.click()
200 edit_link = wait_for(get_element_by_css, 'a.edit-link')
201 edit_link.click()
202 wait_for(get_element, tag='form')
203
204 # Update the ticket with a unique title and distinct sources
205 # and merge proposals.
206 new_title = 'Edited assignable {}!'.format(time.asctime())
207 title = get_element_by_css('input[name="title"]')
208 write_textfield(title, new_title)
209 assignable = get_element_by_css('input[name="assignable"]')
210 self.assertEqual(assignable.is_enabled(), False)
211
212 submit = get_element_by_css('input[type="submit"]')
213 click_button(submit, wait=True)
214 spinners = get_elements_by_css('img[title="Silo creating"]')
215 self.assertEqual(1, len(spinners),
216 "Silo creating spinner is not shown on the page")
217
126 def test_create_ticket(self):218 def test_create_ticket(self):
127 # Create a ticket via WebUI form.219 # Create a ticket via WebUI form.
128 go_to('/create')220 go_to('/create')
129221
=== modified file 'webui/tickets/static/tickets/webuiforms.js'
--- webui/tickets/static/tickets/webuiforms.js 2014-12-19 21:01:56 +0000
+++ webui/tickets/static/tickets/webuiforms.js 2015-01-12 09:52:29 +0000
@@ -238,7 +238,7 @@
238 *238 *
239 * Positive int32 except ZERO (1 - 2147483648)239 * Positive int32 except ZERO (1 - 2147483648)
240 *240 *
241 * @method setupEditForm241 * @method validateBugId
242 */242 */
243 validateBugId: function(val, field) {243 validateBugId: function(val, field) {
244 var filter = /^[\d]*$/;244 var filter = /^[\d]*$/;
@@ -306,6 +306,8 @@
306 type: 'TextareaField'},306 type: 'TextareaField'},
307 {name: 'comments', label: 'Comments:',307 {name: 'comments', label: 'Comments:',
308 type: 'TextareaField'},308 type: 'TextareaField'},
309 {name: 'assignable', label: 'Ready to assign?',
310 type: 'CheckboxField'},
309 {name: 'edit-button', type: 'SubmitButton',311 {name: 'edit-button', type: 'SubmitButton',
310 value: 'Update!'}312 value: 'Update!'}
311 ]313 ]
@@ -345,6 +347,12 @@
345 });347 });
346 field.set('value', mps.join('\n'));348 field.set('value', mps.join('\n'));
347 break;349 break;
350 case 'assignable':
351 if (ticket['status'] === 'In progress') {
352 field.set("checked", true);
353 field.set("disabled", true);
354 }
355 break;
348 default:356 default:
349 field.set('value', ticket[name] || '');357 field.set('value', ticket[name] || '');
350 }358 }
@@ -386,6 +394,7 @@
386 var form_data = f.toJSON();394 var form_data = f.toJSON();
387 form_data = Y.webuiforms._mangleFormSources(form_data);395 form_data = Y.webuiforms._mangleFormSources(form_data);
388 form_data = Y.webuiforms._mangleFormCitrain(form_data);396 form_data = Y.webuiforms._mangleFormCitrain(form_data);
397 form_data = Y.webuiforms._mangleFormAssignable(form_data);
389 /* Tastypie integer field do not cope with empty strings,398 /* Tastypie integer field do not cope with empty strings,
390 if cleared, 'bug_id' has to be explicitly null. */399 if cleared, 'bug_id' has to be explicitly null. */
391 if (!form_data['bug_id'].trim()) {400 if (!form_data['bug_id'].trim()) {

Subscribers

People subscribed via source and target branches