ideascube issueshttps://framagit.org/groups/ideascube/-/issues2022-11-29T13:36:54Zhttps://framagit.org/ideascube/ideascube/-/issues/312HTML lists are not rendered in the blog content2022-11-29T13:36:54ZYohanHTML lists are not rendered in the blog contentWhile the edit tools allow to add ordered and unordered lists, they are not rendered (not even in preview).While the edit tools allow to add ordered and unordered lists, they are not rendered (not even in preview).https://framagit.org/ideascube/ideascube/-/issues/314Blog: make URLs in the text clickable2022-11-29T13:36:49ZYohanBlog: make URLs in the text clickableWhen just pasting an URL in the text (without adding a proper `a` element), can we make it clickable even if the content is already HTML?When just pasting an URL in the text (without adding a proper `a` element), can we make it clickable even if the content is already HTML?https://framagit.org/ideascube/ideascube/-/issues/448Weird button in the top bar of kiwix content2022-11-29T13:36:45ZbarbayellowWeird button in the top bar of kiwix contentwhen browsing content from a zim file using kiwix, for instance http://kiwix.demo.ideascube.lan/vikidia.en/, a top bar is automatically added. It contains a search field and 3 buttons :
- library
- home
- random
The home button links t...when browsing content from a zim file using kiwix, for instance http://kiwix.demo.ideascube.lan/vikidia.en/, a top bar is automatically added. It contains a search field and 3 buttons :
- library
- home
- random
The home button links to the home of the zim file -> cool
The random button leads to a random page -> cool
The library button leads to the list of all the zim files -> weird
Is there a way to remove the library button from the top bar ? A setting in kiwix for instance ?
![selection_007](https://cloud.githubusercontent.com/assets/4816690/17963057/fe8d0f04-6ab3-11e6-88ce-e5cb7b8cb7bf.jpg)https://framagit.org/ideascube/ideascube/-/issues/453Try moving our pytest/logging workaround into pytest proper2022-11-29T13:36:40ZMathieu BridonTry moving our pytest/logging workaround into pytest proper#452 added some code to our pytest initialization which works around what seems like a glaring bug in pytest at first sight.
I merged the pull request to move forward (I needed it in the configuration branches), but let's keep it in min...#452 added some code to our pytest initialization which works around what seems like a glaring bug in pytest at first sight.
I merged the pull request to move forward (I needed it in the configuration branches), but let's keep it in mind.
Code is here: https://github.com/ideascube/ideascube/blob/master/conftest.py#L10-L14https://framagit.org/ideascube/ideascube/-/issues/685Media center : bulk media deletion2022-11-29T13:36:31ZbarbayellowMedia center : bulk media deletionWe **need** a command (maybe it is unwise to add it in the UI) to delete massively medias in the media center.
We need to be able to delete:
- all the medias
- medias created between xxx and xxx (xxx is a date)
Additionally, it could...We **need** a command (maybe it is unwise to add it in the UI) to delete massively medias in the media center.
We need to be able to delete:
- all the medias
- medias created between xxx and xxx (xxx is a date)
Additionally, it could be nice to have the ability to delete:
- medias type = video / audio / pdf / ...
- medias title = "insertyoursophisticatedregexhere"https://framagit.org/ideascube/ideascube/-/issues/698Recent tags are not shown2022-11-29T13:36:26ZFlorian HESLOUINRecent tags are not shownWith more than 400 content in the ideascube media-center. After adding new content, new tags are not shown.
How could we managed to show all tags ?With more than 400 content in the ideascube media-center. After adding new content, new tags are not shown.
How could we managed to show all tags ?https://framagit.org/ideascube/ideascube/-/issues/701Better try and weed out silly tags2022-11-29T13:36:17ZMathieu BridonBetter try and weed out silly tagsSome people seem to not understand the "tags" field in the new media form, and just type a description sentence.
There are a few things we could do to limit the problems caused by that:
* separate punctuation from words
We have so...Some people seem to not understand the "tags" field in the new media form, and just type a description sentence.
There are a few things we could do to limit the problems caused by that:
* separate punctuation from words
We have some tags like `foo;`, which we should tokenize into `foo` and `;`. Then we can just remove tags that are purely punctuation.
* try lower-casing the tag name
This could help de-duplicate some tags.
A bigger effort might be needed on the UX of this field, but that's for another ticket.https://framagit.org/ideascube/ideascube/-/issues/855Make clearer output for ideascube catalog2022-11-29T13:36:08ZStevenMake clearer output for ideascube catalogHello team,
It's hard for us to get what is going on :
`TASK [package_management : Install, upgrade or remove a package present in device_list.fact] ***
failed: [localhost] (item={u'status': u'present', u'name': u'wikipedia.fr'}) => {"...Hello team,
It's hard for us to get what is going on :
`TASK [package_management : Install, upgrade or remove a package present in device_list.fact] ***
failed: [localhost] (item={u'status': u'present', u'name': u'wikipedia.fr'}) => {"changed": true, "cmd": "grep -m 1 -w \"wikipedia.fr\" /var/ideascube/main/catalog/installed.yml || ideascube catalog install wikipedia.fr ", "delta": "1:46:42.640559", "end": "2017-10-23 15:51:26.228841", "failed": true, "item": {"name": "wikipedia.fr", "status": "present"}, "rc": 1, "start": "2017-10-23 14:04:43.588282", "stderr": "grep: /var/ideascube/main/catalog/installed.yml: No such file or directory\nTraceback (most recent call last):\n File \"/opt/venvs/ideascube/bin/django-admin\", line 11, in <module>\n load_entry_point('Django==1.11.5', 'console_scripts', 'django-admin')()\n File \"/opt/venvs/ideascube/lib/python3.4/site-packages/django/core/management/__init__.py\", line 364, in execute_from_command_line\n utility.execute()\n File \"/opt/venvs/ideascube/lib/python3.4/site-packages/django/core/management/__init__.py\", line 356, in execute\n self.fetch_command(subcommand).run_from_argv(self.argv)\n File \"/opt/venvs/ideascube/lib/python3.4/site-packages/django/core/management/base.py\", line 283, in run_from_argv\n self.execute(*args, **cmd_options)\n File \"/opt/venvs/ideascube/lib/python3.4/site-packages/django/core/management/base.py\", line 330, in execute\n output = self.handle(*args, **options)\n File \"/opt/venvs/ideascube/lib/python3.4/site-packages/ideascube/serveradmin/management/commands/catalog.py\", line 124, in handle\n return super().handle(*args, **options)\n File \"/opt/venvs/ideascube/lib/python3.4/site-packages/ideascube/management/base.py\", line 18, in handle\n options['func'](options)\n File \"/opt/venvs/ideascube/lib/python3.4/site-packages/ideascube/serveradmin/management/commands/catalog.py\", line 184, in install_packages\n options['ids'], keep_downloads=options['keep_downloads'])\n File \"/opt/venvs/ideascube/lib/python3.4/site-packages/ideascube/serveradmin/catalog.py\", line 689, in install_packages\n handler.commit()\n File \"/opt/venvs/ideascube/lib/python3.4/site-packages/ideascube/serveradmin/catalog.py\", line 200, in commit\n et = etree.parse(f)\n File \"src/lxml/etree.pyx\", line 3441, in lxml.etree.parse\n File \"src/lxml/parser.pxi\", line 1855, in lxml.etree._parseDocument\n File \"src/lxml/parser.pxi\", line 1875, in lxml.etree._parseFilelikeDocument\n File \"src/lxml/parser.pxi\", line 1770, in lxml.etree._parseDocFromFilelike\n File \"src/lxml/parser.pxi\", line 1185, in lxml.etree._BaseParser._parseDocFromFilelike\n File \"src/lxml/parser.pxi\", line 598, in lxml.etree._ParserContext._handleParseResultDoc\n File \"src/lxml/parser.pxi\", line 705, in lxml.etree._handleParseResult\n File \"src/lxml/etree.pyx\", line 323, in lxml.etree._ExceptionContext._raise_if_stored\n File \"src/lxml/parser.pxi\", line 376, in lxml.etree._FileReaderContext.copyToBuffer\n File \"/opt/venvs/ideascube/lib/python3.4/encodings/ascii.py\", line 26, in decode\n return codecs.ascii_decode(input, self.errors)[0]\nUnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 279: ordinal not in range(128)", "stdout": "\u001b[36mIDEASCUBE_ID=kb\u001b[0m\n\u001b[36mImporting settings from ideascube.conf.kb\n\u001b[0m\n\rDownloading wikipedia.fr: 0.00% || 16.0 KiB/25.9 GiB (0.0 KiB/s) | ETA: 14:04:50\rDownloading wikipedia.fr: 0.05% || 12.1 MiB/25.9 GiB (12.1 MiB/s) | ETA: 14:41:20\rDownloading wikipedia.fr: 0.09% || 24.9 MiB/25.9 GiB (12.4 MiB/s) | ETA: 14:40:24\rDownloading wikipedia.fr: 0.14% || 38.3 MiB/25.9 GiB (12.8 MiB/s) | ETA: 14:39:28\rDownloading wikipedia.fr: 0.20% || 52.7 MiB/25.9 GiB (13.2 MiB/s) | ETA: 14:38:27\rDownloading wikipedia.fr: 0.25% || 66.8 MiB/25.9 GiB (13.4 MiB/s) | ETA: 14:37:59\rDownloading "Downloading wikipedia.fr: 81.28% || 21.1 GiB/25.9 GiB (10.9 MiB/s) | ETA: 14:45:37", "Downloading wikipedia.fr: 81.31% || 21.1 GiB/25.9 GiB (10.9 MiB/s) | ETA: 14:45:37", "Downloading wikipedia.fr: 81.33% || 21.1 GiB/25.9 GiB (10.8 MiB/s) | ETA: 14:45:38", "Downloading wikipedia.fr: 81.35% || 21.1 GiB/25.9 GiB (10.8 MiB/s) | ETA: 14:45:38", "Downloading wikipedia.fr: 81.38% || 21.1 GiB/25.9 GiB (10.8 MiB/s) | ETA: 14:45:39", "Downloading wikipedia.fr: 81.41% || 21.1 GiB/25.9 GiB (10.8 MiB/s) | ETA: 14:45:39", "Downloading wikipedia.fr: 81.45% || 21.1 GiB/25.9 GiB (10.8 MiB/s) | ETA: 14:45:39", "Downloading `
I see two possible improvement here :
1. Better error handling from the code, Python traces are not easy to read if not a Python dev.
2. Drastically reduce download messages (I did truncate 99% here) which are all written to logs.https://framagit.org/ideascube/irfi/-/issues/34Cosmetic change to "news from the radio" app2022-11-29T13:35:59ZFlorian HESLOUINCosmetic change to "news from the radio" appFrom the blog post list
* [x] show the summary in italic
* [x] first 4 lines of the message
* [ ] Sort message by added date AND hours (currently only date)From the blog post list
* [x] show the summary in italic
* [x] first 4 lines of the message
* [ ] Sort message by added date AND hours (currently only date)1.0https://framagit.org/ideascube/irfi/-/issues/40Cosmetics in "Add a new radio broadcast" form2022-11-29T13:35:50ZFlorian HESLOUINCosmetics in "Add a new radio broadcast" form* Change name : Fichier source -> Fichier source (MP3 conseillé)
* Date de diffusion : Date is in english format, switch to french format
* Remove the end "." at the end of each thematic
* Language menu shows English, it should not (not ...* Change name : Fichier source -> Fichier source (MP3 conseillé)
* Date de diffusion : Date is in english format, switch to french format
* Remove the end "." at the end of each thematic
* Language menu shows English, it should not (not enable in Languages admin page)https://framagit.org/ideascube/irfi/-/issues/43Participate to the radio : Browse file form2022-11-29T13:35:38ZFlorian HESLOUINParticipate to the radio : Browse file form**"Participate to the radio" app**
In this form we would like to browse a wider type of file : pdf, audio, videos, images**"Participate to the radio" app**
In this form we would like to browse a wider type of file : pdf, audio, videos, imageshttps://framagit.org/ideascube/omeka-to-pkg/-/issues/6ZIP does not support timestamps before 19802021-02-26T13:21:03ZToMZIP does not support timestamps before 1980```
Traceback (most recent call last):
File "/usr/local/bin/omeka-to-pkg", line 8, in <module>
sys.exit(main())
File "/usr/local/lib/python3.7/site-packages/omekatopkg/__init__.py", line 133, in main
handle(args)
File "/usr...```
Traceback (most recent call last):
File "/usr/local/bin/omeka-to-pkg", line 8, in <module>
sys.exit(main())
File "/usr/local/lib/python3.7/site-packages/omekatopkg/__init__.py", line 133, in main
handle(args)
File "/usr/local/lib/python3.7/site-packages/omekatopkg/__init__.py", line 112, in handle
package.create_package_zip(package_path)
File "/usr/local/lib/python3.7/site-packages/omekatopkg/package.py", line 67, in create_package_zip
ziparchive.write(filename=filename, arcname=mediaInfo['path'])
File "/usr/local/lib/python3.7/zipfile.py", line 1730, in write
zinfo = ZipInfo.from_file(filename, arcname)
File "/usr/local/lib/python3.7/zipfile.py", line 530, in from_file
zinfo = cls(arcname, date_time)
File "/usr/local/lib/python3.7/zipfile.py", line 357, in __init__
raise ValueError('ZIP does not support timestamps before 1980')
ValueError: ZIP does not support timestamps before 1980
```
The files are timestamped from Epoch:
```
-r-xr-x--- 1 www-data www-data 7569916 Jan 1 1970 /mnt/s3/original/il_etait_une_fois_maestro_le_tutoriel_de_dessin.mp4
-r-xr-x--- 1 www-data www-data 44182595 Jan 1 1970 /mnt/s3/original/dessiner_une_main_tenant_un_verre.mp4
```
This should be handled gracefully.https://framagit.org/ideascube/omeka-to-pkg/-/issues/1If medias are dispatched in a folder tree, csv-to-pkg will reproduce this str...2019-04-29T04:24:03ZStevenIf medias are dispatched in a folder tree, csv-to-pkg will reproduce this structure in the packageAnd therefore, package will not be able to be installed in ideascube. As ideascube does not support file hierarchy.
* csv-to-pkg should then place every file in the zip root directory.
* If 2 files have exact same name, then csv-to-p...And therefore, package will not be able to be installed in ideascube. As ideascube does not support file hierarchy.
* csv-to-pkg should then place every file in the zip root directory.
* If 2 files have exact same name, then csv-to-pkg should notice us and stop process for us to rename the file.Mathieu BridonMathieu Bridonhttps://framagit.org/ideascube/omeka-to-pkg/-/issues/2Installation instructions2019-04-29T04:24:03ZbarbayellowInstallation instructionsI'm not a python dev but I needed to install csv-to-pkg on my machine and I had this error message :
` Cannot unpack file /tmp/pip-e43kwbc7-unpack/csv-to-pkg.git (downloaded from /tmp/pip-ergqq47p-build, content-type: text/html; charset...I'm not a python dev but I needed to install csv-to-pkg on my machine and I had this error message :
` Cannot unpack file /tmp/pip-e43kwbc7-unpack/csv-to-pkg.git (downloaded from /tmp/pip-ergqq47p-build, content-type: text/html; charset=utf-8); cannot detect archive format
`
after i Launched the command listed in the Readme file : `pip install https://framagit.org/ideascube/csv-to-pkg.git
`
To make it work I had to add an explicit git+ before the url. `pip install git+https://framagit.org/ideascube/csv-to-pkg.git`
Maybe we could add this in the Readme file ?https://framagit.org/ideascube/ideascube/-/issues/770Ordering by publication date doesn't seem to work2019-04-12T16:34:59ZMathieu BridonOrdering by publication date doesn't seem to workNo matter how much I click on this button, the list doesn't change its ordering.
_Note that this might apply to other parts of the application, like the library or mediacenter, but I haven't verified. When fixing this bug, please do c...No matter how much I click on this button, the list doesn't change its ordering.
_Note that this might apply to other parts of the application, like the library or mediacenter, but I haven't verified. When fixing this bug, please do check them._https://framagit.org/ideascube/ideascube/-/issues/771The article creation form is intimidating2019-04-12T16:34:59ZMathieu BridonThe article creation form is intimidatingI just did some UX test on the blog with someone who already has a blog (at Wordpress.com) but had never been exposed to Ideascube before.
I asked her to just create a new blog post, as if it were her blog.
She felt overwhelmed by ...I just did some UX test on the blog with someone who already has a blog (at Wordpress.com) but had never been exposed to Ideascube before.
I asked her to just create a new blog post, as if it were her blog.
She felt overwhelmed by the amount of fields to fill up, and told me she didn't know where to start.
I explained to her that the left column were just metadata about the article, and that the right column was her actual article.
She said she didn't realize that, she only saw a big lump of fields all competing for her attention.
I think this could get better with a combination of several things:
* removing some fields (#758, #759)
* making the left column look more like an additional sidebar. A few random ideas, which might all be terrible:
* maybe move it to the right?
* maybe make it less large?
* maybe make it a different background color?
* maybe add a separator between the columns?
* moving some fields to the main column:
* @mgautierfr already moves the summary to the main column in !744, I agree with his move
* I think we should also move the title to the main column
* I think the main column should show, in this order: title, text, summary (optional) as that makes for a better writing flow
And then there are probably a few other things which could improve this flow, and some of the above might bad ideas. I'm not a designer. 😄 https://framagit.org/ideascube/ideascube/-/issues/772Think harder about digital books2019-04-12T16:34:59ZMathieu BridonThink harder about digital booksWe currently store all digital content in the mediacenter, **except** digital books which are stored in the library.
This causes a few problems.
One issue is that we currently can't install library books/specimens with packages, so...We currently store all digital content in the mediacenter, **except** digital books which are stored in the library.
This causes a few problems.
One issue is that we currently can't install library books/specimens with packages, so ebooks are installed in the mediacenter instead. Maybe we should have a new `zipped-books` package type to do that, but read on...
Another issue is of content grouping: users interested in a certain topic would browse the mediacenter searching for media related to that topic, and find videos, pictures, etc... But they won't find books about this topic if they are stored in the library.
And finally, it seems that many users (both visitors and staff) don't even know they can find ebooks in the library, but expect it all in the mediacenter. 😕
One idea would be to have a link between the mediacenter and the library, something like « See also these books in the library about this topic ».
Another idea, more drastic would be to store **all** digital content in the mediacenter, **including digital book specimens**.
And then book specimens would have a link to the mediacenter instead of storing their own ebooks.
This solves a few problems:
* we can install ebooks with the `zipped-medias` packages, just like today
* the content grouping becomes more natural, ebooks appear in the mediacenter along with other digital resources
That would involve a pretty hairy data migration, though. 😮
And we'd probably want to add some metadata to the ebooks in a `zipped-medias` package, so that we create the books/specimens when installing such a package.
An even more drastic solution would be to completely merge the mediacenter and library applications. But I have a feeling this quickly gets us into crazyland.
_Note that this discussion arose in the context of adding mobi support to the mediacenter (#737)_https://framagit.org/ideascube/ideascube/-/issues/776Labels of the packages should be defined trhough the package manager yml file2019-04-12T16:34:58ZbarbayellowLabels of the packages should be defined trhough the package manager yml fileEvery content in ideascube has a label "read", "discover" ,"info" etc.
![image](https://cloud.githubusercontent.com/assets/4816690/24082053/c20e064c-0cbf-11e7-85fb-1e600bdc2977.png)
I don't know where those labels are and how each...Every content in ideascube has a label "read", "discover" ,"info" etc.
![image](https://cloud.githubusercontent.com/assets/4816690/24082053/c20e064c-0cbf-11e7-85fb-1e600bdc2977.png)
I don't know where those labels are and how each content gets a label but I assume it is somewhere in a configuration file. Since we plan to use massively the package manage now, maybe it could be a good idea to specify this label as a category in the yaml file. It will even solve the translation problem because most of the time packages are done for one specific language.
Having a category associated to each package could also opens some new horizons for the future and the UX of ideascube.
https://framagit.org/ideascube/ideascube/-/issues/784User Form for DRC server2019-04-12T16:34:58ZMathieu BridonUser Form for DRC server*Created by: Narjis89*
we been facing the same issue with register new user Form , we asked to update the form by adding other field and they are:
1. DRC-Number : they have unique number for each beneficiary the have and they want to u...*Created by: Narjis89*
we been facing the same issue with register new user Form , we asked to update the form by adding other field and they are:
1. DRC-Number : they have unique number for each beneficiary the have and they want to us it instead of the IDB number on the membership card
2. Name
3. Full name
4. Gender
5. phone number
6. Date of birth
7. Nationality
8. UNHCR number
9. National ID number
10. Address
11. Disability : want it yes or no choice
12. type of Disability
If can we manage update it locally on the server for the fields than we can have , and for the next release of the the ideas-cube we can think of way to make the form manageable by the IDB Admin like we did with manage home page.ToMToM2017-04-30https://framagit.org/ideascube/ideascube/-/issues/785Refuse symlinks in packages2019-04-12T16:34:58ZMathieu BridonRefuse symlinks in packagesA media package could contain a symlink, pointing to a system file. This is a security hazard.
We should not let it happen.
My personal opinion is that we should just refuse all symlinks in media packages (and maybe in all packages...A media package could contain a symlink, pointing to a system file. This is a security hazard.
We should not let it happen.
My personal opinion is that we should just refuse all symlinks in media packages (and maybe in all packages?). When installing a file from a package, if it is a symlink, we should just treat it as an error and move to the next file.
Another solution would be to verify that the symlink doesn't point outside of the media packages space. Ensuring that it doesn't start with `/` or `../` should be enough.
However, I can't see the value in having a media be a symlink to another media, so I'm inclined to just say no to symlinks entirely, and eventually revisit if we ever find a use-case.