Giter Site home page Giter Site logo

egielda's Introduction

Hi there 👋

m4tx's GitHub stats Top Langs

egielda's People

Contributors

m4tx avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

egielda's Issues

Pages that make too many SQL queries

These pages make too many SQL queries (proportional to the data size). The fix should be usually making use of select_related (or similar methods of QuerySet).

  • sell/books (and purchase/books)
  • sell/summary
  • manage/users/list
  • manage/users/unaccepted
  • manage/users/unaccepted/accept
  • manage/categories

Tables should be sorted

All tables in e-Giełda should be sorted in 'some' way. Also, we should provide a JS-powered sorting (accessed by clicking the table headers).

Avoid duplicated BookTypes

There are situations that duplicated BookTypes (same ISBNs, same/similar titles) are created. It should be prevented by some way.

The most obvious option is an option to "merge" 2 BookTypes - admin should have some way to choose which one they want to leave, and then all of the uses of the other BookType should be set to the new one, and the old should be removed then. It should be provided as a separate feature as well as built-in option in Accept books.

Use annotate()/aggregate() instead of "hacks"

In some views, instead of using annotate() and aggregate() QuerySet methods, some ugly methods of, for example, counting Books of the same BookType (by utilizing Python dicts) are in use. The example of this is categories.views.index. It should be fixed at some point.

Add authentication support for students

Authentication for students will be required at some point. How it should be done, of course, is CAS for signing in and LDAP for retrieving data about students. The main problem is where to use it. What I propose now is:

  • optional authentication during buying the books (to fill the name, class, etc. fields automagically)
  • required authentication when selling/giving the books

Update BookType model

BookType model has now only 3 fields (publisher, name, price). Adding support for other optional properties (such as ISBN, publication year, edition, something else?) might be useful. Also, it will also require updating all of the forms and views that currently rely on them.

Write better README.md

Brand new README.md should include:

  • all necessary python packages
  • some sort of installation/first-use documentation
  • a few words on tests
  • maybe something else?

Implement removing a category

Removing category should not remove the book types in it (since one book can be assigned to multiple categories).

Add "always-working" table sorting

Current table sorting is a little bit "hacky" when it comes to dates. We should thus use <time> elements and write custom parser so it'll work anywhere, no matter what language it will be (and also it'll be a little bit faster, I suppose).

Accept 0 seller's books

When all seller's books are deleted by setting amount to 0, seller should be removed from display.

book_chosen_list.html should be removed

Instead of using common/templates/book_chooser_wizard/books_chosen_list.html, we should utilize books/templates/books/book_list_base.html generic template.

The same applies for accept_book_list.html.

Implement viewing books sold

Add a way to display a list of books currently sold/received of a selected type. Probably it's possible to implement only after implementing some part of Selling app.

Links to object details are missing

In several places - for example, order details - there are informations about some objects - for example, book types - but they do not contain links do details page about them. They should be all found and fixed.

Add authentication support for administrators

Currently, /manage/ subpages are accessible without authenticating. Adding some kind of permission support is necessary.
It's also important to make the /manage/ not only inaccessible, but also invisible for regular users. 404 error should do the trick.

Buggy chart behavior on printing

Charts in stats are responsive. This comes with a several disadvantages when it comes to printing:

  • depending on the size of the browser window, they can be cut at the right side when printing:
    screenshot from 2014-08-01 19 24 13
  • there are also such situations like the title is on another page than the chart itself (and, also, I once had a situation when the chart was divided in 2 pieces, one on each page - I can't reproduce it now, yet it should be well-tested...)
  • with very small browser window, the chart is very small, too

Links probably should be in id/action format instead of action/id

For example: we should replace books/edit/5 with books/5/edit. The second format indicates that we edit the book with id 5, instead of saying it's 5th page of editing (or even something else). It also provides consistency when creating "Details" pages with "Edit", "Remove" (etc.) links - instead of redirecting from /21 to /edit/21, we'll redirect from /21 to /21/edit - which is small enhancement for overall user experience.

Breadcrumbs are unintuitive

  • In pages like "Edit book" breadcrumbs should look like this: Manage / Books/ [ Book name ] / Edit - the issue is present on other pages, too
  • In "Accept books", when you click "Edit" next to the book you want to edit, the breadcrumb is out-of-place - it leads to Book list and not the Accept books page

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.