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 2018/03/22 18:21:50 UTC
[1/3] allura git commit: [#8149] Adds functionality for bulk delete
Repository: allura
Updated Branches:
refs/heads/master 2c3a9e8e9 -> 78fefa845
[#8149] Adds functionality for bulk delete
Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/a2b59327
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/a2b59327
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/a2b59327
Branch: refs/heads/master
Commit: a2b59327ba71da755b8f9ace39fa53366f7b13f0
Parents: 2c3a9e8
Author: deshigtk <de...@gmail.com>
Authored: Tue Mar 20 10:55:34 2018 +0530
Committer: deshigtk <de...@gmail.com>
Committed: Tue Mar 20 10:55:34 2018 +0530
----------------------------------------------------------------------
ForgeTracker/forgetracker/model/ticket.py | 14 +++++++++++++-
.../templates/tracker_widgets/mass_edit_form.html | 8 ++++++++
2 files changed, 21 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/allura/blob/a2b59327/ForgeTracker/forgetracker/model/ticket.py
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/model/ticket.py b/ForgeTracker/forgetracker/model/ticket.py
index a3ec9dc..467afca 100644
--- a/ForgeTracker/forgetracker/model/ticket.py
+++ b/ForgeTracker/forgetracker/model/ticket.py
@@ -362,6 +362,10 @@ class Globals(MappedClass):
if private:
values['private'] = asbool(private)
+ deleted = post_data.get('deleted')
+ if deleted:
+ values['deleted'] = asbool(deleted)
+
discussion_disabled = post_data.get('discussion_disabled')
if discussion_disabled:
values['disabled_discussion'] = asbool(discussion_disabled)
@@ -382,7 +386,15 @@ class Globals(MappedClass):
values['labels'] = self.append_new_labels(
ticket.labels, labels.split(','))
for k, v in sorted(values.iteritems()):
- if k == 'assigned_to_id':
+ if k == 'deleted':
+ if v:
+ ticket.deleted = True
+ suffix = " {dt.hour}:{dt.minute}:{dt.second} {dt.day}-{dt.month}-{dt.year}".format(
+ dt=datetime.utcnow())
+ ticket.summary += suffix
+ c.app.globals.invalidate_bin_counts()
+ break
+ elif k == 'assigned_to_id':
new_user = User.query.get(_id=v)
old_user = User.query.get(_id=getattr(ticket, k))
if new_user:
http://git-wip-us.apache.org/repos/asf/allura/blob/a2b59327/ForgeTracker/forgetracker/templates/tracker_widgets/mass_edit_form.html
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/templates/tracker_widgets/mass_edit_form.html b/ForgeTracker/forgetracker/templates/tracker_widgets/mass_edit_form.html
index c35278c..5169683 100644
--- a/ForgeTracker/forgetracker/templates/tracker_widgets/mass_edit_form.html
+++ b/ForgeTracker/forgetracker/templates/tracker_widgets/mass_edit_form.html
@@ -51,6 +51,14 @@
</select>
</div>
<div class="grid-6">
+ <label for="deleted" class="cr">Delete:</label>
+ <select name="deleted" id="deleted">
+ <option value="" selected="selected">Don't change</option>
+ <option value="True">True</option>
+ <option value="False">False</option>
+ </select>
+ </div>
+ <div class="grid-6">
<label for="assigned_to" class="cr">Owner:</label>
{{c.user_select.display(name='assigned_to', id='assigned_to', value='', className='wide')}}
</div>
[2/3] allura git commit: [#8149] Refractors bulk delete method and
adds test coverage for bulk delete functionality
Posted by br...@apache.org.
[#8149] Refractors bulk delete method and adds test coverage for bulk delete functionality
Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/8e568e71
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/8e568e71
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/8e568e71
Branch: refs/heads/master
Commit: 8e568e71a4908e323d25f0055903670b7f7b34fe
Parents: a2b5932
Author: deshigtk <de...@gmail.com>
Authored: Wed Mar 21 22:06:15 2018 +0530
Committer: deshigtk <de...@gmail.com>
Committed: Wed Mar 21 22:06:15 2018 +0530
----------------------------------------------------------------------
ForgeTracker/forgetracker/model/ticket.py | 19 +++++++++++-----
.../tracker_widgets/mass_edit_form.html | 1 -
.../forgetracker/tests/functional/test_root.py | 23 ++++++++++++++++++++
ForgeTracker/forgetracker/tracker_main.py | 9 +-------
4 files changed, 37 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/allura/blob/8e568e71/ForgeTracker/forgetracker/model/ticket.py
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/model/ticket.py b/ForgeTracker/forgetracker/model/ticket.py
index 467afca..084eb8d 100644
--- a/ForgeTracker/forgetracker/model/ticket.py
+++ b/ForgeTracker/forgetracker/model/ticket.py
@@ -37,7 +37,7 @@ from ming.orm import FieldProperty, ForeignIdProperty, RelationProperty
from ming.orm.declarative import MappedClass
from ming.orm.ormsession import ThreadLocalORMSession
-from tg import config as tg_config
+from tg import config as tg_config, flash
from allura.model import (
ACE,
@@ -60,6 +60,7 @@ from allura.model import (
artifact_orm_session,
project_orm_session,
AlluraUserProperty,
+ Shortlink
)
from allura.model.timeline import ActivityObject
from allura.model.notification import MailFooter
@@ -70,6 +71,7 @@ from allura.lib.search import search_artifact, SearchError
from allura.lib import utils
from allura.lib import helpers as h
from allura.lib.plugin import ImportIdConverter
+from allura.lib.security import require_access
from allura.tasks import mail_tasks
from forgetracker import search as tsearch
@@ -388,11 +390,7 @@ class Globals(MappedClass):
for k, v in sorted(values.iteritems()):
if k == 'deleted':
if v:
- ticket.deleted = True
- suffix = " {dt.hour}:{dt.minute}:{dt.second} {dt.day}-{dt.month}-{dt.year}".format(
- dt=datetime.utcnow())
- ticket.summary += suffix
- c.app.globals.invalidate_bin_counts()
+ ticket.soft_delete()
break
elif k == 'assigned_to_id':
new_user = User.query.get(_id=v)
@@ -1311,6 +1309,15 @@ class Ticket(VersionedArtifact, ActivityObject, VotableArtifact):
self.app.config.options.get('AllowEmailPosting', True),
discussion_disabled=self.discussion_disabled)
+ def soft_delete(self):
+ require_access(self, 'delete')
+ Shortlink.query.remove(dict(ref_id=self.index_id()))
+ self.deleted = True
+ suffix = " {dt.hour}:{dt.minute}:{dt.second} {dt.day}-{dt.month}-{dt.year}".format(
+ dt=datetime.utcnow())
+ self.summary += suffix
+ flash('Ticket successfully deleted')
+ c.app.globals.invalidate_bin_counts()
class TicketAttachment(BaseAttachment):
http://git-wip-us.apache.org/repos/asf/allura/blob/8e568e71/ForgeTracker/forgetracker/templates/tracker_widgets/mass_edit_form.html
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/templates/tracker_widgets/mass_edit_form.html b/ForgeTracker/forgetracker/templates/tracker_widgets/mass_edit_form.html
index 5169683..2a929f0 100644
--- a/ForgeTracker/forgetracker/templates/tracker_widgets/mass_edit_form.html
+++ b/ForgeTracker/forgetracker/templates/tracker_widgets/mass_edit_form.html
@@ -55,7 +55,6 @@
<select name="deleted" id="deleted">
<option value="" selected="selected">Don't change</option>
<option value="True">True</option>
- <option value="False">False</option>
</select>
</div>
<div class="grid-6">
http://git-wip-us.apache.org/repos/asf/allura/blob/8e568e71/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 cb15819..5f0fb1c 100644
--- a/ForgeTracker/forgetracker/tests/functional/test_root.py
+++ b/ForgeTracker/forgetracker/tests/functional/test_root.py
@@ -2458,6 +2458,29 @@ class TestFunctionalController(TrackerTestController):
M.User.query.remove({'username': c.user.username})
self.app.get('/p/test/bugs/1/', status=200)
+ def test_bulk_delete(self):
+ self.new_ticket(summary='test first ticket')
+ self.new_ticket(summary='test second ticket')
+ ThreadLocalORMSession.flush_all()
+ M.MonQTask.run_ready()
+ ThreadLocalORMSession.flush_all()
+ first_ticket = tm.Ticket.query.get(summary='test first ticket')
+ second_ticket = tm.Ticket.query.get(summary='test second ticket')
+
+ M.MonQTask.query.remove()
+ self.app.post('/p/test/bugs/update_tickets', {
+ '__search': '',
+ '__ticket_ids': (
+ first_ticket._id,
+ second_ticket._id),
+ 'deleted': True})
+ M.MonQTask.run_ready()
+
+ r = self.app.get('/bugs/')
+ assert 'No open tickets found.' in r
+ assert tm.Ticket.query.get(ticket_num=1).summary != 'test first ticket'
+ assert tm.Ticket.query.get(ticket_num=2).summary != 'test second ticket'
+
class TestMilestoneAdmin(TrackerTestController):
def _post(self, params, **kw):
http://git-wip-us.apache.org/repos/asf/allura/blob/8e568e71/ForgeTracker/forgetracker/tracker_main.py
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/tracker_main.py b/ForgeTracker/forgetracker/tracker_main.py
index 8c8e626..ca45f4c 100644
--- a/ForgeTracker/forgetracker/tracker_main.py
+++ b/ForgeTracker/forgetracker/tracker_main.py
@@ -1445,14 +1445,7 @@ class TicketController(BaseController, FeedController):
@expose('json:')
@require_post()
def delete(self, **kw):
- require_access(self.ticket, 'delete')
- M.Shortlink.query.remove(dict(ref_id=self.ticket.index_id()))
- self.ticket.deleted = True
- suffix = " {dt.hour}:{dt.minute}:{dt.second} {dt.day}-{dt.month}-{dt.year}".format(
- dt=datetime.utcnow())
- self.ticket.summary += suffix
- flash('Ticket successfully deleted')
- c.app.globals.invalidate_bin_counts()
+ self.ticket.soft_delete()
return dict(location='../' + str(self.ticket.ticket_num))
@without_trailing_slash
[3/3] allura git commit: [#8149] Moves flash() call from
'soft_delete' model method to 'delete' controller method
Posted by br...@apache.org.
[#8149] Moves flash() call from 'soft_delete' model method to 'delete' controller method
Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/78fefa84
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/78fefa84
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/78fefa84
Branch: refs/heads/master
Commit: 78fefa8450c949939af263414c29b2567de8a273
Parents: 8e568e7
Author: deshigtk <de...@gmail.com>
Authored: Thu Mar 22 22:56:58 2018 +0530
Committer: deshigtk <de...@gmail.com>
Committed: Thu Mar 22 22:56:58 2018 +0530
----------------------------------------------------------------------
ForgeTracker/forgetracker/model/ticket.py | 3 +--
ForgeTracker/forgetracker/tracker_main.py | 1 +
2 files changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/allura/blob/78fefa84/ForgeTracker/forgetracker/model/ticket.py
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/model/ticket.py b/ForgeTracker/forgetracker/model/ticket.py
index 084eb8d..5a26071 100644
--- a/ForgeTracker/forgetracker/model/ticket.py
+++ b/ForgeTracker/forgetracker/model/ticket.py
@@ -37,7 +37,7 @@ from ming.orm import FieldProperty, ForeignIdProperty, RelationProperty
from ming.orm.declarative import MappedClass
from ming.orm.ormsession import ThreadLocalORMSession
-from tg import config as tg_config, flash
+from tg import config as tg_config
from allura.model import (
ACE,
@@ -1316,7 +1316,6 @@ class Ticket(VersionedArtifact, ActivityObject, VotableArtifact):
suffix = " {dt.hour}:{dt.minute}:{dt.second} {dt.day}-{dt.month}-{dt.year}".format(
dt=datetime.utcnow())
self.summary += suffix
- flash('Ticket successfully deleted')
c.app.globals.invalidate_bin_counts()
http://git-wip-us.apache.org/repos/asf/allura/blob/78fefa84/ForgeTracker/forgetracker/tracker_main.py
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/tracker_main.py b/ForgeTracker/forgetracker/tracker_main.py
index ca45f4c..d08254d 100644
--- a/ForgeTracker/forgetracker/tracker_main.py
+++ b/ForgeTracker/forgetracker/tracker_main.py
@@ -1446,6 +1446,7 @@ class TicketController(BaseController, FeedController):
@require_post()
def delete(self, **kw):
self.ticket.soft_delete()
+ flash('Ticket successfully deleted')
return dict(location='../' + str(self.ticket.ticket_num))
@without_trailing_slash