xblock-video-iframe


Namexblock-video-iframe JSON
Version 1.0.0 PyPI version JSON
download
home_pagehttps://github.com/open-craft/xblock-video-iframe
SummaryXBlock to embed video content using iframe along with download buttons
upload_time2024-06-18 05:05:11
maintainerNone
docs_urlNone
authorOpenCraft
requires_python>=3.8
licenseAGPL 3.0
keywords python edx
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            XBlock to embed video content using iframe along with download buttons
######################################################################


Usage
*****

1. Go to `Settings -> Advanced Settings` in a specific course within Studio.
2. Add `"video_iframe"` to `Advanced Module List` and save.
3. Add `Advanced -> Video Iframe` unit to the course.
4. Add a valid URL to the `Video URL` field and optionally add `Video Description`, `Video Download URL` and `Captions Download URL` and/or modify `Video Title`.


Testing with Docker
********************

This XBlock comes with a Docker test environment ready to build, based on the xblock-sdk workbench. To build and run it::

    $ make dev.run

The XBlock SDK Workbench, including this XBlock, will be available on the list of XBlocks at http://localhost:8000

Translating
*************

Internationalization (i18n) is when a program is made aware of multiple languages.
Localization (l10n) is adapting a program to local language and cultural habits.

Use the locale directory to provide internationalized strings for your XBlock project.
For more information on how to enable translations, visit the
`Open edX XBlock tutorial on Internationalization <https://edx.readthedocs.org/projects/xblock-tutorial/en/latest/edx_platform/edx_lms.html>`_.

This cookiecutter template uses `django-statici18n <https://django-statici18n.readthedocs.io/en/latest/>`_
to provide translations to static javascript using ``gettext``.

The included Makefile contains targets for extracting, compiling and validating translatable strings.
The general steps to provide multilingual messages for a Python program (or an XBlock) are:

1. Mark translatable strings.
2. Run i18n tools to create raw message catalogs.
3. Create language specific translations for each message in the catalogs.
4. Use ``gettext`` to translate strings.

1. Mark translatable strings
=============================

Mark translatable strings in python::


    from django.utils.translation import ugettext as _

    # Translators: This comment will appear in the `.po` file.
    message = _("This will be marked.")

See `edx-developer-guide <https://edx.readthedocs.io/projects/edx-developer-guide/en/latest/internationalization/i18n.html#python-source-code>`__
for more information.

You can also use ``gettext`` to mark strings in javascript::


    // Translators: This comment will appear in the `.po` file.
    var message = gettext("Custom message.");

See `edx-developer-guide <https://edx.readthedocs.io/projects/edx-developer-guide/en/latest/internationalization/i18n.html#javascript-files>`__
for more information.

2. Run i18n tools to create Raw message catalogs
=================================================

This cookiecutter template offers multiple make targets which are shortcuts to
use `edx-i18n-tools <https://github.com/openedx/i18n-tools>`_.

After marking strings as translatable we have to create the raw message catalogs.
These catalogs are created in ``.po`` files. For more information see
`GNU PO file documentation <https://www.gnu.org/software/gettext/manual/html_node/PO-Files.html>`_.
These catalogs can be created by running::


    $ make extract_translations

The previous command will create the necessary ``.po`` files under
``xblock-video-iframe/video_iframe/conf/locale/en/LC_MESSAGES/text.po``.
The ``text.po`` file is created from the ``django-partial.po`` file created by
``django-admin makemessages`` (`makemessages documentation <https://docs.djangoproject.com/en/3.2/topics/i18n/translation/#message-files>`_),
this is why you will not see a ``django-partial.po`` file.

3. Create language specific translations
==============================================

3.1 Add translated strings
---------------------------

After creating the raw message catalogs, all translations should be filled out by the translator.
One or more translators must edit the entries created in the message catalog, i.e. the ``.po`` file(s).
The format of each entry is as follows::

    #  translator-comments
    A. extracted-comments
    #: reference…
    #, flag…
    #| msgid previous-untranslated-string
    msgid 'untranslated message'
    msgstr 'mensaje traducido (translated message)'

For more information see
`GNU PO file documentation <https://www.gnu.org/software/gettext/manual/html_node/PO-Files.html>`_.

To use translations from transifex use the follow Make target to pull translations::

    $ make pull_translations

