jupyter / nbgrader

A system for assigning and grading notebooks
https://nbgrader.readthedocs.io/
BSD 3-Clause "New" or "Revised" License
1.3k stars 317 forks source link

Roll back "Create assignment" sidebar #1865

Open Adamtaranto opened 9 months ago

Adamtaranto commented 9 months ago

The new "Create assignment" sidebar makes it difficult to quickly create nbgrader cell types in an existing notebook. I have to select the cell in the notebook then scroll up and down a tonne of blank cells in the sidebar to find one with a blue line next to it.

1) If possible it would be great if selecting a cell in the notebook automatically updated the sidebar position to the equivalent cell, or vice versa.

2) When was this feature introduced? I want to revert to an earlier version that does not have it.

Operating system

OSX

nbgrader --version

0.9.1

jupyter notebook --version

7.1.0

brichet commented 9 months ago

I agree that this feature should be improved.

This sidebar has been introduced when porting nbgrader to JupyterLab*. The notebook UI in Jupyterlab (and in Notebook>=7) does not support cell toolbar (yet ?), so this solution has been kept.

An other way could be to use the notebook tools, using a JSON schema. See https://github.com/jupyterlab/extension-examples/tree/main/metadata-form for example. The disadvantage of this solution is that you can only see the metadata for the selected cell.

Adamtaranto commented 9 months ago

I was using Jupyter Notebook* to edit nbgrader notebooks without issue a few months ago. Is there a new version of Jupyter that has caused the old UI not to work?

I would love to have the old UI back. The current solution is very disorienting.

Edit: Jupyter notebook has switched from cell toolbar to sidebar.

brichet commented 9 months ago

Maybe I misunderstood the issue. Can you provide some snapshots of the issue, and if possible some snapshots of how it was working before ?

AFAIK nbgrader on jupyterlab always used the sidebar, unlike nbgrader on Notebook<7.

Adamtaranto commented 9 months ago

The nbgrader options used to be at the top of each cell like this.

It now has this weird sidebar thing.

brichet commented 9 months ago

Yes, the main problem is that jupyterlab doesn't support editing the metadata from a cell toolbar, like notebook did.

The most pertinent discussion I could find on this subject is https://github.com/jupyterlab/jupyterlab/issues/902. Maybe it could be discussed again in Jupyterlab.

Adamtaranto commented 9 months ago

Sorry, I meant to say that Jupyter Notebook has switched from cell toolbar to the sidebar. Jupyter Lab used the sidebar in old versions as well. I've edited my question.

I've tried exporting all package versions from an older conda env where I had the cell toolbar working in notebook with nbgrader v0.8.5.

Building a fresh conda env from this yml still isn't working for some reason.

Can you suggest a minimum set of package versions I can specify to get an env with the old cell toolbars back?

brichet commented 9 months ago

Can you suggest a minimum set of package versions I can specify to get an env with the old cell toolbars back?

Working well with python 3.11 (not 3.12).

conda install python=3.11
pip install nbgrader==0.8.5

It will install Notebook<7, using the cell toolbar.

Adamtaranto commented 9 months ago

Thanks this solution works fine on linux, I can use the old cell toolbars in jupyter notebook.

For some unknown reason the nbgrader extension is not visible in jupyter notebook when the same env is set up on an M-series mac. Is this a known issue?

brichet commented 8 months ago

For some unknown reason the nbgrader extension is not visible in jupyter notebook when the same env is set up on an M-series mac. Is this a known issue?

Not that I'm aware of. Feel free to open an issue.

brichet commented 8 months ago

Let's leave this issue open because the create assignment widget could be improved.