django: package repository
Django migration: #47 (closed).
The MR re-adds the package repository.
The following visual changes have been made:
- On the package view where the link name for the dsc has been shorten to the filename only.
The Repository object is now responsible for installing and removing files from/to the repository.
It can be done it batch as the update is happening separately by calling Repository.update().
The update method process the pending changes and apply them to the repository.
The main advantage is that package removing can now happen asynchronously when requested by a user. The request is forwarded to the worker, thus won't block the page loading.
The RepositoryFile entries reflect the state of the repository.
It doesn't link to other models to allow the async workflow to work.
As usual, tests have been updated. Note the use of fakeredis to emulate a redis server without actually starting one.