Hi Dave, Thank you for reviewing my merge request :) I’ve refracted the code and added the test coverage as described. Please review it and let me know any suggestions. Merge request can be found in [1]
Meanwhile, I would like to start working on a GSoC project as I’ve got some decent exposure to Allura code-base now. When going through the projects list, I’ve found out the project *[COMDEV-254] Allura - personal dashboard* [2] fits my interests. But, if there is any high prioritized project other than this, I would equally interested in accepting it as well. I’m looking forward to know further information in order to apply for Allura GSoC projects. [1] https://forge-allura.apache.org/p/allura/git/merge-requests/248/ [2] https://issues.apache.org/jira/browse/COMDEV-254?filter=12343065 Regards! On Tue, Mar 20, 2018 at 10:14 PM, Dave Brondsema <d...@brondsema.net> wrote: > No problem! I'll take a look and post feedback on the merge request. > > On 3/20/18 1:36 AM, Deshani Geethika wrote: > > 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 > >> <>< > >> > > > > > > > > > > -- > 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