Hi Dave, Sorry for messing up. I've created a merge request - https://forge-allura.apache.org/p/allura/git/merge-requests/248/
Regards! On Mon, Mar 19, 2018 at 9:01 PM, Dave Brondsema <d...@brondsema.net> wrote: > Hi Deshani, > > Thanks for the contribution! Would you mind going to > https://forge-allura.apache.org/p/allura/git/ and doing a fork and merge > request > there? Allura does its own hosting and we prefer to use that. The GitHub > repo > is just a mirror. > > Thanks, > > On 3/18/18 5:24 AM, Deshani Geethika wrote: > > 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 > >>> <>< > >>> > >> > >> > > > > > > > > -- > 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