You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@allura.apache.org by de...@gmail.com, de...@gmail.com on 2018/03/09 05:48:12 UTC

[GSoC] To start contributing to Apache Allura

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/@deshanigeethika/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!


Re: [GSoC] To start contributing to Apache Allura

Posted by Deshani Geethika <de...@gmail.com>.
Hi Dave,

Thank you for your valuable feedback. I've updated the proposal accordingly
and uploaded the final version

Regards!

On Tue, Mar 27, 2018 at 3:40 AM, Dave Brondsema <da...@brondsema.net> wrote:

> Comments inline:
>
> On 3/26/18 9:04 AM, Deshani Geethika wrote:
> > Hi All,
> >
> > I have few questions to be clarified about Personal Dashboard.
> >
> > Currently, when a user is logged in, neighborhoods are shown in the
> landing
> > page. We have few options here.
> >
> >    1. Replace that Neighborhood page with the Personal Dashboard page.
> Then
> >    we can give a link for Neighborhood page (Like the link for “Account”)
> >    2. Neighborhood page will remain as it is and provide a link for
> >    “Dashboard”. (Like the link for “Account”)
> >    3. Merge these two pages. That means include neighborhoods in Personal
> >    Dashboard
> >
>
> Yeah the current landing page with neighborhoods is not super great right
> now
> anyway.  Tickets 7308 and 2601 are related to that and maybe could be a
> stretch
> goal if your proposal were accepted and there was extra time.
>
> Anyway, for this.  I think separate pages would good.  One idea would be
> to show
> the personal dashboard if logged in, and the neighborhood page if not
> logged in.
>  Maybe have separate URLs like /dashboard and /index so you can still
> access
> both when logged in and "/" would redirect.
>
> >
> > According to the project description
> > <https://issues.apache.org/jira/browse/COMDEV-254?filter=12343065>, when
> > implementing the Personal Dashboard we can use a pluggable structure as
> in
> > User Profile. Therefore, I have included the personal_dashboard directory
> > in Allura/allura/ext/personal_dashboard path. Furthermore, the whole
> folder
> > and file structure can be depicted as below.
> >
> >
> >
> > Is it alright to reside the personal_dashboard directory in above path or
> > else do we have any other better option? Also, please let me know whether
> > this file and folder structure is alright.
>
> Yes, modeling things after the user profile pluggable structure is good.
> This
> path is a good one.
>
>
> >
> > Moreover, I have included the whole design in my GSoC proposal and I have
> > uploaded my drafted GSoC proposal to Apache Software Foundations via
> > official GSoC site <https://summerofcode.withgoogle.com/>. Let me know
> any
> > suggestions for the design and also for the proposal. Please find the
> link
> > for the proposal below.
> >
> > Proposal :
> >
> > https://docs.google.com/document/d/1clWKSJ8-
> ektpVaEgiJyoM34ievwkyCnD4uORMCT0eM8/edit?usp=sharing
> >
>
> I've made just one minor suggestion on the proposal so far.  Overall it is
> pretty good.  The most important things are: showing a detailed plan,
> breaking
> it down into small steps in the timeline, and being able to fully commit
> to all
> the time during the summer.  Those are covered pretty well.  If you do
> have any
> exams or vacation time, please include that in your commitment section.
>
> I'll add more comments if I think of more constructive feedback.
>
>
> > Regards!
> >
> > On Fri, Mar 23, 2018 at 10:07 PM, Deshani Geethika <
> > deshanigeethika@gmail.com> wrote:
> >
> >> Hi Dave,
> >>
> >> I have drafted the GSoC proposal and would like to get feedback from
> you.
> >>
> >> Please review it from here:​
> >>  GSoC Proposal
> >> <https://docs.google.com/document/d/1clWKSJ8-
> ektpVaEgiJyoM34ievwkyCnD4uORMCT0eM8/edit?usp=drive_web>
> >> ​
> >> Regards!
> >>
> >> On Thu, Mar 22, 2018 at 9:14 PM, Dave Brondsema <da...@brondsema.net>
> >> wrote:
> >>
> >>> I've commented on the merge request.
> >>>
> >>> The personal dashboard project would be a great.
> >>> https://community.apache.org/gsoc.html has some information about what
> >>> makes a
> >>> good application.  I would recommend you write up a draft of your
> >>> proposal ideas
> >>> and share it either here on the Allura dev mailing list for public
> >>> feedback, or
> >>> to me privately if you prefer.  Getting feedback on your proposal is
> >>> allowed and
> >>> helpful.
> >>>
> >>>
> >>> On 3/21/18 2:02 PM, Deshani Geethika wrote:
> >>>> 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 <da...@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 <dave@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 <
> >>>>>>>> deshanigeethika@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 <
> >>> dave@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 <
> >>>>>>>>>> deshanigeethika@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 <
> >>> dave@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, deshanigeethika@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 : dave@brondsema.net
> >>>>>>>>>>>>> http://www.brondsema.net : personal
> >>>>>>>>>>>>> http://www.splike.com : programming
> >>>>>>>>>>>>>               <><
> >>>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> --
> >>>>>>>>>> Dave Brondsema : dave@brondsema.net
> >>>>>>>>>> http://www.brondsema.net : personal
> >>>>>>>>>> http://www.splike.com : programming
> >>>>>>>>>>               <><
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> --
> >>>>>>> Dave Brondsema : dave@brondsema.net
> >>>>>>> http://www.brondsema.net : personal
> >>>>>>> http://www.splike.com : programming
> >>>>>>>               <><
> >>>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>> --
> >>>>> Dave Brondsema : dave@brondsema.net
> >>>>> http://www.brondsema.net : personal
> >>>>> http://www.splike.com : programming
> >>>>>               <><
> >>>>>
> >>>>
> >>>>
> >>>>
> >>>
> >>>
> >>>
> >>> --
> >>> Dave Brondsema : dave@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
> >> <+94%2077%20638%203034>
> >>
> >>
> >
> >
>
>
>
> --
> Dave Brondsema : dave@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

