Ejemplo n.º 1
0
    def query_hot_n(self, lang, hot = None):

        if not hot:
            hot = Setting.objects.get(pk = settings.HOT_VISUALIZATIONS).value

        sql = """SELECT `ao_datastream_revisions`.`id` AS `datastream_revision_id`,
                   `ao_visualizations_revisions`.`id` AS `visualization_revision_id`,
                   `ao_datastreams`.`id` AS `datastream_id`,
                   `ao_visualizations`.`id` AS `visualization_id`,
                   `ao_visualizations_revisions`.`impl_details`,
                   `ao_datastream_i18n`.`title`,
                   `ao_datastream_i18n`.`description`,
                   `ao_categories_i18n`.`name` AS `category_name`,
                   `ao_users`.`account_id`
                FROM `ao_visualizations_revisions`
                INNER JOIN `ao_visualizations` ON (`ao_visualizations_revisions`.`visualization_id` = `ao_visualizations`.`id`)
                INNER JOIN `ao_datastreams` ON (`ao_visualizations`.`datastream_id` = `ao_datastreams`.`id`)
                INNER JOIN `ao_datastream_revisions` ON (`ao_datastreams`.`id` = `ao_datastream_revisions`.`datastream_id` AND `ao_datastream_revisions`.`status` = 3)
                INNER JOIN `ao_datastream_i18n` ON (`ao_datastream_revisions`.`id` = `ao_datastream_i18n`.`datastream_revision_id`)
                INNER JOIN `ao_categories` ON (`ao_datastream_revisions`.`category_id` = `ao_categories`.`id`)
                INNER JOIN `ao_categories_i18n` ON (`ao_categories`.`id` = `ao_categories_i18n`.`category_id`)
                INNER JOIN `ao_users` ON (`ao_visualizations`.`user_id` = `ao_users`.`id`)
                WHERE `ao_visualizations_revisions`.`id` IN (
                        SELECT MAX(`ao_visualizations_revisions`.`id`)
                        FROM `ao_visualizations_revisions`
                        WHERE `ao_visualizations_revisions`.`visualization_id` IN ("""+ hot +""")
                              AND `ao_visualizations_revisions`.`status` = 3
                        GROUP BY `visualization_id`
                    )
                 AND `ao_categories_i18n`.`language` = %s
                ORDER BY `ao_visualizations`.`id` DESC, `ao_datastreams`.`id` DESC, `ao_visualizations_revisions`.`id` DESC, `ao_datastream_revisions`.`id` DESC"""

        cursor = connection.cursor()
        cursor.execute(sql, (lang,))

        rows    = cursor.fetchall().__iter__()
        row     = helpers.next(rows, None)

        visualizations = []
        while row != None:
            datastream_id = row[2]
            visualization_id = row[3]
            title = row[5]
            permalink = reverse('chart_manager.view', kwargs={'id': visualization_id, 'slug': slugify(title)})
            visualizations.append({'id'           : row[0],
                                   'sov_id'       : row[1],
                                   'impl_details' : row[4],
                                   'title'        : title,
                                   'description'  : row[6],
                                   'category'     : row[7],
                                   'permalink'    : permalink,
                                   'account_id'   : row[8]
                                })

            while row != None and datastream_id == row[2] and visualization_id == row[3]:
                row = helpers.next(rows, None)

        return visualizations
Ejemplo n.º 2
0
    def query_hot_n(self, lang, hot = None):

        if not hot:
            hot = Setting.objects.get(pk = settings.HOT_VISUALIZATIONS).value

        sql = """SELECT `ao_datastream_revisions`.`id` AS `datastream_revision_id`,
                   `ao_visualizations_revisions`.`id` AS `visualization_revision_id`,
                   `ao_datastreams`.`id` AS `datastream_id`,
                   `ao_visualizations`.`id` AS `visualization_id`,
                   `ao_visualizations_revisions`.`impl_details`,
                   `ao_datastream_i18n`.`title`,
                   `ao_datastream_i18n`.`description`,
                   `ao_categories_i18n`.`name` AS `category_name`,
                   `ao_users`.`account_id`
                FROM `ao_visualizations_revisions`
                INNER JOIN `ao_visualizations` ON (`ao_visualizations_revisions`.`visualization_id` = `ao_visualizations`.`id`)
                INNER JOIN `ao_datastreams` ON (`ao_visualizations`.`datastream_id` = `ao_datastreams`.`id`)
                INNER JOIN `ao_datastream_revisions` ON (`ao_datastreams`.`id` = `ao_datastream_revisions`.`datastream_id` AND `ao_datastream_revisions`.`status` = 3)
                INNER JOIN `ao_datastream_i18n` ON (`ao_datastream_revisions`.`id` = `ao_datastream_i18n`.`datastream_revision_id`)
                INNER JOIN `ao_categories` ON (`ao_datastream_revisions`.`category_id` = `ao_categories`.`id`)
                INNER JOIN `ao_categories_i18n` ON (`ao_categories`.`id` = `ao_categories_i18n`.`category_id`)
                INNER JOIN `ao_users` ON (`ao_visualizations`.`user_id` = `ao_users`.`id`)
                WHERE `ao_visualizations_revisions`.`id` IN (
                        SELECT MAX(`ao_visualizations_revisions`.`id`)
                        FROM `ao_visualizations_revisions`
                        WHERE `ao_visualizations_revisions`.`visualization_id` IN ("""+ hot +""")
                              AND `ao_visualizations_revisions`.`status` = 3
                        GROUP BY `visualization_id`
                    )
                 AND `ao_categories_i18n`.`language` = %s
                ORDER BY `ao_visualizations`.`id` DESC, `ao_datastreams`.`id` DESC, `ao_visualizations_revisions`.`id` DESC, `ao_datastream_revisions`.`id` DESC"""

        cursor = connection.cursor()
        cursor.execute(sql, (lang,))

        rows    = cursor.fetchall().__iter__()
        row     = helpers.next(rows, None)

        visualizations = []
        while row != None:
            datastream_id = row[2]
            visualization_id = row[3]
            title = row[5]
            permalink = reverse('chart_manager.view', kwargs={'id': visualization_id, 'slug': slugify(title)})
            visualizations.append({'id'           : row[0],
                                   'sov_id'       : row[1],
                                   'impl_details' : row[4],
                                   'title'        : title,
                                   'description'  : row[6],
                                   'category'     : row[7],
                                   'permalink'    : permalink,
                                   'account_id'   : row[8]
                                })

            while row != None and datastream_id == row[2] and visualization_id == row[3]:
                row = helpers.next(rows, None)

        return visualizations
