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 >> <>< >> > >