See `config instructions <https://github.com/openedx/i18n-tools#transifex-commands>`_ for information on how to set up your
transifex credentials.

See `transifex documentation <https://docs.transifex.com/integrations/django>`_ for more details about integrating
django with transiflex.

3.2 Compile translations
-------------------------

Once translations are in place, use the following Make target to compile the translation catalogs ``.po`` into
``.mo`` message files::

    $ make compile_translations

The previous command will compile ``.po`` files using
``django-admin compilemessages`` (`compilemessages documentation <https://docs.djangoproject.com/en/3.2/topics/i18n/translation/#compiling-message-files>`_).
After compiling the ``.po`` file(s), ``django-statici18n`` is used to create language specific catalogs. See
``django-statici18n`` `documentation <https://django-statici18n.readthedocs.io/en/latest/>`_ for more information.

To upload translations to transiflex use the follow Make target::

    $ make push_translations

See `config instructions <https://github.com/openedx/i18n-tools#transifex-commands>`_ for information on how to set up your
transifex credentials.

See `transifex documentation <https://docs.transifex.com/integrations/django>`_ for more details about integrating
django with transiflex.

 **Note:** The ``dev.run`` make target will automatically compile any translations.

 **Note:** To check if the source translation files (``.po``) are up-to-date run::

     $ make detect_changed_source_translations

4. Use ``gettext`` to translate strings
========================================

Django will automatically use ``gettext`` and the compiled translations to translate strings.

Troubleshooting
****************

If there are any errors compiling ``.po`` files run the following command to validate your ``.po`` files::

    $ make validate

See `django's i18n troubleshooting documentation
<https://docs.djangoproject.com/en/3.2/topics/i18n/translation/#troubleshooting-gettext-incorrectly-detects-python-format-in-strings-with-percent-signs>`_
for more information.


Change Log
##########

