Giter Site home page Giter Site logo

uom-nxct / tams Goto Github PK

View Code? Open in Web Editor NEW
1.0 3.0 1.0 4.32 MB

Makes storing and accessing tomographic data easy and quick.

Home Page: https://tams-nxct.readthedocs.io/

License: MIT License

Python 99.10% Shell 0.90%
archive-manager database python

tams's People

Contributors

dependabot[bot] avatar tjkuson avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Forkers

tjkuson

tams's Issues

Indexing files is very slow

Expected behaviour

Downloading or validating files requires indexing the files first. This involves counting the files and their file size.

When I click accept to the prompt informing me that indexing the files will take a long time, I expect to see some sort of feedback.

Current behaviour

I click accept but see no feedback until the prompt saying that validating/saving files has started. This takes many seconds using the small dummy dataset, so could take a very long time for real datasets.

Advanced search functionality

Expected behaviour

When using the search bar, I should be able to perform advanced searches (for example, typing in a username to show projects associated with that user).

Current behaviour

The search bar simply takes a string and compares it to the visible rows in the table.

Progress dialogue when adding data to a scan

Describe the solution you would like
Add a dialogue with a progress bar to display feedback and progress of adding a scan to the library.

Describe alternatives you have considered
Could send to a jobs widget, but that would not cohere with the rest of the project (we use pop-up dialogue for everything else). A jobs handler could be a good long-term goal, however.

Offline mode

Expected behaviour

If I do not, for whatever reason, connect to the database from the client, I should be able to use the application in offline mode. This would mean I could access files that are already downloaded, but I cannot download, upload, or verify other files. Downloaded information should be available in the TOML files.

Current behaviour

If I do not connect to the database, I cannot access my locally downloaded library. It's downloaded and I can access the files through the file manager, but not through the application.

Batch adding of data to the library

Describe the solution you would like
The ability to add multiple scans to the library in one operation.

Describe alternatives you have considered
Currently, only one scan can be added at a time. This works, but is a bit slow if you want to add multiple scans or projects.

Additional context
In terms of behind-the-scenes finding-and-adding of data, this is pretty easy. However, this might be a bit difficult from a user interface perspective. Currently, the user selects one scan, its format, and then views the metadata and adds it manually. Selecting, say, ten scans at once presents a few issues:

  • What if they are not, for example, all the same format?
  • How do we present the scan information to the user? If we show it all, that can be graphically overwhelming to the user. If we don't show all of the scan information, then that means the user cannot validate what it is they are adding. Neither seems optimal.

mypy compatibility issues with PySide6

Expected behaviour

mypy should work with PySide6.

Current behaviour

PySide6 has incomplete stubs, so mypy wrongly flags certain things as errors.

Failure information

Steps to reproduce

mypy wrongly flags this as a type error.

self.btn = QPushButton("Click Me")
self.btn.clicked.connect(self.btn_clicked)
error: "QPushButton" has no attribute "clicked"

Context

This is a known issue with PySide6.

https://bugreports.qt.io/browse/PYSIDE-1675
https://bugreports.qt.io/browse/PYSIDE-1603

Update to Black 2023 release

Describe the solution you would like
Update to Black 2023 release to and format to 2023 specification.

Describe alternatives you have considered
Remaining on the 2022 format risks splitting for accepted modern Python code patterns.

Additional context
Black 2023 was released today.

Add login screen and ability to save/not save login details for automatic login

Expected behaviour

When I start the program, I should have the option to login and, upon selection, automatically login upon startup using my saved login details.

Current behaviour

My login details (the username and password, most crucially) are always saved in the database.toml file. Each time I start the program, it loads the login details from that file and attempts to login. If the login details are empty or wrong, startup fails without the ability to input valid login information.

This is a bit confusing for users who don't know how the code works behind the scenes. It is also not good for people who don't want to save their login details.

Allow user to update database information when adding data to library

Describe the solution you would like
When a user adds a scan to the library, this is not added to the database. The application should read the metadata and ask the user if it should update the database with the metadata.

Describe alternatives you have considered
We don't want to give the user raw database access, so it should be done via the application.

Additional context
The main concern is security. What if the user inputs something malicious which the application runs? We need to guard against SQL injections. We also don't want the user to accidently remove data from the database, so we need to make sure what is happening with data is communicated clearly to the user.

Additionally, it might be worth considering if we should add an admin screen for arbitrary editing of the database.

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.