GithubHelp home page GithubHelp logo

bookish's People

Contributors

bjwebb avatar caprenter avatar oldcreakyknees avatar requires avatar

Watchers

 avatar  avatar  avatar

bookish's Issues

Logged in landing page

Once logged in....

You go to a dashboard/landing page. This will be different depending on if you are

  • an accountant
  • a regular client/user
  • an administrator

We think a regular user will see:

  • Some information about their accounts

We think and accountant will see:

  • Some information about their clients

If it is your first login you will:

  • Be asked to complete some account details

Add a datepicker

The transaction view asks for a date, that needs to be input manually.

Investigate a datepicker

Log out - show list of actions

When I log out of my internet banking now, I get a list of the things I have done during that session.

I think that's quite nice - a reminder of all the things I've done and a prompt that reminds me about the things I haven't!

Might be worth considering

Building Milage, Invoices, Receipts, etc

@Bjwebb Do we want to try to re-use views and templates for each of our 'pages'.

Part of me thinks that re-use is a way of having less, but more complex code (I don't think a single 'page' has quite the same fields as another). The other part of me thinks that, a dedicated view and a template - even thought they may duplicate code, makes following the code easier.

I'm not sure if we need new models to deal with milage and invoices and so on. Or will a transaction expand to cover all possible fields, and be defined by transaction_type?

Transactions need to have a state

Transactions can have different states.

They may have some data that should be saved - but not enough to be a complete record.

They may be complete enough to be submitted (i.e.dealt with)

They may have the minimal info required to make a record, but could be enhanced.

We think the states are:

  • Grey: Submitted/dealt with/ok
  • Red: Minimal info to be saved, but not good enough
  • Amber: Has enough info to be considered a record, but could still be enhanmced
  • Green: Has all the info it could ever want/need

The level of detail required will be different depending on if it is a cash record, or a milage record, etc - but the classificatiuon system will b e consistent, (i.e. it should be easy to know that there are 5 red records, 6 Amber, etc)

Add a datepicker

The transaction view asks for a date, that needs to be input manually.

Investigate a datepicker

Selinum test causes (non-fatal) errors due to static files

The selinium test tries to access static files (as it loads assets on the pages it tries), but is unable to do so because Django runs tests with DEBUG=False. It's not currently checking that these assets load, so all tests pass. On the other hand, the console fills up with "errors", which is not so good.

http://chuckin-py.blogspot.co.uk/2013/03/problems-with-django-testing-and.html describes this problem, and on possible approach to solving it.

Contact Information Model

We need to attach contact information to users, companies and accountants.

I believe we might think that a freetext field would be simple and effective way of achieving this.

I'm not sure if we also need to keep revision information on this information (previous addresses, contact numbers etc)

Even without revisions, we might want to have the ability to attach more than one set of contact details to each of these entities

Switch to PhanomJS Selinum backend?

This is possibly more performant, and easier to run as a test since it is headless.

Should just involve changing

    self.browser = webdriver.Firefox()

to

    self.browser = webdriver.PhantomJS()

(TravisCI comes with both Firefox and PhantomJS preinstalled).

Building Milage, Invoices, Receipts, etc

@Bjwebb Do we want to try to re-use views and templates for each of our 'pages'.

Part of me thinks that re-use is a way of having less, but more complex code (I don't think a single 'page' has quite the same fields as another). The other part of me thinks that, a dedicated view and a template - even thought they may duplicate code, makes following the code easier.

I'm not sure if we need new models to deal with milage and invoices and so on. Or will a transaction expand to cover all possible fields, and be defined by transaction_type?

Create a vehicle model

  • Mileage needs to be logged against a vehicle
  • Vehicles need to be attached to companies

Transaction display - display nominal code

Nominal code as displayed in the transaction table... How should we do this?

Do we show the code, the value, or both? What we display may be different to what we export or it may not.

We may show the code in it's own column and the value in another.

@oldcreakyknees Any ideas?

Logout behaviour

When you logout, you get taken back to index.html, where you will have an option to login again

Company Name - may need to make user select

A user could have more than one company that they are creating data for.

Need to think about how it's clear which set of records they are editing, and make it easy to change.

Should business_year_id be in the table?

From: #18 (comment)
My understanding is that the entire page will be a view showing only one Business Year. The Business year being displayed should probably be listed between the title and the table eventually.

On the other hand @caprenter has pointed out that we might want to show the end/start of the previous/next tax year for example.

Add more Demo data

We need some transactions, transaction revisions, business years, companies and probably more in the demo data

Create a transaction revision view

Not sure who this is for - users, administrators or what, but once we get the ability to edit transactions, we may want to view the revision history.

Issues with the navigation

From #22

The navigation could be in a template block instead of base.html - please advise

The navigation could be split out into a separate file, but I think that base.html is a sensible place to keep it for now. The navigation for the dashboard is in base.html for example: https://github.com/IATI/IATI-Dashboard/blob/master/templates/base.html

Links are not done to the application format - please advise

I think the point where you got stuck is that { % does not work, it must be {% (without the space). The next thing to know is that the url template tag wants the name of the view (defined in urls.py) and not the url, e.g. {% url 'bookish-cash_list' %} (the advantage of this is that we can change the public facing urls later on just by changing urls.py without getting any broken urls within bookish - see https://docs.djangoproject.com/en/1.7/misc/design-philosophies/#id8 for more on this (in fact that entire page is an interesting read)).

Logout needs more thought as to how that is handled

Not sure exactly what you're thinking here, so one to discuss. The logout page is currently using the admin styling, which we can fix by overriding the template (as we've already done for the login page).

Index page (when not logged in)

Please can we list agreed index page features here please.

When you are not logged in and you navigate to index page (or any other page!)

  • Navigation does not show cash, receipts etc on index page
  • You see a big Login box.

Anything else (e.g. explaining what the application is)

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.