Re: [GSoC] To start contributing to Apache Allura

Posted by Dave Brondsema <da...@brondsema.net>.
Comments inline:

On 3/26/18 9:04 AM, Deshani Geethika wrote:
> Hi All,
> 
> I have few questions to be clarified about Personal Dashboard.
> 
> Currently, when a user is logged in, neighborhoods are shown in the landing
> page. We have few options here.
> 
>    1. Replace that Neighborhood page with the Personal Dashboard page. Then
>    we can give a link for Neighborhood page (Like the link for “Account”)
>    2. Neighborhood page will remain as it is and provide a link for
>    “Dashboard”. (Like the link for “Account”)
>    3. Merge these two pages. That means include neighborhoods in Personal
>    Dashboard
> 

Yeah the current landing page with neighborhoods is not super great right now
anyway.  Tickets 7308 and 2601 are related to that and maybe could be a stretch
goal if your proposal were accepted and there was extra time.

Anyway, for this.  I think separate pages would good.  One idea would be to show
the personal dashboard if logged in, and the neighborhood page if not logged in.
 Maybe have separate URLs like /dashboard and /index so you can still access
both when logged in and "/" would redirect.

> 
> According to the project description
> <https://issues.apache.org/jira/browse/COMDEV-254?filter=12343065>, when
> implementing the Personal Dashboard we can use a pluggable structure as in
> User Profile. Therefore, I have included the personal_dashboard directory
> in Allura/allura/ext/personal_dashboard path. Furthermore, the whole folder
> and file structure can be depicted as below.
> 
> 
> 
> Is it alright to reside the personal_dashboard directory in above path or
> else do we have any other better option? Also, please let me know whether
> this file and folder structure is alright.

Yes, modeling things after the user profile pluggable structure is good.  This
path is a good one.


> 
> Moreover, I have included the whole design in my GSoC proposal and I have
> uploaded my drafted GSoC proposal to Apache Software Foundations via
> official GSoC site <https://summerofcode.withgoogle.com/>. Let me know any
> suggestions for the design and also for the proposal. Please find the link
> for the proposal below.
> 
> Proposal :
> 
> https://docs.google.com/document/d/1clWKSJ8-ektpVaEgiJyoM34ievwkyCnD4uORMCT0eM8/edit?usp=sharing
> 

I've made just one minor suggestion on the proposal so far.  Overall it is
pretty good.  The most important things are: showing a detailed plan, breaking
it down into small steps in the timeline, and being able to fully commit to all
the time during the summer.  Those are covered pretty well.  If you do have any
exams or vacation time, please include that in your commitment section.

I'll add more comments if I think of more constructive feedback.