Ejemplo n.º 3
0
    def queryByDataStreamRevisionId(self,
                                    p_revision_id,
                                    p_language=settings.LANGUAGE_CODE[0:2]):
        parameter_id = 0
        parameter_position = 1
        parameter_name = 2
        parameter_description = 3

        l_parameter_cursor = connection.cursor()

        l_parameter_cursor.execute(
            """
                                    SELECT id
                                    , coalesce(position, 0)
                                    , name
                                    , description
                                    FROM ao_datastream_parameters
                                    WHERE datastream_revision_id = %s
                                    ORDER BY position
                                    """, [p_revision_id])

        l_parameters_rows = l_parameter_cursor.fetchall().__iter__()
        l_parameter_row = helpers.next(l_parameters_rows, None)

        l_parameters = []
        while l_parameter_row != None:

            l_parameter_id = l_parameter_row[parameter_id]
            l_parameter_name = l_parameter_row[parameter_name]
            l_parameter_description = l_parameter_row[parameter_description]

            l_parameter = dict(parameter_id=l_parameter_id,
                               parameter_name=l_parameter_name,
                               parameter_description=l_parameter_description,
                               parameter_value=None)

            l_parameters.append(l_parameter)
            l_parameter_row = helpers.next(l_parameters_rows, None)

        return l_parameters
Ejemplo n.º 4
0
    def queryByDataStreamRevisionId(self, p_revision_id, p_language=settings.LANGUAGE_CODE[0:2]):
        parameter_id = 0
        parameter_position = 1
        parameter_name = 2
        parameter_description = 3

        l_parameter_cursor = connection.cursor()

        l_parameter_cursor.execute("""
                                    SELECT id
                                    , coalesce(position, 0)
                                    , name
                                    , description
                                    FROM ao_datastream_parameters
                                    WHERE datastream_revision_id = %s
                                    ORDER BY position
                                    """, [p_revision_id])

        l_parameters_rows = l_parameter_cursor.fetchall().__iter__()
        l_parameter_row = helpers.next(l_parameters_rows, None)

        l_parameters = []
        while l_parameter_row != None:

            l_parameter_id                      = l_parameter_row[parameter_id]
            l_parameter_name                    = l_parameter_row[parameter_name]
            l_parameter_description             = l_parameter_row[parameter_description]

            l_parameter = dict(parameter_id=l_parameter_id
                                , parameter_name=l_parameter_name
                                , parameter_description=l_parameter_description
                                , parameter_value=None)

            l_parameters.append(l_parameter)
            l_parameter_row = helpers.next(l_parameters_rows, None)

        return l_parameters
Ejemplo n.º 5
0
    def getEndPointById(self, p_id):
        dataset_revision_id   = 0
        dataset_end_point     = 1

        l_dataset_cursor  = connection.cursor()

        l_dataset_cursor.execute("""SELECT id
                                    , end_point
                                    FROM ao_dataset_revisions
                                    WHERE dataset_id = %s
                                    ORDER BY id DESC
                                    """, [p_id])

        l_datasets_rows    = l_dataset_cursor.fetchall().__iter__()
        l_dataset_row      = helpers.next(l_datasets_rows, None)

        l_dataset_revision_id = l_dataset_row[dataset_revision_id]
        l_dataset_end_point   = l_dataset_row[dataset_end_point]

        return l_dataset_end_point, l_dataset_end_point.startswith('file://')
Ejemplo n.º 6
0
    def getEndPointById(self, p_id):
        dataset_revision_id = 0
        dataset_end_point = 1

        l_dataset_cursor = connection.cursor()

        l_dataset_cursor.execute(
            """SELECT id
                                    , end_point
                                    FROM ao_dataset_revisions
                                    WHERE dataset_id = %s
                                    ORDER BY id DESC
                                    """, [p_id])

        l_datasets_rows = l_dataset_cursor.fetchall().__iter__()
        l_dataset_row = helpers.next(l_datasets_rows, None)

        l_dataset_revision_id = l_dataset_row[dataset_revision_id]
        l_dataset_end_point = l_dataset_row[dataset_end_point]

        return l_dataset_end_point, l_dataset_end_point.startswith('file://')