Code Monkey home page Code Monkey logo

omeka-s-module-contribute's Introduction

Contribute (module for Omeka S)

New versions of this module and support for Omeka S version 3.0 and above are available on GitLab, which seems to respect users and privacy better than the previous repository.

Contribute is a module for Omeka S that allows visitors to add, edit, complete or translate metadata of the resources without access to the admin board.

Access to the contribute and to the edit page may be controlled by a token, that you can send to your users, or to users only (in particular guest users), or to anybody.

The two main differences with module Collecting is the fact that this module uses standard resource templates, so you don't need to create specific forms, and the possibility to complete or to revise an existing document.

Installation

Module

See general end user documentation for installing a module.

The module Common must be installed first.

The module uses the module Advanced Resource Template in order to manage the forms and the properties that the users can edit or fill, so it should be installed first.

If you want to open contribution only to authenticated users, it is recommended to install the module Guest and Blocks Disposition (unless you edit theme).

  • From the zip

Download the last release Contribute.zip from the list of releases (the master does not contain the dependency), and uncompress it in the modules directory.

  • From the source and for development

If the module was installed from the source, rename the name of the folder of the module to Contribute.

Upgrade from module Correction

The upgrade from the module Correction was removed in version 3.4.24. If needed, install version 3.4.23 then upgrade the module.

Usage

To be contributed or completed, a resource must have a template and be allowed in the main settings.

  • Configure the main settings, in particular the contribution mode.
  • Configure the resource templates to select the properties to be edited or filled. Note: If a property has no value, it can't be edited, even if the property is marked editable. To allow to add a value, choose "fillable". To allow only one value, set the maximum number of values to 1.
  • To allow to contribute a file, you should define a template for files and set it in the parameters of the main template.
  • If the contribute mode requires token:
    • Create one or more tokens for the resources you want to edit via the link in the sidebar of a resource or the bulk process dropdown at the top of the resource browse pages.
    • Send emails to your users with the tokens, so they can edit or complete metadata of the resources.
  • Else a link is displayed on the item page if enabled in the theme or via the module Blocks Disposition.
  • After submission, the admin can go to the resource page of the edited items and apply changes, or decline them. A page lists all contributions too. Contribution can be marked as reviewed and token can be made expired.

TODO

  • Reintegrate features for corrections in version 3.3.0.18+.
  • Store the site in the contribution.
  • Store the ip and some data to check anonymous contribution (see module Contact Us).
  • Make the token optional (allow anybody to edit; review all rights).
  • Manage the fillable fields with a language, so it will simplify validation of translation (use advanced resource template).
  • Finalize value resources.
  • Finalize select for resources (dynamic api query via chosen-select).
  • Create an admin browse page with all contributes.
  • Remove the fallback contribution settings to simplify config and move all settings to advanced resource template.
  • Check process when the resource template is updated (required, max values, editable, fillable…).
  • Remove requirement for Advanced Resource Template: only list of editable and fillable properties may be needed (or make them all editable/fillable).
  • Remove the "@" in internal proposition values.
  • Add the elements via the form, not only via view.
  • Add resource via token (only edition currently).
  • Clarify add/edition resource for correction.
  • Dynamic select for resource (without custom vocab).
  • Add pagination in guest contribution list.
  • Require only on submit for new contribution?
  • Improve lang management.
  • Allow to create subresource in the main form (author). Require check.
  • Manage value annotations.
  • Include all fields as form elements (included laminas collections of elements).
  • Allow to edit item and media together.

Warning

Use it at your own risk.

It’s always recommended to backup your files and your databases and to check your archives regularly so you can roll back if needed.

Troubleshooting

See online issues on the module issues page on GitLab.

License

This module is published under the CeCILL v2.1 license, compatible with GNU/GPL and approved by FSF and OSI.

This software is governed by the CeCILL license under French law and abiding by the rules of distribution of free software. You can use, modify and/ or redistribute the software under the terms of the CeCILL license as circulated by CEA, CNRS and INRIA at the following URL "http://www.cecill.info".

As a counterpart to the access to the source code and rights to copy, modify and redistribute granted by the license, users are provided only with a limited warranty and the software’s author, the holder of the economic rights, and the successive licensors have only limited liability.

In this respect, the user’s attention is drawn to the risks associated with loading, using, modifying and/or developing or reproducing the software by the user in light of its specific status of free software, that may mean that it is complicated to manipulate, and that also therefore means that it is reserved for developers and experienced professionals having in-depth computer knowledge. Users are therefore encouraged to load and test the software’s suitability as regards their requirements in conditions enabling the security of their systems and/or data to be ensured and, more generally, to use and operate it in the same conditions as regards security.

The fact that you are presently reading this means that you have had knowledge of the CeCILL license and that you accept its terms.

Copyright

  • Copyright Daniel Berthereau, 2019-2024 (see Daniel-KM on GitLab)

First version of this module was done for Université de Paris-Saclay. Improvements were done for Enssib and for the site used to do the deposit and the digital archiving of student works (Dante) of the Université de Toulouse Jean-Jaurès.

omeka-s-module-contribute's People

Contributors

daniel-km avatar kyfr59 avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

billxu0521

omeka-s-module-contribute's Issues

Resource 'Contribute\Controller\Admin\Contribute' not found

After creating token, returning to resource page generates this error.

