diff --git a/.gitignore b/.gitignore index d093c4b3..12dfca6f 100644 --- a/.gitignore +++ b/.gitignore @@ -19,6 +19,7 @@ sdist/ *.egg-info/ .installed.cfg *.egg +*.eggs # PyInstaller # Usually these files are written by a python script from a template @@ -38,6 +39,12 @@ htmlcov/ nosetests.xml coverage.xml +# Translations +*.pot + +# Django stuff: +*.log + # Sphinx documentation docs/_build/ .env.local diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..ae69279b --- /dev/null +++ b/.travis.yml @@ -0,0 +1,27 @@ +sudo: required +language: python +group: deprecated-2017Q4 +python: + - "2.7" +env: + - CKANVERSION=2.5.6 POSTGISVERSION=2 + - CKANVERSION=2.6.3 POSTGISVERSION=2 + - CKANVERSION=2.7.0 POSTGISVERSION=2 + - CKANVERSION=2.8.3 POSTGISVERSION=2 +services: + - redis-server + - postgresql + - xvfb +addons: + firefox: "46.0" +install: + - bash bin/travis-build.bash +before_script: + - "export DISPLAY=:99.0" + - sleep 3 # give xvfb some time to start +script: + - sh bin/travis-run.sh +after_success: coveralls +branches: + only: + - develop diff --git a/README.md b/README.md index 5c2b5a2d..c77ed528 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ A custom CKAN extension for Data.Qld - [Pygmy](https://pygmy.readthedocs.io/) - [Ahoy](https://github.com/ahoy-cli/ahoy) - Make sure that all local web development services are shut down (Apache/Nginx, Mysql, MAMP etc). -- Checkout project repository (in one of the [supported Docker directories](https://docs.docker.com/docker-for-mac/osxfs/#access-control)). +- Checkout project repository (in one of the [supported Docker directories](https://docs.docker.com/docker-for-mac/osxfs/#access-control)). - `pygmy up` - `ahoy build` @@ -17,7 +17,7 @@ Use `admin`/`password` to login to CKAN. ## Available `ahoy` commands Run each command as `ahoy `. - ``` + ``` build Build or rebuild project. clean Remove containers and all build files. cli Start a shell inside CLI container or run a command. @@ -39,7 +39,7 @@ Run each command as `ahoy `. ``` ## Coding standards -Python code linting uses [flake8](https://github.com/PyCQA/flake8) with configuration captured in `.flake8` file. +Python code linting uses [flake8](https://github.com/PyCQA/flake8) with configuration captured in `.flake8` file. Set `ALLOW_LINT_FAIL=1` in `.env` to allow lint failures. @@ -61,16 +61,16 @@ Custom steps described in `test/features/steps/steps.py`. Test scenarios located in `test/features/*.feature` files. Test environment configuration is located in `test/features/environment.py` and is setup to connect to a remote Chrome -instance running in a separate Docker container. +instance running in a separate Docker container. During the test, Behaving passes connection information to [Splinter](https://github.com/cobrateam/splinter) which -instantiates WebDriver object and establishes connection with Chrome instance. All further communications with Chrome +instantiates WebDriver object and establishes connection with Chrome instance. All further communications with Chrome are handled through this driver, but in a developer-friendly way. For a list of supported step-definitions, see https://github.com/ggozad/behaving#behavingweb-supported-matcherssteps. ## Automated builds (Continuous Integration) -In software engineering, continuous integration (CI) is the practice of merging all developer working copies to a shared mainline several times a day. +In software engineering, continuous integration (CI) is the practice of merging all developer working copies to a shared mainline several times a day. Before feature changes can be merged into a shared mainline, a complete build must run and pass all tests on CI server. This project uses [Circle CI](https://circleci.com/) as a CI server: it imports production backups into fully built codebase and runs code linting and tests. When tests pass, a deployment process is triggered for nominated branches (usually, `master` and `develop`). @@ -79,3 +79,250 @@ Add `[skip ci]` to the commit subject to skip CI build. Useful for documentation ### SSH Circle CI supports shell access to the build for 120 minutes after the build is finished when the build is started with SSH support. Use "Rerun job with SSH" button in Circle CI UI to start build with SSH support. + +## Actions + +#### `update_datarequest(context, data_dict)` +Action to update a data request. The function checks the access rights of the user before updating the data request. If the user is not allowed, a `NotAuthorized` exception will be risen + +In addition, you should note that the parameters will be checked and an exception (`ValidationError`) will be risen if some of these parameters are not valid. + +##### Parameters (included in `data_dict`): +* **`id`** (string): the ID of the datarequest to be updated +* **`title`** (string): the updated title of the data request +* **`description`** (string): a updated brief description for your data request +* **`organization_id`** (string): The ID of the organization you want to asign the data request (optional). + +##### Returns: +A dict with the data request (`id`, `user_id`, `title`, `description`,`organization_id`, `open_time`, `accepted_dataset`, `close_time`, `closed`, `followers`). + + +#### `list_datarequests(context, data_dict)` +Returns a list with the existing data requests. Rights access will be checked before returning the results. If the user is not allowed, a `NotAuthorized` exception will be risen + +##### Parameters (included in `data_dict`): +* **`organization_id`** (string) (optional): to filter the result by organization +* **`user_id`** (string) (optional): to filter the result by user +* **`closed`** (string) (optional): to filter the result by state (`True`: Closed, `False`: Open) +* **`offset`** (int) (optional) (default `0`): the first element to be returned +* **`limit`** (int) (optional) (default `10`): The max number of data requests to be returned +* **`q`** (string) (optional): to filter the result using a free-text. +* **`sort`** (string) (optional) (default `asc`): `desc` to order data requests in a descending way. `asc` to order data requests in an ascending way. + +##### Returns: +A dict with three fields: `result` (a list of data requests), `facets` (a list of the facets that can be used) and `count` (the total number of existing data requests) + + +#### `delete_datarequest(context, data_dict)` +Action to delete a new data request. The function checks the access rights of the user before deleting the data request. If the user is not allowed, a `NotAuthorized` exception will be risen. + +##### Parameters (included in `data_dict`): +* **`id`** (string): the ID of the datarequest to be deleted + +##### Returns: +A dict with the data request (`id`, `user_id`, `title`, `description`,`organization_id`, `open_time`, `accepted_dataset`, `close_time`, `closed`, `followers`). + + +#### `close_datarequest(context, data_dict)` +Action to close a data request. Access rights will be checked before closing the data request. If the user is not allowed, a `NotAuthorized` exception will be risen + +##### Parameters (included in `data_dict`): +* **`id`** (string): the ID of the datarequest to be closed +* **`accepted_dataset`** (string): The ID of the dataset accepted as solution for the data request + +##### Returns: +A dict with the data request (`id`, `user_id`, `title`, `description`,`organization_id`, `open_time`, `accepted_dataset`, `close_time`, `closed`, `followers`). + + +#### `comment_datarequest(context, data_dict)` +Action to create a comment in a data request. Access rights will be checked before creating the comment and a `NotAuthorized` exception will be risen if the user is not allowed to create the comment + +##### Parameters (included in `data_dict`): +* **`datarequest_id`** (string): the ID of the datarequest to be commented +* **`comment`** (string): The comment to be added to the data request + +##### Returns: +A dict with the data request comment (`id`, `user_id`, `datarequest_id`, `time` and `comment`) + + +#### `show_datarequest_comment(context, data_dict)` +Action to retrieve a comment. Access rights will be checked before getting the comment and a `NotAuthorized` exception will be risen if the user is not allowed to get the comment + +##### Parameters (included in `data_dict`): +* **`id`** (string): The ID of the comment to be retrieved + +##### Returns: +A dict with the following fields: `id`, `user_id`, `datarequest_id`, `time` and `comment` + + +#### `list_datarequest_comments(context, data_dict)` +Action to retrieve all the comments of a data request. Access rights will be checked before getting the comments and a `NotAuthorized` exception will be risen if the user is not allowed to read the comments + +##### Parameters (included in `data_dict`): +* **`datarequest_id`** (string): The ID of the datarequest whose comments want to be retrieved +* **`sort`** (string) (optional) (default `asc`): `desc` to order comments in a descending way. `asc` to order comments in an ascending way. + +##### Returns: + A list with all the comments of a data request. Every comment is a dict with the following fields: `id`, `user_id`, `datarequest_id`, `time` and `comment` + + +#### `update_datarequest_comment(context, data_dict)` +Action to update a comment of a data request. Access rights will be checked before updating the comment and a `NotAuthorized` exception will be risen if the user is not allowed to update the comment + +##### Parameters (included in `data_dict`): +* **`id`** (string): The ID of the comment to be updated +* **`comment`** (string): The new comment + +##### Returns: +A dict with the data request comment (`id`, `user_id`, `datarequest_id`, `time` and `comment`) + + +#### `delete_datarequest_comment(context, data_dict)` +Action to delete a comment of a data request. Access rights will be checked before deleting the comment and a `NotAuthorized` exception will be risen if the user is not allowed to delete the comment + +##### Parameters (included in `data_dict`): +* **`id`** (string): The ID of the comment to be deleted + +##### Returns: +A dict with the data request comment (`id`, `user_id`, `datarequest_id`, `time` and `comment`) + +#### `follow_datarequest(context, data_dict)` + +Action to follow a data request. Access rights will be cheked before following a datarequest and a `NotAuthorized` exception will be risen if the user is not allowed to follow the given datarequest. `ValidationError` will be risen if the datarequest ID is not included or if the user is already following the datarequest. `ObjectNotFound` will be risen if the given datarequest does not exist. + +##### Parameters (included in `data_dict`): +* **`id`** (string): The ID of the datarequest to be followed + +##### Returns: +`True` + +#### `unfollow_datarequest(context, data_dict)` + +Action to unfollow a data request. Access rights will be cheked before unfollowing a datarequest and a NotAuthorized exception will be risen if the user is not allowed to unfollow the given datarequest. `ValidationError` will be risen if the datarequest ID is not included in the request. `ObjectNotFound` will be risen if the user is not following the given datarequest. + +##### Parameters (included in `data_dict`): +* **`id`** (string): The ID of the datarequest to be unfollowed + +##### Returns: +`True` + + +## Installation + +Install this extension in your CKAN instance is as easy as installing any other CKAN extension. + +* Activate your virtual environment +``` +. /usr/lib/ckan/default/bin/activate +``` +* Install the extension +``` +pip install 'git+https://github.com/qld-gov-au/ckanext-datarequests.git#egg=ckanext-datarequests' +``` +> **Note**: If you prefer, you can download the source code as well and install in 'develop' mode for easy editing. To do so, use the '-e' flag: +> ``` +> pip install -e 'git+https://github.com/qld-gov-au/ckanext-datarequests.git#egg=ckanext-datarequests' +> ``` + +* Modify your configuration file (generally in `/etc/ckan/default/production.ini`) and add `datarequests` in the `ckan.plugins` property. +``` +ckan.plugins = datarequests +``` +* Enable or disable the comments system by setting up the `ckan.datarequests.comments` property in the configuration file (by default, the comments system is enabled). +``` +ckan.datarequests.comments = [true|false] +``` +* Enable or disable a badge to show the number of data requests in the menu by setting up the `ckan.datarequests.show_datarequests_badge` property in the configuration file (by default, the badge is not shown). +``` +ckan.datarequests.show_datarequests_badge = [true|false] +``` +* Enable or disable description as a required field on data request forms. False by default +``` +ckan.datarequests.description_required = [True|False] +``` +* Restart your apache2 reserver +``` +sudo service apache2 restart +``` +* That's All! + +## Translations + +Help us to translate this extension so everyone can create data requests. Currently, the extension is translated to English, Spanish, German, French, Somali, Romanian and Brazilian Portuguese. If you want to contribute with your translation, the first step is to clone this repo and move to the `develop` branch. Then, create the locale for your translation by executing: + +``` +python setup.py init_catalog -l +``` + +This will generate a file called `i18n/YOUR_LOCALE/LC_MESSAGES/ckanext-datarequests.po`. This file contains all the untranslated strings. You can manually add a translation for it by editing the `msgstr` section: + +``` +msgid "This is an untranslated string" +msgstr "This is a itranslated string" +``` + +Once the translation files (`po`) have been updated, compile them by running: + +``` +python setup.py compile_catalog +``` + +This will generate the required `mo` file. Once this file has been generated, commit your changes and create a Pull Request (to the `develop` branch). + +## Tests + +This sofware contains a set of test to detect errors and failures. You can run this tests by running the following command (this command will generate coverage reports): +``` +python setup.py nosetests +``` +**Note:** The `test.ini` file contains a link to the CKAN `test-core.ini` file. You will need to change that link to the real path of the file in your system (generally `/usr/lib/ckan/default/src/ckan/test-core.ini`). + +**Note 2:** When creating a PR that includes code changes, please, ensure your new code is tested. No PR will be merged until the Travis CI system marks it as valid. + +## Changelog + +### v1.2.0 (UNRELEASED) + +* New: French translations (thanks to @bobeal) +* New: Romanian translations (thanks to @costibleotu) +* New: Option to force users to introduce a request description (thanks to @MarkCalvert) +* Fix: Documentation fixes (thanks to @nykc) +* Fix: Datarequests creation and closing times displayed incorrectly (thanks to @iamarnavgarg) + +### v1.1.0 + +* New: Compatibility with CKAN 2.8.0 +* New: Somali translation (thanks to @SimuliChina) + +### v1.0.0 + +* New: Option to follow data requests. +* New: Email notifications: + * An email will be sent to organization staff when a data request is created in a organization. + * An email will be sent to followers, people that commented, datarequest creator and organization staff when a comment in a datarequest is created. + * An email will be sent to followers, people that commented, datarequest creator and organization staff when a data request is closed. +* New: Major API changes: + * `datarequest_create` :arrow_right: `create_datarequest` + * `datarequest_show` :arrow_right: `show_datarequest` + * `datarequest_update` :arrow_right: `update_datarequest` + * `datarequest_index` :arrow_right: `list_datarequests` + * `datarequest_delete` :arrow_right: `delete_datarequest` + * `datarequest_close` :arrow_right: `close_datarequest` + * `datarequest_comment` :arrow_right: `comment_datarequest` + * `datarequest_comment_show` :arrow_right: `show_datarequest_comment` + * `datarequest_comment_list` :arrow_right: `list_datarequest_comments` + * `datarequest_comment_update` :arrow_right: `update_datarequest_comment` + * `datarequest_comment_delete` :arrow_right: `delete_datarequest_comment` + +### v0.4.1 + +* New: Brazilian Portuguese translation (thanks to @allysonbarros) + +### v0.4.0 + +* New: Move CI to Travis +* New: Compatibility with CKAN 2.7 (controller adapted by @owl17) + +### v0.3.3 + +* New: German Translation (thanks to @kvlahrosch) diff --git a/bin/travis-build.bash b/bin/travis-build.bash new file mode 100644 index 00000000..fdbc3548 --- /dev/null +++ b/bin/travis-build.bash @@ -0,0 +1,43 @@ +#!/bin/bash +set -e + +echo "This is travis-build.bash..." + +echo "Installing the packages that CKAN requires..." +sudo apt-get update -qq +sudo apt-get install solr-jetty + +echo "Installing CKAN and its Python dependencies..." +git clone https://github.com/ckan/ckan +cd ckan +git checkout ckan-$CKANVERSION +python setup.py develop +pip install -r requirements.txt +pip install -r dev-requirements.txt +cd - + +echo "Setting up Solr..." +# solr is multicore for tests on ckan master now, but it's easier to run tests +# on Travis single-core still. +# see https://github.com/ckan/ckan/issues/2972 +sed -i -e 's/solr_url.*/solr_url = http:\/\/127.0.0.1:8983\/solr/' ckan/test-core.ini +printf "NO_START=0\nJETTY_HOST=127.0.0.1\nJETTY_PORT=8983\nJAVA_HOME=$JAVA_HOME" | sudo tee /etc/default/jetty8 +sudo cp ckan/ckan/config/solr/schema.xml /etc/solr/conf/schema.xml +sudo service jetty8 restart + +echo "Creating the PostgreSQL user and database..." +sudo -u postgres psql -c "CREATE USER ckan_default WITH PASSWORD 'pass';" +sudo -u postgres psql -c "CREATE USER datastore_default WITH PASSWORD 'pass';" +sudo -u postgres psql -c "CREATE DATABASE ckan_test WITH OWNER ckan_default;" +sudo -u postgres psql -c "CREATE DATABASE datastore_test WITH OWNER ckan_default;" + + +echo "Initialising the database..." +cd ckan +paster db init -c test-core.ini +cd - + +echo "Installing ckanext-datarequests and its requirements..." +python setup.py develop + +echo "travis-build.bash is done." diff --git a/ckanext/datarequests/i18n/ckanext-datarequests.pot b/ckanext/datarequests/i18n/ckanext-datarequests.pot index 290de903..cf20e5ba 100644 --- a/ckanext/datarequests/i18n/ckanext-datarequests.pot +++ b/ckanext/datarequests/i18n/ckanext-datarequests.pot @@ -1,53 +1,63 @@ # Translations template for ckanext-datarequests. -# Copyright (C) 2016 ORGANIZATION +# Copyright (C) 2019 ORGANIZATION # This file is distributed under the same license as the ckanext-datarequests # project. -# FIRST AUTHOR , 2016. +# FIRST AUTHOR , 2019. # #, fuzzy msgid "" msgstr "" -"Project-Id-Version: ckanext-datarequests 0.3.1\n" +"Project-Id-Version: ckanext-datarequests 1.1.0\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2016-04-28 14:45+0200\n" +"POT-Creation-Date: 2019-12-14 14:25+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 0.9.6\n" +"Generated-By: Babel 2.3.4\n" -#: ckanext/datarequests/actions.py:192 ckanext/datarequests/actions.py:244 -#: ckanext/datarequests/actions.py:435 ckanext/datarequests/actions.py:480 -#: ckanext/datarequests/actions.py:536 ckanext/datarequests/actions.py:624 +#: ckanext/datarequests/actions.py:251 ckanext/datarequests/actions.py:304 +#: ckanext/datarequests/actions.py:496 ckanext/datarequests/actions.py:542 +#: ckanext/datarequests/actions.py:604 ckanext/datarequests/actions.py:696 +#: ckanext/datarequests/actions.py:830 ckanext/datarequests/actions.py:881 msgid "Data Request ID has not been included" msgstr "" -#: ckanext/datarequests/actions.py:203 ckanext/datarequests/actions.py:255 -#: ckanext/datarequests/actions.py:446 ckanext/datarequests/actions.py:491 +#: ckanext/datarequests/actions.py:262 ckanext/datarequests/actions.py:315 +#: ckanext/datarequests/actions.py:507 ckanext/datarequests/actions.py:553 +#: ckanext/datarequests/actions.py:841 #, python-format msgid "Data Request %s not found in the data base" msgstr "" -#: ckanext/datarequests/actions.py:500 +#: ckanext/datarequests/actions.py:562 msgid "This Data Request is already closed" msgstr "" -#: ckanext/datarequests/actions.py:578 ckanext/datarequests/actions.py:671 -#: ckanext/datarequests/actions.py:717 +#: ckanext/datarequests/actions.py:650 ckanext/datarequests/actions.py:743 +#: ckanext/datarequests/actions.py:789 msgid "Comment ID has not been included" msgstr "" -#: ckanext/datarequests/actions.py:589 ckanext/datarequests/actions.py:682 -#: ckanext/datarequests/actions.py:728 +#: ckanext/datarequests/actions.py:661 ckanext/datarequests/actions.py:754 +#: ckanext/datarequests/actions.py:800 #, python-format msgid "Comment %s not found in the data base" msgstr "" +#: ckanext/datarequests/actions.py:847 +msgid "The user is already following the given Data Request" +msgstr "" + +#: ckanext/datarequests/actions.py:893 +msgid "The user is not following the given Data Request" +msgstr "" + +#: ckanext/datarequests/templates/datarequests/snippets/datarequest_form.html:18 #: ckanext/datarequests/validator.py:31 ckanext/datarequests/validator.py:34 #: ckanext/datarequests/validator.py:41 -#: ckanext/datarequests/templates/datarequests/snippets/datarequest_form.html:17 msgid "Title" msgstr "" @@ -64,8 +74,8 @@ msgstr "" msgid "That title is already in use" msgstr "" +#: ckanext/datarequests/templates/datarequests/snippets/datarequest_form.html:22 #: ckanext/datarequests/validator.py:45 -#: ckanext/datarequests/templates/datarequests/snippets/datarequest_form.html:21 msgid "Description" msgstr "" @@ -74,9 +84,9 @@ msgstr "" msgid "Description must be a maximum of %d characters long" msgstr "" -#: ckanext/datarequests/validator.py:52 #: ckanext/datarequests/templates/datarequests/snippets/additional_info.html:11 -#: ckanext/datarequests/templates/datarequests/snippets/datarequest_form.html:25 +#: ckanext/datarequests/templates/datarequests/snippets/datarequest_form.html:26 +#: ckanext/datarequests/validator.py:52 msgid "Organization" msgstr "" @@ -84,8 +94,8 @@ msgstr "" msgid "Organization is not valid" msgstr "" -#: ckanext/datarequests/validator.py:65 #: ckanext/datarequests/templates/datarequests/snippets/additional_info.html:24 +#: ckanext/datarequests/validator.py:65 msgid "Accepted Dataset" msgstr "" @@ -93,9 +103,9 @@ msgstr "" msgid "Dataset not found" msgstr "" -#: ckanext/datarequests/validator.py:75 #: ckanext/datarequests/templates/datarequests/base.html:17 #: ckanext/datarequests/templates/datarequests/show.html:25 +#: ckanext/datarequests/validator.py:75 msgid "Data Request" msgstr "" @@ -143,83 +153,83 @@ msgstr "" msgid "Unauthorized to list Data Requests" msgstr "" -#: ckanext/datarequests/controllers/ui_controller.py:210 +#: ckanext/datarequests/controllers/ui_controller.py:209 msgid "Unauthorized to create a Data Request" msgstr "" -#: ckanext/datarequests/controllers/ui_controller.py:225 -#: ckanext/datarequests/controllers/ui_controller.py:248 -#: ckanext/datarequests/controllers/ui_controller.py:265 -#: ckanext/datarequests/controllers/ui_controller.py:334 -#: ckanext/datarequests/controllers/ui_controller.py:401 +#: ckanext/datarequests/controllers/ui_controller.py:224 +#: ckanext/datarequests/controllers/ui_controller.py:247 +#: ckanext/datarequests/controllers/ui_controller.py:264 +#: ckanext/datarequests/controllers/ui_controller.py:332 +#: ckanext/datarequests/controllers/ui_controller.py:399 #, python-format msgid "Data Request %s not found" msgstr "" -#: ckanext/datarequests/controllers/ui_controller.py:228 +#: ckanext/datarequests/controllers/ui_controller.py:227 #, python-format msgid "You are not authorized to view the Data Request %s" msgstr "" -#: ckanext/datarequests/controllers/ui_controller.py:251 +#: ckanext/datarequests/controllers/ui_controller.py:250 #, python-format msgid "You are not authorized to update the Data Request %s" msgstr "" -#: ckanext/datarequests/controllers/ui_controller.py:261 -#: ckanext/datarequests/tests/test_ui_controller.py:672 +#: ckanext/datarequests/controllers/ui_controller.py:260 +#: ckanext/datarequests/tests/test_ui_controller.py:673 #, python-format msgid "Data Request %s has been deleted" msgstr "" -#: ckanext/datarequests/controllers/ui_controller.py:268 +#: ckanext/datarequests/controllers/ui_controller.py:267 #, python-format msgid "You are not authorized to delete the Data Request %s" msgstr "" -#: ckanext/datarequests/controllers/ui_controller.py:316 +#: ckanext/datarequests/controllers/ui_controller.py:315 msgid "This data request is already closed" msgstr "" -#: ckanext/datarequests/controllers/ui_controller.py:337 +#: ckanext/datarequests/controllers/ui_controller.py:335 #, python-format msgid "You are not authorized to close the Data Request %s" msgstr "" -#: ckanext/datarequests/controllers/ui_controller.py:366 +#: ckanext/datarequests/controllers/ui_controller.py:364 msgid "Comment has been published" msgstr "" -#: ckanext/datarequests/controllers/ui_controller.py:368 +#: ckanext/datarequests/controllers/ui_controller.py:366 msgid "Comment has been updated" msgstr "" -#: ckanext/datarequests/controllers/ui_controller.py:374 +#: ckanext/datarequests/controllers/ui_controller.py:372 #, python-format msgid "You are not authorized to %s" msgstr "" -#: ckanext/datarequests/controllers/ui_controller.py:405 +#: ckanext/datarequests/controllers/ui_controller.py:403 #, python-format msgid "You are not authorized to list the comments of the Data Request %s" msgstr "" -#: ckanext/datarequests/controllers/ui_controller.py:414 +#: ckanext/datarequests/controllers/ui_controller.py:412 msgid "Comment has been deleted" msgstr "" -#: ckanext/datarequests/controllers/ui_controller.py:419 +#: ckanext/datarequests/controllers/ui_controller.py:416 #, python-format msgid "Comment %s not found" msgstr "" -#: ckanext/datarequests/controllers/ui_controller.py:422 +#: ckanext/datarequests/controllers/ui_controller.py:419 msgid "You are not authorized to delete this comment" msgstr "" #: ckanext/datarequests/templates/header.html:5 #: ckanext/datarequests/templates/organization/read_base.html:4 -#: ckanext/datarequests/templates/user/read_base.html:4 +#: ckanext/datarequests/templates/user/read_base.html:7 msgid "Datasets" msgstr "" @@ -227,15 +237,15 @@ msgstr "" msgid "Groups" msgstr "" -#: ckanext/datarequests/templates/header.html:8 #: ckanext/datarequests/templates/datarequests/base.html:8 #: ckanext/datarequests/templates/datarequests/base.html:11 #: ckanext/datarequests/templates/datarequests/close.html:6 #: ckanext/datarequests/templates/datarequests/edit.html:6 #: ckanext/datarequests/templates/datarequests/new.html:6 #: ckanext/datarequests/templates/datarequests/show.html:8 +#: ckanext/datarequests/templates/header.html:8 #: ckanext/datarequests/templates/organization/read_base.html:6 -#: ckanext/datarequests/templates/user/read_base.html:6 +#: ckanext/datarequests/templates/user/read_base.html:9 msgid "Data Requests" msgstr "" @@ -255,7 +265,7 @@ msgstr "" #: ckanext/datarequests/templates/datarequests/close.html:3 #: ckanext/datarequests/templates/datarequests/close.html:8 #: ckanext/datarequests/templates/datarequests/close.html:12 -#: ckanext/datarequests/templates/datarequests/snippets/close_datarequest_form.html:25 +#: ckanext/datarequests/templates/datarequests/snippets/close_datarequest_form.html:26 msgid "Close Data Request" msgstr "" @@ -284,7 +294,7 @@ msgstr "" #: ckanext/datarequests/templates/datarequests/new.html:3 #: ckanext/datarequests/templates/datarequests/new.html:7 #: ckanext/datarequests/templates/datarequests/new.html:11 -#: ckanext/datarequests/templates/datarequests/snippets/datarequest_form.html:47 +#: ckanext/datarequests/templates/datarequests/snippets/datarequest_form.html:48 #: ckanext/datarequests/templates/datarequests/snippets/new_datarequest_form.html:7 msgid "Create Data Request" msgstr "" @@ -338,7 +348,7 @@ msgstr "" msgid "Not closed yet" msgstr "" -#: ckanext/datarequests/templates/datarequests/snippets/close_datarequest_form.html:11 +#: ckanext/datarequests/templates/datarequests/snippets/close_datarequest_form.html:12 msgid "Accep. Dataset" msgstr "" @@ -383,23 +393,23 @@ msgstr "" msgid "This data request has not been commented yet" msgstr "" -#: ckanext/datarequests/templates/datarequests/snippets/datarequest_form.html:17 +#: ckanext/datarequests/templates/datarequests/snippets/datarequest_form.html:18 msgid "eg. Data Request Name" msgstr "" -#: ckanext/datarequests/templates/datarequests/snippets/datarequest_form.html:21 +#: ckanext/datarequests/templates/datarequests/snippets/datarequest_form.html:22 msgid "eg. Data Request description" msgstr "" -#: ckanext/datarequests/templates/datarequests/snippets/datarequest_form.html:29 +#: ckanext/datarequests/templates/datarequests/snippets/datarequest_form.html:30 msgid "No organization" msgstr "" -#: ckanext/datarequests/templates/datarequests/snippets/datarequest_form.html:43 +#: ckanext/datarequests/templates/datarequests/snippets/datarequest_form.html:44 msgid "Are you sure you want to delete this data request?" msgstr "" -#: ckanext/datarequests/templates/datarequests/snippets/datarequest_form.html:44 +#: ckanext/datarequests/templates/datarequests/snippets/datarequest_form.html:45 msgid "Delete" msgstr "" @@ -419,52 +429,20 @@ msgstr "" msgid "Update Data Request" msgstr "" -#: ckanext/datarequests/templates/home/snippets/stats.html:5 -msgid "{0} statistics" -msgstr "" - -#: ckanext/datarequests/templates/home/snippets/stats.html:10 -msgid "dataset" -msgstr "" - -#: ckanext/datarequests/templates/home/snippets/stats.html:10 -msgid "datasets" -msgstr "" - -#: ckanext/datarequests/templates/home/snippets/stats.html:16 -msgid "organization" -msgstr "" - -#: ckanext/datarequests/templates/home/snippets/stats.html:16 -msgid "organizations" -msgstr "" - -#: ckanext/datarequests/templates/home/snippets/stats.html:22 -msgid "group" -msgstr "" - -#: ckanext/datarequests/templates/home/snippets/stats.html:22 -msgid "groups" -msgstr "" - -#: ckanext/datarequests/templates/home/snippets/stats.html:28 -msgid "related item" -msgstr "" - -#: ckanext/datarequests/templates/home/snippets/stats.html:28 -msgid "related items" +#: ckanext/datarequests/templates/datarequests/snippets/followers.html:11 +msgid "Followers" msgstr "" -#: ckanext/datarequests/templates/home/snippets/stats.html:34 -msgid "data request" +#: ckanext/datarequests/templates/datarequests/snippets/followers.html:22 +msgid "Unfollow" msgstr "" -#: ckanext/datarequests/templates/home/snippets/stats.html:34 -msgid "data requests" +#: ckanext/datarequests/templates/datarequests/snippets/followers.html:27 +msgid "Follow" msgstr "" #: ckanext/datarequests/templates/organization/read_base.html:5 -#: ckanext/datarequests/templates/user/read_base.html:5 +#: ckanext/datarequests/templates/user/read_base.html:8 msgid "Activity Stream" msgstr "" diff --git a/ckanext/datarequests/i18n/ro/LC_MESSAGES/ckanext-datarequests.mo b/ckanext/datarequests/i18n/ro/LC_MESSAGES/ckanext-datarequests.mo new file mode 100644 index 00000000..a84442be Binary files /dev/null and b/ckanext/datarequests/i18n/ro/LC_MESSAGES/ckanext-datarequests.mo differ diff --git a/ckanext/datarequests/i18n/ro/LC_MESSAGES/ckanext-datarequests.po b/ckanext/datarequests/i18n/ro/LC_MESSAGES/ckanext-datarequests.po new file mode 100644 index 00000000..26672888 --- /dev/null +++ b/ckanext/datarequests/i18n/ro/LC_MESSAGES/ckanext-datarequests.po @@ -0,0 +1,508 @@ +# Romanian translations for ckanext-datarequests. +# Copyright (C) 2016 ORGANIZATION +# This file is distributed under the same license as the +# ckanext-datarequests +# project. +# FIRST AUTHOR , 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: ckanext-datarequests 0.3.1\n" +"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" +"POT-Creation-Date: 2016-04-28 14:45+0200\n" +"PO-Revision-Date: 2019-12-14 15:49+0200\n" +"Language: ro\n" +"Language-Team: ro \n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 " +"< 20)) ? 1 : 2);\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.3.4\n" +"Last-Translator: \n" +"X-Generator: Poedit 2.2.4\n" + +#: ckanext/datarequests/actions.py:192 ckanext/datarequests/actions.py:244 +#: ckanext/datarequests/actions.py:435 ckanext/datarequests/actions.py:480 +#: ckanext/datarequests/actions.py:536 ckanext/datarequests/actions.py:624 +msgid "Data Request ID has not been included" +msgstr "ID-ul cererii nu a fost inclus" + +#: ckanext/datarequests/actions.py:203 ckanext/datarequests/actions.py:255 +#: ckanext/datarequests/actions.py:446 ckanext/datarequests/actions.py:491 +#, python-format +msgid "Data Request %s not found in the data base" +msgstr "Cererea %s nu a fost găsită in baza de date" + +#: ckanext/datarequests/actions.py:500 +msgid "This Data Request is already closed" +msgstr "Această cerere a fost deja închisă" + +#: ckanext/datarequests/actions.py:578 ckanext/datarequests/actions.py:671 +#: ckanext/datarequests/actions.py:717 +msgid "Comment ID has not been included" +msgstr "ID-ul comentariului nu a fost inclus" + +#: ckanext/datarequests/actions.py:589 ckanext/datarequests/actions.py:682 +#: ckanext/datarequests/actions.py:728 +#, python-format +msgid "Comment %s not found in the data base" +msgstr "Comentariul %s nu a fost găsit in baza de date" + +#: ckanext/datarequests/templates/datarequests/snippets/datarequest_form.html:17 +#: ckanext/datarequests/validator.py:31 ckanext/datarequests/validator.py:34 +#: ckanext/datarequests/validator.py:41 +msgid "Title" +msgstr "Titlu" + +#: ckanext/datarequests/validator.py:31 +#, python-format +msgid "Title must be a maximum of %d characters long" +msgstr "Titlul trebuie sa aibe maxim %d caracterre" + +#: ckanext/datarequests/validator.py:34 +msgid "Title cannot be empty" +msgstr "Titlu nu poate fi nul" + +#: ckanext/datarequests/validator.py:41 +msgid "That title is already in use" +msgstr "Aceest titlu este deja folosit" + +#: ckanext/datarequests/templates/datarequests/snippets/datarequest_form.html:21 +#: ckanext/datarequests/validator.py:45 +msgid "Description" +msgstr "Descriere" + +#: ckanext/datarequests/validator.py:45 +#, python-format +msgid "Description must be a maximum of %d characters long" +msgstr "Descrierea trebuie sa aibe maxim %d caractere" + +#: ckanext/datarequests/templates/datarequests/snippets/additional_info.html:11 +#: ckanext/datarequests/templates/datarequests/snippets/datarequest_form.html:25 +#: ckanext/datarequests/validator.py:52 +msgid "Organization" +msgstr "Organizație" + +#: ckanext/datarequests/validator.py:52 +msgid "Organization is not valid" +msgstr "Organizația un este validă" + +#: ckanext/datarequests/templates/datarequests/snippets/additional_info.html:24 +#: ckanext/datarequests/validator.py:65 +msgid "Accepted Dataset" +msgstr "Set de date acceptat" + +#: ckanext/datarequests/validator.py:65 +msgid "Dataset not found" +msgstr "Setul de date nu a fost găsit" + +#: ckanext/datarequests/templates/datarequests/base.html:17 +#: ckanext/datarequests/templates/datarequests/show.html:25 +#: ckanext/datarequests/validator.py:75 +msgid "Data Request" +msgstr "Cerere de Date" + +#: ckanext/datarequests/validator.py:75 +msgid "Data Request not found" +msgstr "Cererea de date nu a fost găsită" + +#: ckanext/datarequests/validator.py:78 ckanext/datarequests/validator.py:81 +msgid "Comment" +msgstr "Comentariu" + +#: ckanext/datarequests/validator.py:78 +msgid "Comments must be a minimum of 1 character long" +msgstr "Comentariile trebuie să aibe minim un caracter" + +#: ckanext/datarequests/validator.py:81 +#, python-format +msgid "Comments must be a maximum of %d characters long" +msgstr "Comentariile trebuie sa aibe maxim %d caractere" + +#: ckanext/datarequests/controllers/ui_controller.py:129 +msgid "Newest" +msgstr "Cele mai recente" + +#: ckanext/datarequests/controllers/ui_controller.py:129 +msgid "Oldest" +msgstr "Cele mai vechi" + +#: ckanext/datarequests/controllers/ui_controller.py:145 +#: ckanext/datarequests/tests/test_ui_controller.py:628 +msgid "State" +msgstr "Stare" + +#: ckanext/datarequests/controllers/ui_controller.py:150 +#: ckanext/datarequests/templates/header.html:6 +#: ckanext/datarequests/tests/test_ui_controller.py:630 +msgid "Organizations" +msgstr "Organizații" + +#: ckanext/datarequests/controllers/ui_controller.py:156 +msgid "\"page\" parameter must be an integer" +msgstr "parametrul “page” trebuie sa fie de tip integer" + +#: ckanext/datarequests/controllers/ui_controller.py:159 +msgid "Unauthorized to list Data Requests" +msgstr "Neautorizat pentru listarea de cereri de date" + +#: ckanext/datarequests/controllers/ui_controller.py:210 +msgid "Unauthorized to create a Data Request" +msgstr "Neautorizat pentru crearea de cereri de date" + +#: ckanext/datarequests/controllers/ui_controller.py:225 +#: ckanext/datarequests/controllers/ui_controller.py:248 +#: ckanext/datarequests/controllers/ui_controller.py:265 +#: ckanext/datarequests/controllers/ui_controller.py:334 +#: ckanext/datarequests/controllers/ui_controller.py:401 +#, python-format +msgid "Data Request %s not found" +msgstr "Cererea de date %s nu a fost găsită" + +#: ckanext/datarequests/controllers/ui_controller.py:228 +#, python-format +msgid "You are not authorized to view the Data Request %s" +msgstr "Nu ești autorizat să vizualizezi cererea de date %s" + +#: ckanext/datarequests/controllers/ui_controller.py:251 +#, python-format +msgid "You are not authorized to update the Data Request %s" +msgstr "Nu ești autorizat să actualizezi cererea de date %s" + +#: ckanext/datarequests/controllers/ui_controller.py:261 +#: ckanext/datarequests/tests/test_ui_controller.py:672 +#, python-format +msgid "Data Request %s has been deleted" +msgstr "Cererea de date %s a fost ștearsă" + +#: ckanext/datarequests/controllers/ui_controller.py:268 +#, python-format +msgid "You are not authorized to delete the Data Request %s" +msgstr "Nu ești autorizat să ștergi cererea de date %s" + +#: ckanext/datarequests/controllers/ui_controller.py:316 +msgid "This data request is already closed" +msgstr "Cererea este deja închisă" + +#: ckanext/datarequests/controllers/ui_controller.py:337 +#, python-format +msgid "You are not authorized to close the Data Request %s" +msgstr "Nu ești autorizat sa închizi cererea de date %s" + +#: ckanext/datarequests/controllers/ui_controller.py:366 +msgid "Comment has been published" +msgstr "Comentariul a fost publicat" + +#: ckanext/datarequests/controllers/ui_controller.py:368 +msgid "Comment has been updated" +msgstr "Comentariul a fost actualizat" + +#: ckanext/datarequests/controllers/ui_controller.py:374 +#, python-format +msgid "You are not authorized to %s" +msgstr "Nu ești autorizat să %s" + +#: ckanext/datarequests/controllers/ui_controller.py:405 +#, python-format +msgid "You are not authorized to list the comments of the Data Request %s" +msgstr "Nu ești autorizat să listezi comentariile pentru cererea %s" + +#: ckanext/datarequests/controllers/ui_controller.py:414 +msgid "Comment has been deleted" +msgstr "Comentariul a fost șters" + +#: ckanext/datarequests/controllers/ui_controller.py:419 +#, python-format +msgid "Comment %s not found" +msgstr "Comentariul %s nu a fost găsit" + +#: ckanext/datarequests/controllers/ui_controller.py:422 +msgid "You are not authorized to delete this comment" +msgstr "Nu ești autorizat să ștergi acest comentariu" + +#: ckanext/datarequests/templates/header.html:5 +#: ckanext/datarequests/templates/organization/read_base.html:4 +#: ckanext/datarequests/templates/user/read_base.html:4 +msgid "Datasets" +msgstr "Seturi de date" + +#: ckanext/datarequests/templates/header.html:7 +msgid "Groups" +msgstr "Grupuri" + +#: ckanext/datarequests/templates/datarequests/base.html:8 +#: ckanext/datarequests/templates/datarequests/base.html:11 +#: ckanext/datarequests/templates/datarequests/close.html:6 +#: ckanext/datarequests/templates/datarequests/edit.html:6 +#: ckanext/datarequests/templates/datarequests/new.html:6 +#: ckanext/datarequests/templates/datarequests/show.html:8 +#: ckanext/datarequests/templates/header.html:8 +#: ckanext/datarequests/templates/organization/read_base.html:6 +#: ckanext/datarequests/templates/user/read_base.html:6 +msgid "Data Requests" +msgstr "Cereri de date" + +#: ckanext/datarequests/templates/header.html:9 +#: ckanext/datarequests/templates/organization/read_base.html:7 +msgid "About" +msgstr "Despree" + +#: ckanext/datarequests/templates/datarequests/base.html:20 +msgid "" +"Data Requests allow users to ask for data that is not published in the " +"platform yet. If you want some specific data and you are not able to find " +"it among all the published datasets, you can create a new data request " +"specifying the data than you want to get." +msgstr "" +"Cererile de date permit utilizatorilor să ceara date care încă nu au fost " +"publicate pe acest portal încă. Dacă dorești un set de date pe care nu ai " +"reușit să îl găsești, poți crea o nouă cerere specificând datele pe care " +"le dorești." + +#: ckanext/datarequests/templates/datarequests/close.html:3 +#: ckanext/datarequests/templates/datarequests/close.html:8 +#: ckanext/datarequests/templates/datarequests/close.html:12 +#: ckanext/datarequests/templates/datarequests/snippets/close_datarequest_form.html:25 +msgid "Close Data Request" +msgstr "Închide cererea de date" + +#: ckanext/datarequests/templates/datarequests/comment.html:5 +#: ckanext/datarequests/templates/datarequests/show.html:28 +msgid "Comments" +msgstr "Comentarii" + +#: ckanext/datarequests/templates/datarequests/edit.html:3 +#: ckanext/datarequests/templates/datarequests/edit.html:8 +#: ckanext/datarequests/templates/datarequests/edit.html:12 +msgid "Edit Data Request" +msgstr "Editează cererea" + +#: ckanext/datarequests/templates/datarequests/index.html:9 +#: ckanext/datarequests/templates/organization/datarequests.html:10 +msgid "Add Data Request" +msgstr "Adaugă cerere" + +#: ckanext/datarequests/templates/datarequests/index.html:12 +#: ckanext/datarequests/templates/organization/datarequests.html:13 +#: ckanext/datarequests/templates/user/datarequests.html:9 +msgid "Search Data Requests..." +msgstr "Caută cereri..." + +#: ckanext/datarequests/templates/datarequests/new.html:3 +#: ckanext/datarequests/templates/datarequests/new.html:7 +#: ckanext/datarequests/templates/datarequests/new.html:11 +#: ckanext/datarequests/templates/datarequests/snippets/datarequest_form.html:47 +#: ckanext/datarequests/templates/datarequests/snippets/new_datarequest_form.html:7 +msgid "Create Data Request" +msgstr "Crează cerere" + +#: ckanext/datarequests/templates/datarequests/new.html:16 +msgid "" +"To create a data request, fill the form and specify a title and a " +"description for your request. Please, be as clear as you can in order to " +"ease the task of accomplishing your request. You can also specify an " +"organization if your data request is closely related with it. " +msgstr "" +"Pentru a crea o nouă cerere te rugăm sa completezi formularul, " +"specificând un titlu și o descriere a datelor pe care le dorești. Te " +"rugăm sa fii cât mai explicit, pentru a putea să ușurăm procesul de " +"obținere a datelor. De asemenea, poți selecta organizația care consideri " +"că este în măsura să ofere respectivele date. " + +#: ckanext/datarequests/templates/datarequests/show.html:15 +msgid "Manage" +msgstr "Administrează" + +#: ckanext/datarequests/templates/datarequests/show.html:19 +msgid "Close" +msgstr "Închide" + +#: ckanext/datarequests/templates/datarequests/show.html:45 +#: ckanext/datarequests/templates/datarequests/snippets/additional_info.html:19 +#: ckanext/datarequests/templates/datarequests/snippets/datarequest_item.html:12 +msgid "Closed" +msgstr "Închis" + +#: ckanext/datarequests/templates/datarequests/show.html:50 +#: ckanext/datarequests/templates/datarequests/snippets/datarequest_item.html:16 +msgid "Open" +msgstr "Deschis" + +#: ckanext/datarequests/templates/datarequests/snippets/additional_info.html:2 +msgid "Additional Info" +msgstr "Informații suplimentare" + +#: ckanext/datarequests/templates/datarequests/snippets/additional_info.html:7 +msgid "Creator" +msgstr "Creator" + +#: ckanext/datarequests/templates/datarequests/snippets/additional_info.html:8 +#: ckanext/datarequests/templates/datarequests/snippets/additional_info.html:12 +#: ckanext/datarequests/templates/datarequests/snippets/additional_info.html:29 +msgid "None" +msgstr "Gol" + +#: ckanext/datarequests/templates/datarequests/snippets/additional_info.html:15 +msgid "Created" +msgstr "Creat" + +#: ckanext/datarequests/templates/datarequests/snippets/additional_info.html:20 +msgid "Not closed yet" +msgstr "Neînchis încă" + +#: ckanext/datarequests/templates/datarequests/snippets/close_datarequest_form.html:11 +msgid "Accep. Dataset" +msgstr "Acceptă. Set de date" + +#: ckanext/datarequests/templates/datarequests/snippets/comment_form.html:22 +msgid "Add a new Comment" +msgstr "Adaugă comentariu nou" + +#: ckanext/datarequests/templates/datarequests/snippets/comment_form.html:23 +#, python-format +msgid "" +"You can use Markdown formatting here. You can refer datasets by adding their " +"URL." +msgstr "" +"Poți folosi formatarea Markdown aici. Poți refenția seturi de date " +"adăugând URL-ul lor." + +#: ckanext/datarequests/templates/datarequests/snippets/comment_form.html:28 +msgid "Cancel" +msgstr "Întrerupe" + +#: ckanext/datarequests/templates/datarequests/snippets/comment_form.html:29 +msgid "Update Comment" +msgstr "Actualizează comentariu" + +#: ckanext/datarequests/templates/datarequests/snippets/comment_form.html:31 +msgid "Add Comment" +msgstr "Adaugă comentariu" + +#: ckanext/datarequests/templates/datarequests/snippets/comment_item.html:18 +msgid "Are you sure you want to delete this comment?" +msgstr "Sigur dorești să ștergi acest comentariu?" + +#: ckanext/datarequests/templates/datarequests/snippets/comment_item.html:29 +msgid "commented" +msgstr "comentat" + +#: ckanext/datarequests/templates/datarequests/snippets/comments.html:3 +msgid "Current Discussion" +msgstr "Discuția curentă" + +#: ckanext/datarequests/templates/datarequests/snippets/comments.html:13 +msgid "This data request has not been commented yet" +msgstr "Această cerere nu are niciun comentariu" + +#: ckanext/datarequests/templates/datarequests/snippets/datarequest_form.html:17 +msgid "eg. Data Request Name" +msgstr "ex: Numele cererii de date" + +#: ckanext/datarequests/templates/datarequests/snippets/datarequest_form.html:21 +msgid "eg. Data Request description" +msgstr "ex: Descrierea cererii de date" + +#: ckanext/datarequests/templates/datarequests/snippets/datarequest_form.html:29 +msgid "No organization" +msgstr "Nicio organizație" + +#: ckanext/datarequests/templates/datarequests/snippets/datarequest_form.html:43 +msgid "Are you sure you want to delete this data request?" +msgstr "Ești sigur că dorești să ștergi această cerere?" + +#: ckanext/datarequests/templates/datarequests/snippets/datarequest_form.html:44 +msgid "Delete" +msgstr "Șterge" + +#: ckanext/datarequests/templates/datarequests/snippets/datarequest_list.html:1 +msgid "No Data Requests found" +msgstr "Nicio cerere găsită" + +#: ckanext/datarequests/templates/datarequests/snippets/datarequest_list.html:14 +msgid "No Data Requests found with the given criteria" +msgstr "Nicio cerere nu a fost găsită pentru acest criteriu" + +#: ckanext/datarequests/templates/datarequests/snippets/datarequest_list.html:16 +msgid "How about creating one?" +msgstr "Vrei sa creezi una?" + +#: ckanext/datarequests/templates/datarequests/snippets/edit_datarequest_form.html:4 +msgid "Update Data Request" +msgstr "Actualizează cererea de date" + +#: ckanext/datarequests/templates/home/snippets/stats.html:5 +msgid "{0} statistics" +msgstr "{0} statistici" + +#: ckanext/datarequests/templates/home/snippets/stats.html:10 +msgid "dataset" +msgstr "set de date" + +#: ckanext/datarequests/templates/home/snippets/stats.html:10 +msgid "datasets" +msgstr "seturi de date" + +#: ckanext/datarequests/templates/home/snippets/stats.html:16 +msgid "organization" +msgstr "organizație" + +#: ckanext/datarequests/templates/home/snippets/stats.html:16 +msgid "organizations" +msgstr "organizații" + +#: ckanext/datarequests/templates/home/snippets/stats.html:22 +msgid "group" +msgstr "grup" + +#: ckanext/datarequests/templates/home/snippets/stats.html:22 +msgid "groups" +msgstr "grupuri" + +#: ckanext/datarequests/templates/home/snippets/stats.html:28 +msgid "related item" +msgstr "item asemănător" + +#: ckanext/datarequests/templates/home/snippets/stats.html:28 +msgid "related items" +msgstr "itemi asemănători" + +#: ckanext/datarequests/templates/home/snippets/stats.html:34 +msgid "data request" +msgstr "cerere de date" + +#: ckanext/datarequests/templates/home/snippets/stats.html:34 +msgid "data requests" +msgstr "cereri de date" + +#: ckanext/datarequests/templates/organization/read_base.html:5 +#: ckanext/datarequests/templates/user/read_base.html:5 +msgid "Activity Stream" +msgstr "Flux de activitate" + +#: ckanext/datarequests/templates/snippets/custom_search_form.html:6 +msgid "{number} data request found for \"{query}\"" +msgid_plural "{number} data requests found for \"{query}\"" +msgstr[0] "{number} cerere găsită pentru “{query}”" +msgstr[1] "{number} cereri găsite pentru “{query}”" +msgstr[2] "{number} cereri găsite pentru “{query}”" + +#: ckanext/datarequests/templates/snippets/custom_search_form.html:7 +msgid "No data requests found for \"{query}\"" +msgstr "Nicio cerere nu a fost găsită pentru “{query}”" + +#: ckanext/datarequests/templates/snippets/custom_search_form.html:8 +msgid "{number} data request found" +msgid_plural "{number} data requests found" +msgstr[0] "{number} cereri găsită" +msgstr[1] "{number} cereri găsite" +msgstr[2] "{number} cereri găsite" + +#: ckanext/datarequests/templates/snippets/custom_search_form.html:9 +msgid "No data requests found" +msgstr "Nicio cere nu a fost găsită" diff --git a/ckanext/datarequests/i18n/so/LC_MESSAGES/ckanext-datarequests.mo b/ckanext/datarequests/i18n/so/LC_MESSAGES/ckanext-datarequests.mo new file mode 100644 index 00000000..40591a75 Binary files /dev/null and b/ckanext/datarequests/i18n/so/LC_MESSAGES/ckanext-datarequests.mo differ diff --git a/ckanext/datarequests/templates/datarequests/snippets/datarequest_form.html b/ckanext/datarequests/templates/datarequests/snippets/datarequest_form.html index c302d2e8..0690de85 100644 --- a/ckanext/datarequests/templates/datarequests/snippets/datarequest_form.html +++ b/ckanext/datarequests/templates/datarequests/snippets/datarequest_form.html @@ -19,7 +19,7 @@ {{ form.input('title', id='field-title', label=_('Title'), placeholder=_('eg. Data Request Name'), value=title, error=errors['Title'], classes=['control-full', 'control-large'], is_required=true) }} {% endblock %} - {% block offering_description %} + {% block offering_description %} {{ form.markdown('description', id='field-description', label=_('Description'), placeholder=_('eg. Data Request description'), value=description, error=errors['Description'], is_required=description_required) }} {% endblock %} @@ -52,4 +52,4 @@ {% endblock %} - \ No newline at end of file +