> Regards!
> 
> On Fri, Mar 23, 2018 at 10:07 PM, Deshani Geethika <
> deshanigeethika@gmail.com> wrote:
> 
>> Hi Dave,
>>
>> I have drafted the GSoC proposal and would like to get feedback from you.
>>
>> Please review it from here:​
>>  GSoC Proposal
>> <https://docs.google.com/document/d/1clWKSJ8-ektpVaEgiJyoM34ievwkyCnD4uORMCT0eM8/edit?usp=drive_web>
>> ​
>> Regards!
>>
>> On Thu, Mar 22, 2018 at 9:14 PM, Dave Brondsema <da...@brondsema.net>
>> wrote:
>>
>>> I've commented on the merge request.
>>>
>>> The personal dashboard project would be a great.
>>> https://community.apache.org/gsoc.html has some information about what
>>> makes a
>>> good application.  I would recommend you write up a draft of your
>>> proposal ideas
>>> and share it either here on the Allura dev mailing list for public
>>> feedback, or
>>> to me privately if you prefer.  Getting feedback on your proposal is
>>> allowed and
>>> helpful.
>>>
>>>
>>> On 3/21/18 2:02 PM, Deshani Geethika wrote:
>>>> 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 <da...@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 <da...@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 <
>>>>>>>> deshanigeethika@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 <
>>> dave@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 <
>>>>>>>>>> deshanigeethika@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 <
>>> dave@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, deshanigeethika@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 : dave@brondsema.net
>>>>>>>>>>>>> http://www.brondsema.net : personal
>>>>>>>>>>>>> http://www.splike.com : programming
>>>>>>>>>>>>>               <><
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Dave Brondsema : dave@brondsema.net
>>>>>>>>>> http://www.brondsema.net : personal
>>>>>>>>>> http://www.splike.com : programming
>>>>>>>>>>               <><
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Dave Brondsema : dave@brondsema.net
>>>>>>> http://www.brondsema.net : personal
>>>>>>> http://www.splike.com : programming
>>>>>>>               <><
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Dave Brondsema : dave@brondsema.net
>>>>> http://www.brondsema.net : personal
>>>>> http://www.splike.com : programming
>>>>>               <><
>>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> Dave Brondsema : dave@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
>> <+94%2077%20638%203034>
>>
>>
> 
> 



-- 
Dave Brondsema : dave@brondsema.net
http://www.brondsema.net : personal
http://www.splike.com : programming
              <><

Re: [GSoC] To start contributing to Apache Allura

Posted by Deshani Geethika <de...@gmail.com>.
Hi All,

I have few questions to be clarified about Personal Dashboard.

Currently, when a user is logged in, neighborhoods are shown in the landing
page. We have few options here.

   1. Replace that Neighborhood page with the Personal Dashboard page. Then
   we can give a link for Neighborhood page (Like the link for “Account”)
   2. Neighborhood page will remain as it is and provide a link for
   “Dashboard”. (Like the link for “Account”)
   3. Merge these two pages. That means include neighborhoods in Personal
   Dashboard


According to the project description
<https://issues.apache.org/jira/browse/COMDEV-254?filter=12343065>, when
implementing the Personal Dashboard we can use a pluggable structure as in
User Profile. Therefore, I have included the personal_dashboard directory
in Allura/allura/ext/personal_dashboard path. Furthermore, the whole folder
and file structure can be depicted as below.



Is it alright to reside the personal_dashboard directory in above path or
else do we have any other better option? Also, please let me know whether
this file and folder structure is alright.

Moreover, I have included the whole design in my GSoC proposal and I have
uploaded my drafted GSoC proposal to Apache Software Foundations via
official GSoC site <https://summerofcode.withgoogle.com/>. Let me know any
suggestions for the design and also for the proposal. Please find the link
for the proposal below.

Proposal :

https://docs.google.com/document/d/1clWKSJ8-ektpVaEgiJyoM34ievwkyCnD4uORMCT0eM8/edit?usp=sharing

Regards!

On Fri, Mar 23, 2018 at 10:07 PM, Deshani Geethika <
deshanigeethika@gmail.com> wrote:

