Hi, Your changes look ok just reading them. What happens when you try it? Do you get any error?
One thought is that bulk edit happens as a background task (because updating hundreds of tickets could take some time). Specifically @task bulk_edit is what calls Globals.update_tickets So make sure you have taskd running. And if it is running, check to see if bulk_edit task runs and if it has any errors. Hope that helps, On 3/15/18 9:22 AM, Deshani Geethika wrote: > Hi all, > > During last few days, I’ve been playing with Allura code-base and started > to work on the issue #8149 Bulk Delete for tickets ( > https://forge-allura.apache.org/p/allura/tickets/8149/) > > I have modified the file > ‘ForgeTracker/forgetracker/templates/tracker_widgets/mass_edit_form.html’ > and added the following set of lines, which is similar to ‘Private’ field > with just boolean values. > > ………... > > <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> > > ………... > > Then, in ‘model/ticket.py’, class ‘Globals’, method ‘update_tickets’, I > have added following set of lines. > > ……... > > private = post_data.get('private') > > if private: > > values['private'] = asbool(private) > > deleted = post_data.get('deleted') > > if deleted: > > values['deleted'] = asbool(deleted) > > ……... > > Here, the value of ‘deleted’, which is submitted from ‘mass_edit_form.html’ > is read and saved to ‘values’ dictionary. > > Then in the same method, as far as I understood, I have to add the > functionality for mass delete. Also, I’ve found out the ‘delete’ method > which is implemented to delete a single ticket in > ‘ForgeTracker/forgetracker/tracker_main.py’ > class. > > Therefore, I have imported the ‘delete’ method from above class, and use > that method directly to delete tickets one by one (inside the tickets loop) > as below. I’ve assumed that, if a user needs to delete tickets, then other > fields (Private, Owner, Discussion Disabled etc.) are not required to be > modified. So that, if a ticket is deleted, the loop breaks without further > modifying the ticket. > > ….. > > def update_tickets(self, **post_data): > > from forgetracker.tracker_main import get_change_text, get_label, > delete > > ………. > > for ticket in tickets: > > message = '' > > if labels: > > values['labels'] = self.append_new_labels( > > ticket.labels, labels.split(',')) > > for k, v in sorted(values.iteritems()): > > if k == 'deleted': > > if v: > > ticket.delete() > > 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: > > message += get_change_text( > > get_label(k), > > new_user.display_name, > > old_user.display_name) > > > > elif k == 'private' or k == 'discussion_disabled': > > def _text(val): > > if val: > > return 'Yes' > > else: > > return 'No' > > message += get_change_text( > > get_label(k), > > _text(v), > > _text(getattr(ticket, k))) > > else: > > message += get_change_text( > > get_label(k), > > v,getattr(ticket, k)) > > setattr(ticket, k, v) > > ………. > > But, the mass delete functionality is not working and I’m not sure whether > I’m on the right path. Could you help me to solve this issue. > > Regards! > > Deshani > > On Fri, Mar 9, 2018 at 10:46 PM, Deshani Geethika <deshanigeeth...@gmail.com >> wrote: > >> Hi Dave, >> >> Thank you for your guidance. I'll get back if I get anything to be >> clarified >> >> Regards! >> -Deshani >> >> On Fri, Mar 9, 2018 at 9:55 PM, Dave Brondsema <d...@brondsema.net> wrote: >> >>> Hi Deshani, >>> >>> Welcome! Sounds like you're off to a good start. I would suggest getting >>> familiar with the codebase of Allura would be a good next step. >>> https://forge-allura.apache.org/docs/development/contributing.html >>> explains some >>> of the basics and is a good read. If there are small changes you want to >>> make >>> (whether related to a larger GSoC task or not) you could try to make >>> them. Feel >>> free to ask for help here, or if you make a small fix or improvement, go >>> ahead >>> and submit a merge request :) >>> >>> -Dave >>> >>> On 3/9/18 12:48 AM, deshanigeeth...@gmail.com wrote: >>>> Hi all, >>>> >>>> I’m Deshani Geethika, a final year undergraduate at Department of >>> Computer Science and Engineering, University of Moratuwa, Sri Lanka. I >>> would like to participate in GSoC 2018 and I found out some interesting >>> projects of Apache Allura. >>>> >>>> I have gone through the documentation and set up Allura in my local >>> machine. Also, I wrote a blog article (https://medium.com/@deshanige >>> ethika/in-progress-setting-up-apache-allura-in-ubuntu-1fa166406448) >>> about setting up Allura. >>>> >>>> Since I’m new to this community, it is really appreciated if anyone >>> suggest me a way to begin contributing to Allura. >>>> >>>> Regards! >>>> >>> >>> >>> >>> -- >>> Dave Brondsema : d...@brondsema.net >>> http://www.brondsema.net : personal >>> http://www.splike.com : programming >>> <>< >>> >> >> > -- Dave Brondsema : d...@brondsema.net http://www.brondsema.net : personal http://www.splike.com : programming <><