..
   All enhancements and patches to video_iframe will be documented
   in this file.  It adheres to the structure of https://keepachangelog.com/ ,
   but in reStructuredText instead of Markdown (for ease of incorporation into
   Sphinx documentation and the PyPI description).

   This project adheres to Semantic Versioning (https://semver.org/).

.. There should always be an "Unreleased" section for changes pending release.

Unreleased
**********

* 

1.0.0 – 2024-06-18
**********************************************

Added
=====

* Author view to display custom message with instructions if no video url is detected. Also disable validations for author view to supress default validation failure messages.

Removed
=======

* `autoplay` from allow attribute passed to the iframe.

Changed
=======

* Title of `display_name` field to `Video Title` and modified the description.
* Default display name of the XBlock as displayed in the Advanced XBlocks selection list from `Video` to `Video Iframe`.


0.1.0 – 2024-04-28
**********************************************

Added
=====

* First iteration of XBlock.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/open-craft/xblock-video-iframe",
    "name": "xblock-video-iframe",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "Python edx",
    "author": "OpenCraft",
    "author_email": "help@opencraft.com",
    "download_url": "https://files.pythonhosted.org/packages/84/cc/b018cd0a21919a6d66b724cd6b005524c1ba057a5bd0cdf07c86266d885f/xblock_video_iframe-1.0.0.tar.gz",
    "platform": null,
    "description": "XBlock to embed video content using iframe along with download buttons\n######################################################################\n\n\nUsage\n*****\n\n1. Go to `Settings -> Advanced Settings` in a specific course within Studio.\n2. Add `\"video_iframe\"` to `Advanced Module List` and save.\n3. Add `Advanced -> Video Iframe` unit to the course.\n4. Add a valid URL to the `Video URL` field and optionally add `Video Description`, `Video Download URL` and `Captions Download URL` and/or modify `Video Title`.\n\n\nTesting with Docker\n********************\n\nThis XBlock comes with a Docker test environment ready to build, based on the xblock-sdk workbench. To build and run it::\n\n    $ make dev.run\n\nThe XBlock SDK Workbench, including this XBlock, will be available on the list of XBlocks at http://localhost:8000\n\nTranslating\n*************\n\nInternationalization (i18n) is when a program is made aware of multiple languages.\nLocalization (l10n) is adapting a program to local language and cultural habits.\n\nUse the locale directory to provide internationalized strings for your XBlock project.\nFor more information on how to enable translations, visit the\n`Open edX XBlock tutorial on Internationalization <https://edx.readthedocs.org/projects/xblock-tutorial/en/latest/edx_platform/edx_lms.html>`_.\n\nThis cookiecutter template uses `django-statici18n <https://django-statici18n.readthedocs.io/en/latest/>`_\nto provide translations to static javascript using ``gettext``.\n\nThe included Makefile contains targets for extracting, compiling and validating translatable strings.\nThe general steps to provide multilingual messages for a Python program (or an XBlock) are:\n\n1. Mark translatable strings.\n2. Run i18n tools to create raw message catalogs.\n3. Create language specific translations for each message in the catalogs.\n4. Use ``gettext`` to translate strings.\n\n1. Mark translatable strings\n=============================\n\nMark translatable strings in python::\n\n\n    from django.utils.translation import ugettext as _\n\n    # Translators: This comment will appear in the `.po` file.\n    message = _(\"This will be marked.\")\n\nSee `edx-developer-guide <https://edx.readthedocs.io/projects/edx-developer-guide/en/latest/internationalization/i18n.html#python-source-code>`__\nfor more information.\n\nYou can also use ``gettext`` to mark strings in javascript::\n\n\n    // Translators: This comment will appear in the `.po` file.\n    var message = gettext(\"Custom message.\");\n\nSee `edx-developer-guide <https://edx.readthedocs.io/projects/edx-developer-guide/en/latest/internationalization/i18n.html#javascript-files>`__\nfor more information.\n\n2. Run i18n tools to create Raw message catalogs\n=================================================\n\nThis cookiecutter template offers multiple make targets which are shortcuts to\nuse `edx-i18n-tools <https://github.com/openedx/i18n-tools>`_.\n\nAfter marking strings as translatable we have to create the raw message catalogs.\nThese catalogs are created in ``.po`` files. For more information see\n`GNU PO file documentation <https://www.gnu.org/software/gettext/manual/html_node/PO-Files.html>`_.\nThese catalogs can be created by running::\n\n\n    $ make extract_translations\n\nThe previous command will create the necessary ``.po`` files under\n``xblock-video-iframe/video_iframe/conf/locale/en/LC_MESSAGES/text.po``.\nThe ``text.po`` file is created from the ``django-partial.po`` file created by\n``django-admin makemessages`` (`makemessages documentation <https://docs.djangoproject.com/en/3.2/topics/i18n/translation/#message-files>`_),\nthis is why you will not see a ``django-partial.po`` file.\n\n3. Create language specific translations\n==============================================\n\n3.1 Add translated strings\n---------------------------\n\nAfter creating the raw message catalogs, all translations should be filled out by the translator.\nOne or more translators must edit the entries created in the message catalog, i.e. the ``.po`` file(s).\nThe format of each entry is as follows::\n\n    #  translator-comments\n    A. extracted-comments\n    #: reference\u2026\n    #, flag\u2026\n    #| msgid previous-untranslated-string\n    msgid 'untranslated message'\n    msgstr 'mensaje traducido (translated message)'\n\nFor more information see\n`GNU PO file documentation <https://www.gnu.org/software/gettext/manual/html_node/PO-Files.html>`_.\n\nTo use translations from transifex use the follow Make target to pull translations::\n\n    $ make pull_translations\n\nSee `config instructions <https://github.com/openedx/i18n-tools#transifex-commands>`_ for information on how to set up your\ntransifex credentials.\n\nSee `transifex documentation <https://docs.transifex.com/integrations/django>`_ for more details about integrating\ndjango with transiflex.\n\n3.2 Compile translations\n-------------------------\n\nOnce translations are in place, use the following Make target to compile the translation catalogs ``.po`` into\n``.mo`` message files::\n\n    $ make compile_translations\n\nThe previous command will compile ``.po`` files using\n``django-admin compilemessages`` (`compilemessages documentation <https://docs.djangoproject.com/en/3.2/topics/i18n/translation/#compiling-message-files>`_).\nAfter compiling the ``.po`` file(s), ``django-statici18n`` is used to create language specific catalogs. See\n``django-statici18n`` `documentation <https://django-statici18n.readthedocs.io/en/latest/>`_ for more information.\n\nTo upload translations to transiflex use the follow Make target::\n\n    $ make push_translations\n\nSee `config instructions <https://github.com/openedx/i18n-tools#transifex-commands>`_ for information on how to set up your\ntransifex credentials.\n\nSee `transifex documentation <https://docs.transifex.com/integrations/django>`_ for more details about integrating\ndjango with transiflex.\n\n **Note:** The ``dev.run`` make target will automatically compile any translations.\n\n **Note:** To check if the source translation files (``.po``) are up-to-date run::\n\n     $ make detect_changed_source_translations\n\n4. Use ``gettext`` to translate strings\n========================================\n\nDjango will automatically use ``gettext`` and the compiled translations to translate strings.\n\nTroubleshooting\n****************\n\nIf there are any errors compiling ``.po`` files run the following command to validate your ``.po`` files::\n\n    $ make validate\n\nSee `django's i18n troubleshooting documentation\n<https://docs.djangoproject.com/en/3.2/topics/i18n/translation/#troubleshooting-gettext-incorrectly-detects-python-format-in-strings-with-percent-signs>`_\nfor more information.\n\n\nChange Log\n##########\n\n..\n   All enhancements and patches to video_iframe will be documented\n   in this file.  It adheres to the structure of https://keepachangelog.com/ ,\n   but in reStructuredText instead of Markdown (for ease of incorporation into\n   Sphinx documentation and the PyPI description).\n\n   This project adheres to Semantic Versioning (https://semver.org/).\n\n.. There should always be an \"Unreleased\" section for changes pending release.\n\nUnreleased\n**********\n\n* \n\n1.0.0 \u2013 2024-06-18\n**********************************************\n\nAdded\n=====\n\n* Author view to display custom message with instructions if no video url is detected. Also disable validations for author view to supress default validation failure messages.\n\nRemoved\n=======\n\n* `autoplay` from allow attribute passed to the iframe.\n\nChanged\n=======\n\n* Title of `display_name` field to `Video Title` and modified the description.\n* Default display name of the XBlock as displayed in the Advanced XBlocks selection list from `Video` to `Video Iframe`.\n\n\n0.1.0 \u2013 2024-04-28\n**********************************************\n\nAdded\n=====\n\n* First iteration of XBlock.\n",
    "bugtrack_url": null,
    "license": "AGPL 3.0",
    "summary": "XBlock to embed video content using iframe along with download buttons",
    "version": "1.0.0",
    "project_urls": {
        "Homepage": "https://github.com/open-craft/xblock-video-iframe"
    },
    "split_keywords": [
        "python",
        "edx"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "38e944ad172e0e35204e76ecf799c89cf2a652fb23755a4cb97bde7f6a3d0d2c",
                "md5": "8b151df8f3c38428c0e6f931584edeb2",
                "sha256": "2d1929f6f7549aad2391f88ca8ccac31fb6cc7a1f7912ff9e9d84f4bbe68aeb3"
            },
            "downloads": -1,
            "filename": "xblock_video_iframe-1.0.0-py2.py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "8b151df8f3c38428c0e6f931584edeb2",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py3",
            "requires_python": ">=3.8",
            "size": 21513,
            "upload_time": "2024-06-18T05:05:05",
            "upload_time_iso_8601": "2024-06-18T05:05:05.647548Z",
            "url": "https://files.pythonhosted.org/packages/38/e9/44ad172e0e35204e76ecf799c89cf2a652fb23755a4cb97bde7f6a3d0d2c/xblock_video_iframe-1.0.0-py2.py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "84ccb018cd0a21919a6d66b724cd6b005524c1ba057a5bd0cdf07c86266d885f",
                "md5": "eb9578e396480663c4a8e204ea0c09f0",
                "sha256": "8ddfffbb71ef3dbafef19f95f5bea051d272db5dd07119c9405f4df444c3605e"
            },
            "downloads": -1,
            "filename": "xblock_video_iframe-1.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "eb9578e396480663c4a8e204ea0c09f0",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 26521,
            "upload_time": "2024-06-18T05:05:11",
            "upload_time_iso_8601": "2024-06-18T05:05:11.160280Z",
            "url": "https://files.pythonhosted.org/packages/84/cc/b018cd0a21919a6d66b724cd6b005524c1ba057a5bd0cdf07c86266d885f/xblock_video_iframe-1.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-06-18 05:05:11",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "open-craft",
    "github_project": "xblock-video-iframe",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "tox": true,
    "lcname": "xblock-video-iframe"
}
        
Elapsed time: 0.67788s