VespApp

Activo

Creados 9 de mayo de 2025 a las 11:57
Actualizado 9 de mayo de 2025 a las 11:57

Este contenido fue subido al Observatorio por Ibercivis.

¿Eres responsable de este contenido? Escríbenos y te daremos acceso para editarlo o te traspasaremos su propiedad.

VespApp es una aplicación móvil desarrollada por la Universitat de les Illes Balears (UIB) que permite a la ciudadanía colaborar en la detección y control de la avispa asiática (Vespa velutina), una especie invasora que amenaza a las abejas melíferas y la biodiversidad local. A través de la app, los usuarios pueden enviar fotografías y ubicaciones de avistamientos, contribuyendo a la elaboración de mapas de distribución y estrategias de gestión.

Objetivo principal

Concienciar sobre la amenaza de la avispa asiática y facilitar su detección y control mediante la colaboración ciudadana.

Cómo participar

Descarga la aplicación VespApp desde tu tienda de aplicaciones, registra avistamientos de la avispa asiática tomando fotografías y proporcionando la ubicación, y envía la información a través de la app.

Equipamiento necesario

Smartphone con cámara y acceso a GPS.

Coordinador
Otras organizaciones implicadas
454 0

Este sitio web utiliza cookies — Utilizamos cookies para mantener tu sesión activa, recordar tu preferencia de idioma y recopilar estadísticas anónimas que nos ayudan a mejorar la plataforma. No se comparte ningún dato personal con terceros. Más información sobre cookies y privacidad

" no puede cerrar el bloque. var _currentEditors = JSON.parse(document.getElementById('cooperators-data').textContent || '[]'); if (typeof _currentEditors === 'string') { _currentEditors = JSON.parse(_currentEditors || '[]'); } _currentEditors.forEach(function(u) { var opt = new Option(u.name + ' (' + u.email + ')', u.email, true, true); $('#id_usersAllowed').append(opt); }); $('#id_usersAllowed').select2({ ajax: { url: '/usersForPermissionsSearch', dataType: 'json', delay: 300, data: function(params) { return {q: params.term}; }, processResults: function(data) { return {results: data.map(function(u) { return {id: u.email, text: u.name + ' (' + u.email + ')'}; })}; }, cache: true }, minimumInputLength: 2, allowClear: true }); if (_currentEditors.length) { $('#id_usersAllowed').trigger('change'); } // Handle like button $("#buttonLikeProject").on("click", function () { $.ajax({ type: 'POST', url: '/likeProjectAjax', data: { csrfmiddlewaretoken: 'IcbSbzkEVTvqowECL6FVwE01mpowuxx5pnycJsbFtUeQpYgRfwkDlD8B6JDUnOEO', project_id: '102' }, success: function (response) { var btn = $('#buttonLikeProject'); var val = btn.find('.value'); var count = parseInt(val.text(), 10); if (response.Liked === 'True') { btn.removeClass('text-muted').addClass('text-danger'); val.text(count + 1); } else { btn.removeClass('text-danger').addClass('text-muted'); val.text(Math.max(0, count - 1)); } } }); }); // Handle bookmark button $("#buttonBookmarkProject").on("click", function () { $.ajax({ type: 'POST', url: '/bookmarkProjectAjax', data: { csrfmiddlewaretoken: 'IcbSbzkEVTvqowECL6FVwE01mpowuxx5pnycJsbFtUeQpYgRfwkDlD8B6JDUnOEO', project_id: '102' }, success: function (response) { var btn = $('#buttonBookmarkProject'); if (response.Bookmarked === 'True') { btn.attr('bookmarked', 'True').removeClass('text-muted').addClass('text-primary'); } else { btn.attr('bookmarked', 'False').removeClass('text-primary').addClass('text-muted'); } }, error: function () { console.error("Failed to set bookmark status."); } }); }); // Handle changes in the usersAllowed selection $('#id_usersAllowed').on('change', function () { let selectedUsers = $("#id_usersAllowed option:selected").map(function () { return $.trim($(this).val()); }).get().join(','); $.ajax({ type: "POST", url: "/allowUser/", data: { "project_id": 102, "users": selectedUsers, csrfmiddlewaretoken: 'IcbSbzkEVTvqowECL6FVwE01mpowuxx5pnycJsbFtUeQpYgRfwkDlD8B6JDUnOEO' }, success: function (response) { console.log("User permissions updated."); }, error: function () { console.error("Failed to update user permissions."); } }); }); }); /** * Marks a project as Featured or Unfeatured. * @param {int} idProject - The project ID. * @param {boolean} featured - Whether the project should be featured. */ function setFeatured(idProject, featured) { $.ajax({ type: "POST", url: "/setFeatured/", data: { "project_id": idProject, "featured": featured, csrfmiddlewaretoken: 'IcbSbzkEVTvqowECL6FVwE01mpowuxx5pnycJsbFtUeQpYgRfwkDlD8B6JDUnOEO' }, success: function () { window.location.reload(false); }, error: function () { console.error("Failed to update featured status."); } }); } /** * Approves or unapproves a project. * @param {int} idProject - The project ID. * @param {boolean} approved - Whether the project should be approved. */ function setApproved(idProject, approved) { $.ajax({ type: "POST", url: "/setApproved/", data: { "project_id": idProject, "approved": approved, csrfmiddlewaretoken: 'IcbSbzkEVTvqowECL6FVwE01mpowuxx5pnycJsbFtUeQpYgRfwkDlD8B6JDUnOEO' }, success: function () { window.location.reload(false); if (!approved) { document.querySelector('.contact-creator-btn[data-group="project"]').click(); } }, error: function () { console.error("Failed to update approval status."); } }); }