testmyqt / qt-creatortmc Goto Github PK
View Code? Open in Web Editor NEWQt Creator plugin for TestMyCode (TMC) at University of Helsinki
Home Page: https://testmycode.github.io
License: GNU Lesser General Public License v3.0
Qt Creator plugin for TestMyCode (TMC) at University of Helsinki
Home Page: https://testmycode.github.io
License: GNU Lesser General Public License v3.0
Seems to happen occasionally on Linux, and based on one bug report constatly on Mac.
When submission passes, show suggested solution button
Scenario:
I have downloaded the exercises and change my working directory (for the exercises) in the settings.
Problem:
When trying to redownload the exercises into my new (empty) working directory, the offered download/update list is empty and will not offer me any exercises. This persists until I have deleted the old exercises and restarted Qt Creator.
Perhaps the status of a submitted project (waiting for results) should be in it's own window (akin to what Netbeans does).
Downloaded projects are opened automatically, but they are not autoconfigured so the user needs to configure them manually. This could be tedious, so maybe autoconfigure them with some sane default (or make it a settings).
Reopening #36 with a better title
Currently changing the exercise download path is not handled at all,
should there be an update to existing details or just start from a clean state?
In the future the plugin needs to talk to the autotest plugin to get test information. Currently autotest needs modification to expose the parts to other plugins.
TmcClient does not handle TMC errors very nicely. When deadline has passed you get 401 and
"{"error":"Submissions for this exercise are no longer accepted."}" as the error, but this is not displayed. Need to refactor tmcclient to handle these error messages properly.
Scenario:
My download/update exercises list is empty or completely unticked and I press "OK" to "download exercises" (but am actually downloading nothing) (instead of "cancel" to just close the window).
Problem:
The download panel window pops up and persists until manually closed as there is nothing being downloaded so it does not close on it's own.
The latest version on master (release v2.0) crashes Qt Creator when you log out. (Ubuntu).
Scenario:
Started Qt Creator, downloaded exercises, exercises open (automatically), closed exercises in Qt Creator, deleted exercises from my hard drive.
Problem:
When trying to download exercises again, the download/update exercises list offers me an empty view, and I am required to restart the IDE for the exercises to show up in the download/update window so I can redownload them.
Setting automatic updates to 0 should disable them, but currently it causes infinite updates until crash (it seems to disable it from the next launch on though).
When the user installs and wants to use our plugin TMC-cli is required for the TMC testing to work.
Within the code this requires the plugin to know where to find TMC-cli (the jar).
How will TMC-cli be distributed, how will the plugin know where to find TMC-cli on the users computer (will there be a settings window for this for the user to set it up?).
Configured as is we are unable to locate a .conf
or .ini
file with the TMC server, user etc settings on Windows. The Qsettings are stored in the registry at HKEY_CURRENT_USER -> SOFTWARE -> TestMyQt -> TMC
(as this seems to be the default option on Windows if no output file or path is specified).
This is not user friendly in the case of wanting to reset/tweak settings and should be reworked so the settings are stored in a separate defined file (most likely placed under the directory /Users/<user>/%APPDATA%/Roaming/TestMyQt
) that can be referenced in documentation.
Download exercise, trigger Test project action, crash
Fix: disable all test buttons until we get project open signal
To me it would seem preferable that upon clicking "Download" and the list of exercises with respective checkboxes popping up, the checkboxes would all be ticked instead of unticked.
It seems more likely that when wanting to download exercises, the user downloading them would want to download them all?
CUrrently 2,5 minutes
I've had now two times that the project seemingly for no reason seems to link under MacOS and clang x64.
This second time the tests for the fifth assingment of the first part did not link with the main project and I got an error message about not finding the signal/slot implementations.
For some reason, commenting out the CONFIG -= app_bundle line from the tests fixed the problem. I tried to reproduce the error after I got it working by removing the comment, but it seems to link fine now.
So just a heads up if other people experience strange behaviour on MacOS.
If we continue on the idea of adding icons into the TMC results pane bar, could add icon for updating exercises that would normally be grayed out, but color up when there are updates to be downloaded.
As the plugin will occasionally poll for updates and when the updates are available, a small popup would be nice to inform the user that there are exercises to download.
However the popup should not become active as in steal your cursor and should more be a notification type that will allow the user to update/dowload exercises (to not interfere with the user workflow)
Would be cleaner to have a global settings object that every object would have a reference to and appropriate signal slots connected.
Make API endpoint URL a setting in TmcClient, for example:
API_BASEURL = "https://tmc.mooc.fi/api/"
...
QUrl url(QString(API_BASEURL + "v8/core/exercises/%1/download").arg(ex->getId()));
Testing module claims that the tests have been successfully completed if the user cancels the tests or test crashes on runtime. This causes the submit to server dialog to appear errenously.
Reproduced on Win10 with the fixes branch.
Should the student close the submit widget or should it persist until results are ready?
Would it be possible for the download exericses list view window to close automatically once the downloads for the exercises are complete?
We should probably retrieve the client id and secret from the server instead of hardcoding them, in case they change in the future.
Sometimes the TestMyCode menu (and sometimes, other menus alongside it) becomes invisible (goes to the background/loses it's frame layer and ends up "behind/under" the Qt Creator window) in Windows. Have not figured out how to reproduce, as it's (seemingly) occurring outside active use (I'm mostly screenshotting and alt-tabbing back and forth) of the plugin/IDE.
Idea of adding Test/Running tests locally/Submitting as buttons in the TMC results pane.
Should also add these to the TestMyCode menu, and concider adding atleast some of the TMC options as a right click option for the project pane when right clicking on a project.
For example, exercise data is not written to disk to persist editor reboot. We also need to invalidate the metadata on disk when updates are downloaded etc.
When updating the update should not overwrite student edited files. Probably comparing the hash values of the new files against the old ones or overwriting all files except the StudentFilePolicy defined files in src
directory.
Open projects are now mapped to exercises with name only. They should be probably mapped with location on disk or some other unique identifier so we can be sure we are submitting the right project.
When closing the editor:
There are 1 objects left in the plugin manager pool.
The program has unexpectedly finished.
The process was ended forcefully.
Memory management issue probably in TmcClient
Instead of having Update and Download buttons, have "Download/Update exercises" button.
No slugs
Can we please default the popup windows as follows:
download progress bar window - lower right of IDE window (but not entirely down in the corner, pad with maybe 5-10% of width and height of IDE window)
Download exercise window - upper right of IDE window (but not entirely up in the corner, pad with maybe 5-10% of width and height of IDE window)
Login/Settings window - smack dead in the upper middle (but not entirely in the upper area, pad with maybe 5%)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.