Zend\Permissions\Acl\Exception\InvalidArgumentException: Resource 'Contribute\Controller\Admin\Contribute' not found in /home/gainings/public_html/vendor/zendframework/zend-permissions-acl/src/Acl.php:291
Stack trace:
#0 /home/gainings/public_html/vendor/zendframework/zend-permissions-acl/src/Acl.php(737): Zend\Permissions\Acl\Acl->getResource('Contribute\Cont...')
#1 /home/gainings/public_html/application/src/Permissions/Acl.php(87): Zend\Permissions\Acl\Acl->isAllowed(Object(Zend\Permissions\Acl\Role\GenericRole), 'Contribute\Cont...', 'expire-tokens')
#2 /home/gainings/public_html/application/src/View/Helper/UserIsAllowed.php(36): Omeka\Permissions\Acl->userIsAllowed('Contribute\Cont...', 'expire-tokens')
#3 [internal function]: Omeka\View\Helper\UserIsAllowed->__invoke('Contribute\Cont...', 'expire-tokens')
#4 /home/gainings/public_html/vendor/zendframework/zend-view/src/Renderer/PhpRenderer.php(397): call_user_func_array(Object(Omeka\View\Helper\UserIsAllowed), Array)
#5 /home/gainings/public_html/modules/Contribute/view/common/admin/contribute-list.phtml(37): Zend\View\Renderer\PhpRenderer->__call('userIsAllowed', Array)
#6 /home/gainings/public_html/vendor/zendframework/zend-view/src/Renderer/PhpRenderer.php(506): include('/home/gainings/...')
#7 /home/gainings/public_html/vendor/zendframework/zend-view/src/Helper/Partial.php(62): Zend\View\Renderer\PhpRenderer->render(NULL, Array)
#8 [internal function]: Zend\View\Helper\Partial->__invoke('common/admin/co...', Array)
#9 /home/gainings/public_html/vendor/zendframework/zend-view/src/Renderer/PhpRenderer.php(397): call_user_func_array(Object(Zend\View\Helper\Partial), Array)
#10 /home/gainings/public_html/modules/Contribute/Module.php(406): Zend\View\Renderer\PhpRenderer->__call('partial', Array)
#11 /home/gainings/public_html/vendor/zendframework/zend-eventmanager/src/EventManager.php(322): Contribute\Module->displayTab(Object(Zend\EventManager\Event))
#12 /home/gainings/public_html/vendor/zendframework/zend-eventmanager/src/EventManager.php(171): Zend\EventManager\EventManager->triggerListeners(Object(Zend\EventManager\Event))
#13 /home/gainings/public_html/application/src/View/Helper/Trigger.php(61): Zend\EventManager\EventManager->triggerEvent(Object(Zend\EventManager\Event))
#14 [internal function]: Omeka\View\Helper\Trigger->__invoke('view.show.after')
#15 /home/gainings/public_html/vendor/zendframework/zend-view/src/Renderer/PhpRenderer.php(397): call_user_func_array(Object(Omeka\View\Helper\Trigger), Array)
#16 /home/gainings/public_html/modules/Next/view/omeka/admin/item/show.phtml(95): Zend\View\Renderer\PhpRenderer->__call('trigger', Array)
#17 /home/gainings/public_html/vendor/zendframework/zend-view/src/Renderer/PhpRenderer.php(506): include('/home/gainings/...')
#18 /home/gainings/public_html/vendor/zendframework/zend-view/src/View.php(207): Zend\View\Renderer\PhpRenderer->render(NULL)
#19 /home/gainings/public_html/vendor/zendframework/zend-view/src/View.php(236): Zend\View\View->render(Object(Zend\View\Model\ViewModel))
#20 /home/gainings/public_html/vendor/zendframework/zend-view/src/View.php(200): Zend\View\View->renderChildren(Object(Zend\View\Model\ViewModel))
#21 /home/gainings/public_html/vendor/zendframework/zend-mvc/src/View/Http/DefaultRenderingStrategy.php(105): Zend\View\View->render(Object(Zend\View\Model\ViewModel))
#22 /home/gainings/public_html/vendor/zendframework/zend-eventmanager/src/EventManager.php(322): Zend\Mvc\View\Http\DefaultRenderingStrategy->render(Object(Zend\Mvc\MvcEvent))
#23 /home/gainings/public_html/vendor/zendframework/zend-eventmanager/src/EventManager.php(171): Zend\EventManager\EventManager->triggerListeners(Object(Zend\Mvc\MvcEvent))
#24 /home/gainings/public_html/vendor/zendframework/zend-mvc/src/Application.php(367): Zend\EventManager\EventManager->triggerEvent(Object(Zend\Mvc\MvcEvent))
#25 /home/gainings/public_html/vendor/zendframework/zend-mvc/src/Application.php(348): Zend\Mvc\Application->completeRequest(Object(Zend\Mvc\MvcEvent))
#26 /home/gainings/public_html/index.php(21): Zend\Mvc\Application->run()
#27 {main}

Finalizing select value resources?

Hello! I was wondering if there are any plans on finalizing the value resources and the select for resources (dynamic api query via chosen-select) stated in the to-do soon?

The module has been working really well for what we were looking for (much moreso than the Collecting module). The ability to use items as resources is the only main thing we are lacking and would like to implement.

Thanks for all your contributions to Omeka!

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.