예제 #1
0
    def configure_module_item(self):
        """
        Respond to a configure module item request.

        This happens after an unconfigured assignment launch. We show the user
        our document selection form instead of launching the assignment, and
        when the user chooses a document and submits the form this is the view
        that receives that form submission.

        We save the chosen document in the DB so that subsequent launches of
        this same assignment will be DB-configured rather than unconfigured.
        And we also send back the assignment launch page, passing the chosen
        URL to Via, as the direct response to the content item form submission.
        """
        document_url = self.request.parsed_params["document_url"]

        ModuleItemConfiguration.set_document_url(
            self.request.db,
            self.request.parsed_params["tool_consumer_instance_guid"],
            self.request.parsed_params["resource_link_id"],
            document_url,
        )

        self.context.js_config.add_document_url(document_url)

        self.sync_lti_data_to_h()
        self.store_lti_data()

        self.context.js_config.maybe_enable_grading()

        return {}
예제 #2
0
    def test_set_document_url_saves_the_document_url(self, db_session):
        ModuleItemConfiguration.set_document_url(
            db_session,
            "test_tool_consumer_instance_guid",
            "test_resource_link_id",
            "NEW_DOCUMENT_URL",
        )

        assert (db_session.query(ModuleItemConfiguration).filter_by(
            tool_consumer_instance_guid="test_tool_consumer_instance_guid",
            resource_link_id="test_resource_link_id",
        ).one().document_url == "NEW_DOCUMENT_URL")
예제 #3
0
    def test_set_document_url_overwrites_an_existing_document_url(
            self, db_session):
        db_session.add(
            ModuleItemConfiguration(
                tool_consumer_instance_guid="test_tool_consumer_instance_guid",
                resource_link_id="test_resource_link_id",
                document_url="OLD_DOCUMENT_URL",
            ))

        ModuleItemConfiguration.set_document_url(
            db_session,
            "test_tool_consumer_instance_guid",
            "test_resource_link_id",
            "NEW_DOCUMENT_URL",
        )

        assert (db_session.query(ModuleItemConfiguration).filter_by(
            tool_consumer_instance_guid="test_tool_consumer_instance_guid",
            resource_link_id="test_resource_link_id",
        ).one().document_url == "NEW_DOCUMENT_URL")