You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by br...@apache.org on 2013/12/16 18:46:27 UTC
[3/5] git commit: [#5749] ticket:486 UI for setting a default
milestone
[#5749] ticket:486 UI for setting a default milestone
Project: http://git-wip-us.apache.org/repos/asf/incubator-allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-allura/commit/ea651215
Tree: http://git-wip-us.apache.org/repos/asf/incubator-allura/tree/ea651215
Diff: http://git-wip-us.apache.org/repos/asf/incubator-allura/diff/ea651215
Branch: refs/heads/master
Commit: ea651215eb5f97f156fdf6f26751788dcd301704
Parents: a113345
Author: Yuriy Arhipov <yu...@yandex.ru>
Authored: Wed Dec 4 18:12:14 2013 +0400
Committer: Dave Brondsema <db...@slashdotmedia.com>
Committed: Mon Dec 16 17:28:01 2013 +0000
----------------------------------------------------------------------
Allura/allura/lib/widgets/form_fields.py | 7 +++++++
.../forgetracker/templates/tracker/admin_fields.html | 12 ++++++++++++
.../forgetracker/templates/tracker/milestones.html | 10 ++++++++++
.../forgetracker/tests/functional/test_root.py | 15 +++++++++++++++
ForgeTracker/forgetracker/tracker_main.py | 6 ++++--
.../forgetracker/widgets/admin_custom_fields.py | 5 +++++
ForgeTracker/forgetracker/widgets/ticket_form.py | 1 +
7 files changed, 54 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/ea651215/Allura/allura/lib/widgets/form_fields.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/widgets/form_fields.py b/Allura/allura/lib/widgets/form_fields.py
index 7cd82e2..58e3cc9 100644
--- a/Allura/allura/lib/widgets/form_fields.py
+++ b/Allura/allura/lib/widgets/form_fields.py
@@ -217,6 +217,13 @@ class AttachmentAdd(ew_core.Widget):
class SubmitButton(ew.SubmitButton):
attrs={'class':'ui-state-default ui-button ui-button-text'}
+
+class Radio(ew.InputField):
+ defaults=dict(
+ ew.InputField.defaults,
+ field_type='radio')
+
+
class AutoResizeTextarea(ew.TextArea):
defaults=dict(
ew.TextArea.defaults,
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/ea651215/ForgeTracker/forgetracker/templates/tracker/admin_fields.html
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/templates/tracker/admin_fields.html b/ForgeTracker/forgetracker/templates/tracker/admin_fields.html
index 7d6c343..ead5778 100644
--- a/ForgeTracker/forgetracker/templates/tracker/admin_fields.html
+++ b/ForgeTracker/forgetracker/templates/tracker/admin_fields.html
@@ -58,3 +58,15 @@
}
</style>
{% endblock %}
+
+{% block extra_js %}
+<script type="text/javascript">
+ $(document).ready(function () {
+ $("input[value='on'][type='radio']").attr("checked", true);
+ $(":radio").click(function(){
+ $(":radio").attr("checked", false);
+ $(this).attr("checked", true);
+ });
+ });
+</script>
+{% endblock %}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/ea651215/ForgeTracker/forgetracker/templates/tracker/milestones.html
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/templates/tracker/milestones.html b/ForgeTracker/forgetracker/templates/tracker/milestones.html
index 7e4a670..d28228d 100644
--- a/ForgeTracker/forgetracker/templates/tracker/milestones.html
+++ b/ForgeTracker/forgetracker/templates/tracker/milestones.html
@@ -30,6 +30,7 @@
<table>
<thead>
<tr>
+ <th>Default</th>
<th>Name</th>
<th>Summary</th>
<th>Status</th>
@@ -41,6 +42,7 @@
<tbody>
{% for m in milestones %}
<tr class="{{loop.index0%2 and 'even' or ''}}">
+ <td><input type="radio" name="milestones-{{loop.index0}}.default" disabled="disabled" {%if m.default %} checked {%endif%}>
<td class="view">
<input type="hidden" name="milestones-{{loop.index0}}.old_name" value="{{m.name}}">
<strong><a href="{{c.app.url}}milestone/{{h.urlquote(m.name)}}/">{{m.name}}</a></strong></td>
@@ -128,15 +130,21 @@
$('td.edit', $row).show();
$save_controls.show();
$add_button.hide();
+ $(':radio').prop('disabled', false);
$(this).css({opacity: 0.5});
return false;
});
+ $(':radio').click(function(){
+ $('input:radio').attr("checked", false);
+ $(this).attr("checked", true);
+ });
$('a.cancel_edit').click(function(){
$('td.view', $form).show();
$('td.edit', $form).hide();
$save_controls.hide();
$add_button.show();
$new_row.hide();
+ $(':radio').prop('disabled', true);
$('input', $new_row).val('');
$('a.edit_milestone').css({opacity: 1});
return false;
@@ -154,3 +162,5 @@
}
</style>
{% endblock %}
+
+
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/ea651215/ForgeTracker/forgetracker/tests/functional/test_root.py
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/tests/functional/test_root.py b/ForgeTracker/forgetracker/tests/functional/test_root.py
index d97fadb..26791bb 100644
--- a/ForgeTracker/forgetracker/tests/functional/test_root.py
+++ b/ForgeTracker/forgetracker/tests/functional/test_root.py
@@ -187,6 +187,21 @@ class TestMilestones(TrackerTestController):
assert 'error' in self.webflash(r)
assert app.globals.milestone_fields[0]['milestones'][1]['name'] == '2.0'
+ def test_default_milestone(self):
+ self.new_ticket(summary='bar', _milestone='1.0', status='closed')
+ d = {
+ 'field_name':'_milestone',
+ 'milestones-0.old_name':'2.0',
+ 'milestones-0.new_name':'2.0',
+ 'milestones-0.description':'',
+ 'milestones-0.complete':'Open',
+ 'milestones-0.default':'on',
+ 'milestones-0.due_date':''
+ }
+ self.app.post('/bugs/update_milestones', d)
+ r = self.app.get('/bugs/new/')
+ assert '<option selected value="2.0">2.0</option>' in r
+
def post_install_create_ticket_permission(app):
"""Set to authenticated permission to create tickets but not update"""
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/ea651215/ForgeTracker/forgetracker/tracker_main.py
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/tracker_main.py b/ForgeTracker/forgetracker/tracker_main.py
index 71452f2..71f7d64 100644
--- a/ForgeTracker/forgetracker/tracker_main.py
+++ b/ForgeTracker/forgetracker/tracker_main.py
@@ -391,8 +391,8 @@ class ForgeTrackerApp(Application):
label='Milestone',
type='milestone',
milestones=[
- dict(name='1.0', complete=False, due_date=None),
- dict(name='2.0', complete=False, due_date=None)]) ])
+ dict(name='1.0', complete=False, due_date=None, default=True),
+ dict(name='2.0', complete=False, due_date=None, default=False)]) ])
self.globals.update_bin_counts()
# create default search bins
TM.Bin(summary='Open Tickets', terms=self.globals.not_closed_query,
@@ -454,6 +454,7 @@ class ForgeTrackerApp(Application):
due_date=m.get('due_date'),
description=m.get('description'),
complete=m.get('complete'),
+ default=m.get('default'),
total=d['hits'],
closed=d['closed']))
return milestones
@@ -681,6 +682,7 @@ class RootController(BaseController, FeedController):
m.description = new['description']
m.due_date = new['due_date']
m.complete = new['complete'] == 'Closed'
+ m.default = new.get('default', False)
if new['old_name'] != m.name:
q = '%s:"%s"' % (fld.name, new['old_name'])
# search_artifact() limits results to 10
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/ea651215/ForgeTracker/forgetracker/widgets/admin_custom_fields.py
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/widgets/admin_custom_fields.py b/ForgeTracker/forgetracker/widgets/admin_custom_fields.py
index 59b07b7..505bde8 100644
--- a/ForgeTracker/forgetracker/widgets/admin_custom_fields.py
+++ b/ForgeTracker/forgetracker/widgets/admin_custom_fields.py
@@ -36,6 +36,11 @@ class MilestonesAdmin(ffw.SortableTable):
repetitions=0)
fields = [
ew.HiddenField(name='old_name'),
+
+ ffw.Radio(
+ name='default',
+ label='Default'),
+
ew.Checkbox(name='complete', show_label=True, suppress_label=True),
ew.TextField(name='name',
attrs={'style':'width: 80px'}),
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/ea651215/ForgeTracker/forgetracker/widgets/ticket_form.py
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/widgets/ticket_form.py b/ForgeTracker/forgetracker/widgets/ticket_form.py
index 5f0a6fb..2bdf61b 100644
--- a/ForgeTracker/forgetracker/widgets/ticket_form.py
+++ b/ForgeTracker/forgetracker/widgets/ticket_form.py
@@ -173,6 +173,7 @@ class TicketCustomField(object):
options.append(ew.Option(
label=m.name,
py_value=m.name,
+ selected=getattr(m, 'default', False),
complete=bool(m.complete)))
ssf = MilestoneField(