bptlab / TracEX

This bachelorproject focuses on event log extraction from patient journeys using large-language models.
5 stars 5 forks source link

Feature: capability to download traces (single and all traces) from tracex #101

Closed thangixd closed 7 months ago

thangixd commented 7 months ago

Hello, we now have the capability to download traces either as single or all traces as XES files. This allows us to save them locally and use them with various programs, such as Disco, for further analysis.

I added a button (as a form) to our result view, where you can either choose between single trace or all traces. In my screenshot highlighted in the red box.

I have chosen not to implement the "Save As" window functionality due to the strict security limitations imposed by web browsers, which prevent direct access to a user's file system. This decision ensures that our application complies with best practices for web security and user privacy, while maintaining a consistent user experience and adhering to browser-defined restrictions. This PR closes #94

image

thangixd commented 7 months ago

I've disabled the pylint rule consider-using-with in specific parts of our code due to the unique requirements of Django’s FileResponse, which manages file streams directly. Using a with block for file handling would automatically close the file upon exiting the block, interrupting Django's streaming process and causing server errors. My approach ensures that files remain open during the streaming and are closed only after the response is fully transmitted, thus preventing resource leaks without compromising functionality.

image

thangixd commented 7 months ago

To ensure better integration into the website, a popup with checkboxes has now been integrated. In addition, you now have the option to download either 1. single trace 2. all trace or 3. both together as a zip file. The latter by placing a checkmark in both checkboxes.

image

In addition, an error message has been implemented so that a warning appears that at least one checkbox must be clicked.

image

The problem with the linter still remains (see reasoning in https://github.com/bptlab/TracEX/pull/101#issuecomment-2056565979 )

thangixd commented 7 months ago

Thanks for the feedback! I changed it to a class based view @tkv29 Please review precise again! :)

thangixd commented 7 months ago

Okay so overall, as I have limited knowledge in html and css, i think it looks really good.

Have you thought about a thrid (and fourth) download option, where you can download each of the xes files aknowlidging the current filters?

Apart from that the functionality is really intuitive, nicely done!

Thanks for ur feedback! :) Oh thats a really nice idea. I could do that if our PO @tkv29 wants! :) If thats a feature our PO desires.

thangixd commented 7 months ago

@FR-SON since you have a lot of knowledge about the best practices in Django, could you take a look if you find the time? I would be happy to appreciate it!

tkv29 commented 7 months ago

@thangixd The idea of @nils-schmitt sounds good. Letss gooo

thangixd commented 7 months ago

@thangixd The idea of @nils-schmitt sounds good. Letss gooo

its done, you can now download the filtered version for both. Just filter first and than click download.

thangixd commented 7 months ago

I fixed #104 :)

tkv29 commented 7 months ago

image If you save the zip it also gets save in the tracex_project directory. Is that needed?

If so, please change the directory to a more fitting place, else if someone download the zip several times our main directory would be full of it :D

thangixd commented 7 months ago

image If you save the zip it also gets save in the tracex_project directory. Is that needed?

If so, please change the directory to a more fitting place, else if someone download the zip several times our main directory would be full of it :D

Hi we now use temp file, so its not visible stored in the explorer anymore

tkv29 commented 7 months ago

which warnings? @nils-schmitt

thangixd commented 7 months ago

Shows a lot of warnings, but its just warnings, eh?

can you elaborate further :D there are no warnings on my system.

If u mean the panda 3.0 warning, its because panda is unsure if its an copy.

The SettingWithCopyWarning you're seeing when calling df.rename() indicates that the DataFrame df might be a subset or slice of another DataFrame. This typically happens when you select or filter rows from another DataFrame without explicitly making a copy.

The SettingWithCopyWarning you're seeing when calling df.rename() indicates that the DataFrame df might be a subset or slice of another DataFrame. This typically happens when you select or filter rows from another DataFrame without explicitly making a copy.