> Hi Dave,
>
> I have drafted the GSoC proposal and would like to get feedback from you.
>
> Please review it from here:​
>  GSoC Proposal
> <https://docs.google.com/document/d/1clWKSJ8-ektpVaEgiJyoM34ievwkyCnD4uORMCT0eM8/edit?usp=drive_web>
> ​
> Regards!
>
> On Thu, Mar 22, 2018 at 9:14 PM, Dave Brondsema <da...@brondsema.net>
> wrote:
>
>> I've commented on the merge request.
>>
>> The personal dashboard project would be a great.
>> https://community.apache.org/gsoc.html has some information about what
>> makes a
>> good application.  I would recommend you write up a draft of your
>> proposal ideas
>> and share it either here on the Allura dev mailing list for public
>> feedback, or
>> to me privately if you prefer.  Getting feedback on your proposal is
>> allowed and
>> helpful.
>>
>>
>> On 3/21/18 2:02 PM, Deshani Geethika wrote:
>> > 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 <da...@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 <da...@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 <
>> >>>>> deshanigeethika@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 <
>> dave@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 <
>> >>>>>>> deshanigeethika@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 <
>> dave@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, deshanigeethika@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 : dave@brondsema.net
>> >>>>>>>>>> http://www.brondsema.net : personal
>> >>>>>>>>>> http://www.splike.com : programming
>> >>>>>>>>>>               <><
>> >>>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>
>> >>>>>>>
>> >>>>>>>
>> >>>>>>>
>> >>>>>>> --
>> >>>>>>> Dave Brondsema : dave@brondsema.net
>> >>>>>>> http://www.brondsema.net : personal
>> >>>>>>> http://www.splike.com : programming
>> >>>>>>>               <><
>> >>>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>
>> >>>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>> --
>> >>>> Dave Brondsema : dave@brondsema.net
>> >>>> http://www.brondsema.net : personal
>> >>>> http://www.splike.com : programming
>> >>>>               <><
>> >>>>
>> >>>
>> >>>
>> >>>
>> >>
>> >>
>> >>
>> >> --
>> >> Dave Brondsema : dave@brondsema.net
>> >> http://www.brondsema.net : personal
>> >> http://www.splike.com : programming
>> >>               <><
>> >>
>> >
>> >
>> >
>>
>>
>>
>> --
>> Dave Brondsema : dave@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
> <+94%2077%20638%203034>
>
>


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

Re: [GSoC] To start contributing to Apache Allura

Posted by Dave Brondsema <da...@brondsema.net>.
I've commented on the merge request.

The personal dashboard project would be a great.
https://community.apache.org/gsoc.html has some information about what makes a
good application.  I would recommend you write up a draft of your proposal ideas
and share it either here on the Allura dev mailing list for public feedback, or
to me privately if you prefer.  Getting feedback on your proposal is allowed and
helpful.


On 3/21/18 2:02 PM, Deshani Geethika wrote:
> 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 <da...@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 <da...@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 <
>>>>> deshanigeethika@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 <da...@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 <
>>>>>>> deshanigeethika@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 <dave@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, deshanigeethika@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 : dave@brondsema.net
>>>>>>>>>> http://www.brondsema.net : personal
>>>>>>>>>> http://www.splike.com : programming
>>>>>>>>>>               <><
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Dave Brondsema : dave@brondsema.net
>>>>>>> http://www.brondsema.net : personal
>>>>>>> http://www.splike.com : programming
>>>>>>>               <><
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Dave Brondsema : dave@brondsema.net
>>>> http://www.brondsema.net : personal
>>>> http://www.splike.com : programming
>>>>               <><
>>>>
>>>
>>>
>>>
>>
>>
>>
>> --
>> Dave Brondsema : dave@brondsema.net
>> http://www.brondsema.net : personal
>> http://www.splike.com : programming
>>               <><
>>
> 
> 
> 



-- 
Dave Brondsema : dave@brondsema.net
http://www.brondsema.net : personal
http://www.splike.com : programming
              <><

Re: [GSoC] To start contributing to Apache Allura

Posted by Deshani Geethika <de...@gmail.com>.
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 <da...@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 <da...@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 <
> >>> deshanigeethika@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 <da...@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 <
> >>>>> deshanigeethika@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 <dave@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, deshanigeethika@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 : dave@brondsema.net
> >>>>>>>> http://www.brondsema.net : personal
> >>>>>>>> http://www.splike.com : programming
> >>>>>>>>               <><
> >>>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>> --
> >>>>> Dave Brondsema : dave@brondsema.net
> >>>>> http://www.brondsema.net : personal
> >>>>> http://www.splike.com : programming
> >>>>>               <><
> >>>>>
> >>>>
> >>>>
> >>>
> >>>
> >>
> >>
> >>
> >> --
> >> Dave Brondsema : dave@brondsema.net
> >> http://www.brondsema.net : personal
> >> http://www.splike.com : programming
> >>               <><
> >>
> >
> >
> >
>
>
>
> --
> Dave Brondsema : dave@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

