Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make the Travel Support Application useful for more organizations #78

Closed
ancorgs opened this issue Feb 2, 2017 · 9 comments
Closed
Assignees

Comments

@ancorgs
Copy link
Member

ancorgs commented Feb 2, 2017

Description: TSP is a Ruby on Rails based application to manage the requests and reimbursements from travel help programs of free software organizations. Originally developed for the openSUSE Travel Support Program it was adopted recently by the KDE e.V. Travel Cost Reimbursement initiative. This project is about making the tool more useful for KDE e.V. and possible future adopters. That includes:

  • Implementing the new requested features
  • Move the DSL used to specify the role-based permissions and notifications from the models to configuration files, so the application is easier to adapt.
  • Migrate the interface from Bootstrap 2 to a newer version (or a different framework), so writing a new theme does not imply using an outdated CSS framework.
  • Other improvements regarding usability would also be welcome.

Deliverable: A new version of the TSP application that covers as many points as possible from the list above.

Mentor: @ChrisBr / cbruckmayer@suse.de and @ancorgs / ancor@suse.com

Skills: Ruby on Rails

Skill Level: Medium

Get started: Install the application and implement something useful (with tests), like the improved search or any other feature. Fixes related to usability would be specially appreciated.

Github: https://github.com/openSUSE/travel-support-program

@krngrvr09
Copy link

krngrvr09 commented Mar 15, 2017

Hello @ChrisBr and @ancorgs !
I am Karan. I find this project quite interesting and would therefore like to contribute to it. I have started working on the issue of making Search box in Requests and Reimbursement lists(#6). I have made a small search box on the Travel Support Requests page in which the admin can input the name of the user and it will return all requests created by the user matching that name.
It looks like this:
requests

I have also sent the pull request regarding the same. Can you please see if I have interpreted the problem correctly? If yes, I'll proceed with implementing the same solution in the reimbursement page and also find a way to query by request number.

Thank you

@ChrisBr
Copy link
Member

ChrisBr commented Mar 17, 2017

@krngrvr09 great :)
I will have a look at it soon!

Any more questions?

@krngrvr09
Copy link

krngrvr09 commented Mar 28, 2017

Hey @ChrisBr and @ancorgs , I am starting to write a GSoC project proposal for this project. Can you explain a bit more about the following task:

Move the DSL used to specify the role-based permissions and notifications from the models to configuration files, so the application is easier to adapt.

@ancorgs
Copy link
Member Author

ancorgs commented Mar 28, 2017

@krngrvr09 Sure. The models for the current state machines contain declarative code like this (extracted from TravelSponsorship):

  assign_state :incomplete, :to => :requester
  notify_state :incomplete, :to => [:requester, :tsp, :assistant],
                            :remind_to => :requester,
                            :remind_after => 5.days

  assign_state :submitted, :to => :tsp
  notify_state :submitted, :to => [:requester, :tsp, :assistant],
                           :remind_after => 10.days

  assign_state :approved, :to => :requester
  notify_state :approved, :to => [:requester, :tsp, :assistant],
                          :remind_to => :requester,
                          :remind_after => 5.days

  notify_state :accepted, :to => [:requester, :tsp, :assistant]

  notify_state :canceled, :to => [:requester, :tsp, :assistant]

  # @see HasState.allow_transition
  allow_transition :submit, :requester
  allow_transition :approve, :tsp
  allow_transition :accept, :requester
  allow_transition :roll_back, [:requester, :tsp]

Thanks to that, customizing the behavior of those classes is quite easy. But unfortunately that code is directly written in the model. That means that anyone wanting the change the behavior needs to change the core of the program, maybe being forced to keep a local branch in order to be able to update the instance and so on.

Ideally, those DSL chunks should be in configuration files, so customizing an instance doesn't become a maintenance annoyance.

@krngrvr09
Copy link

Oh okay, that makes sense.

Is there an IRC channel where I can discuss my interpretation of other issues and get my proposal reviewed?

@ChrisBr
Copy link
Member

ChrisBr commented Mar 29, 2017

@ancorgs and me are both in #opensuse-project @ freenode, I'm not aware of any other IRC channel.

@krngrvr09
Copy link

Thanks @ChrisBr
A rough draft of my proposal can be found here.
It would be great if you and @ancorgs could have a look at it and give some feedback. I would love to hear if you have any new features/changes in mind that can be integrated in the TSP application or if you'd like to suggest some changes in how to approach some of the tasks. Thank you :)

@Ana06
Copy link
Member

Ana06 commented Jan 17, 2018

@ancorgs @ChrisBr what is the state of this? Is it done? can we close the issue?

@ChrisBr
Copy link
Member

ChrisBr commented Jan 17, 2018

Mostly done

@ChrisBr ChrisBr closed this as completed Jan 17, 2018
@Ana06 Ana06 added the GSoC label Jan 19, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants