Hi all, I've added the functionality for bulk delete tickets and created a pull request - https://github.com/apache/allura/pull/2
Please review it and provide me any suggestions. Regards! On Sun, Mar 18, 2018 at 10:52 AM, Deshani Geethika < deshanigeeth...@gmail.com> wrote: > Hi Dave, > > Thank you for the information. I'll try it again and let you know > > Regards! > Deshani > > On Fri, Mar 16, 2018 at 2:52 AM, Dave Brondsema <d...@brondsema.net> > wrote: > >> 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 >> <>< >> > > -- *Deshani Geethika* Undergraduate at Department of Computer Science and Engineering Faculty of Engineering - University of Moratuwa Sri Lanka LinkedIn <https://www.linkedin.com/in/deshanigeethika/> | GitHub <https://github.com/deshanigtk> | Mobile - +94776383034