Re: [GSoC] To start contributing to Apache Allura

Posted by Deshani Geethika <de...@gmail.com>.
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 <da...@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 <
> > deshanigeethika@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 <da...@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 <
> >>> deshanigeethika@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 <da...@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, deshanigeethika@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 : dave@brondsema.net
> >>>>>> http://www.brondsema.net : personal
> >>>>>> http://www.splike.com : programming
> >>>>>>               <><
> >>>>>>
> >>>>>
> >>>>>
> >>>>
> >>>
> >>>
> >>>
> >>> --
> >>> Dave Brondsema : dave@brondsema.net
> >>> http://www.brondsema.net : personal
> >>> http://www.splike.com : programming
> >>>               <><
> >>>
> >>
> >>
> >
> >
>
>
>
> --
> Dave Brondsema : dave@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

Re: [GSoC] To start contributing to Apache Allura

Posted by Dave Brondsema <da...@brondsema.net>.
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 <
> deshanigeethika@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 <da...@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 <
>>> deshanigeethika@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 <da...@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, deshanigeethika@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 : dave@brondsema.net
>>>>>> http://www.brondsema.net : personal
>>>>>> http://www.splike.com : programming
>>>>>>               <><
>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> Dave Brondsema : dave@brondsema.net
>>> http://www.brondsema.net : personal
>>> http://www.splike.com : programming
>>>               <><
>>>
>>
>>
> 
> 



-- 
Dave Brondsema : dave@brondsema.net
http://www.brondsema.net : personal
http://www.splike.com : programming
              <><

Re: [GSoC] To start contributing to Apache Allura

Posted by Deshani Geethika <de...@gmail.com>.
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 <
deshanigeethika@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 <da...@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 <
>> deshanigeethika@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 <da...@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, deshanigeethika@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 : dave@brondsema.net
>> >>> http://www.brondsema.net : personal
>> >>> http://www.splike.com : programming
>> >>>               <><
>> >>>
>> >>
>> >>
>> >
>>
>>
>>
>> --
>> Dave Brondsema : dave@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

Re: [GSoC] To start contributing to Apache Allura

Posted by Deshani Geethika <de...@gmail.com>.
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 <da...@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 <
> deshanigeethika@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 <da...@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, deshanigeethika@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 : dave@brondsema.net
> >>> http://www.brondsema.net : personal
> >>> http://www.splike.com : programming
> >>>               <><
> >>>
> >>
> >>
> >
>
>
>
> --
> Dave Brondsema : dave@brondsema.net
> http://www.brondsema.net : personal
> http://www.splike.com : programming
>               <><
>

Re: [GSoC] To start contributing to Apache Allura

Posted by Dave Brondsema <da...@brondsema.net>.
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 <deshanigeethika@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 <da...@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, deshanigeethika@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 : dave@brondsema.net
>>> http://www.brondsema.net : personal
>>> http://www.splike.com : programming
>>>               <><
>>>
>>
>>
> 



-- 
Dave Brondsema : dave@brondsema.net
http://www.brondsema.net : personal
http://www.splike.com : programming
              <><

Re: [GSoC] To start contributing to Apache Allura

Posted by Deshani Geethika <de...@gmail.com>.
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 <deshanigeethika@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 <da...@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, deshanigeethika@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 : dave@brondsema.net
>> http://www.brondsema.net : personal
>> http://www.splike.com : programming
>>               <><
>>
>
>

Re: [GSoC] To start contributing to Apache Allura

Posted by Deshani Geethika <de...@gmail.com>.
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 <da...@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, deshanigeethika@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/@
> deshanigeethika/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 : dave@brondsema.net
> http://www.brondsema.net : personal
> http://www.splike.com : programming
>               <><
>

Re: [GSoC] To start contributing to Apache Allura

Posted by Dave Brondsema <da...@brondsema.net>.
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, deshanigeethika@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/@deshanigeethika/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 : dave@brondsema.net
http://www.brondsema.net : personal
http://www.splike.com : programming
              <><