Giter Site home page Giter Site logo

circl's People

Contributors

theoo avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

circl's Issues

Invoicing 2016

Remarks concerning invoicing 2016:

  • add global pref to change the default mean of payment
  • fix back button issue displaying text instead of the page
  • allow mouse middle click on any listing
  • fix quick add a receipt
  • review all cancellation (affair and invoice), whether the object is offered or cancelled, and ensure it works as expected with subscription renewal
  • name of the page should be more explicit than CIRCL, add section/subsection in it
  • when clicking on an object (invoice or receipt), lead to the affairs page and point the object directly
  • make "new forms" and "edit forms" visible. It's not always obvious for the client to see whether he/she's editing an object or creating a new one
  • prevent editing of the "cancelled" boolean on invoice when the affair's status is "not invoicable"

Move static javascripts to public

Uglify javascript and put it in public/javascript folder instead of app/assets
Keep in assets only coffeescript code.

in application.rb, remove config.assets.precompile and use javascript file header to load dependencies instead.

Migrate to resque

Replace background tasks with https://github.com/resque/resque

Background tasks are currently located in model/background_tasks, migrate them to /lib resque's folder.
For each task:

  • Test it manually within CIRCL web interface
  • Write a test
  • Cleanup remaining code in the project tree

When the migration is done, remove background_tasks table in a rails migration.
Ensure there is no occurrence of background_task model in the project tree (dead code)
Update basic code so background tasks are still visible on dashboard.

Provide resque admin backend to authenticated users with the following equivalent code in routes:

resque_constraint = lambda do |request|
  request.env['warden'].authenticate? and request.env['warden'].user.admin?
end

constraints resque_constraint do
  mount Resque::Server.new, at: "/resque"
end

Before closing the ticket, prepare two new tickets with:

  • setup notification area to display currently running background tasks
  • update dashboard panel to reflect resque features

Estimated time: 10 hours

Ordering values in datatables

When ordering values in datatables ensure sorting is coherent.

1 CHF != 1 USD

Use a cached value in every money case to store the true value of an object (in the same currency for instance).

Creditors

Add a view to manage creditors (feature well described in private specs)

Improve salaries management UI

Improve perfs and UI with better Icons/Colors and typo. Make it more easy to understand.
Change "paid" icon on salaries listing.

Add global action like "export PDF" as a group from salaries listing.
Automatically fill the creation date with today.
Payment validation confirmation message is wrong (destroy instead of toggle)

Review permissions

Simplify roles, add a warning when modifing.
Ensure specific roles match a previously defined use case.

Global import/export toolbox

In /settings#database provide a simple tool to extract/import all information from database.
Basically, this should be a CSV from the table - fast and reliable.
In some case, when there is relations, ensure relation still exists when importing, otherwise this may lead to inconsistency.

This should serve as backup as well, a simple button "download all my CIRCL data" with privacy information should be provided.

Affairs: Statistics

  • Accepted affairs with first account sent, amount
  • Affairs finalized with all invoices paid, amount
  • Open affairs, no account sent

UI consistency

  • each table / listing should be exportable as CSV
  • button places
  • lock form and listing while updating/destroying (yet, make it synchronized!)
  • place documentation icons and panels
  • tables with checkbox should act like creditors' table

Check double toolbox

Ensure user can check double in administration->tags.
This means if a person is tagged in more than one tag, provide a toolbox to see it.

Search person's name in table

Find a global solution to search names in table. Name can contains organization name, firsrt name and last name. It requires a nice query to do so, or simply a cached object in people table.

Most of datatables query are based on id or last_name which doesn't makes always sense.

Cleanup /lib

There is a lots of extensions and small "tools" in /lib, organize and cleanup this folder.

An affair should not have more than one subscription

The current model allow more than one subscription, it's useless. A subscription = an affair, it could simplify a lot of processes and the overall understanding of this system.
For instance, affair.title is locked to subscription.title yet, when subscription exists.

Ensure page length change doesn't disturb user

On some case like person's affair page, when using panels the page may flick a lot and focus being lost.
Try to avoid too much movement on the page when working on it (doesn't reload useless things, and do it the smart way).
Get inspiration from Angular maybe.

Affairs: move export toolbox

Currently the export toolbox is located on the bottom of affairs listing (Affairs, Invoices, Reciepts)
Move it the related object, always invoke it when trying to generate any kind of doc: odt, pdf or csv

CSS for printer

Ensure CIRCL is printable (even if it should not be printed)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.