Exemplo n.º 1
0
def get_or_create_dashboard_settings(user):
    """
    Gets dashboard settings for the user given. If no settings found, creates
    default settings.

    :param django.contrib.auth.models.User:
    :return dash.models.DashboardSettings: Returns
        ``dash.models.DashboardSettings`` instance.
    """
    # Check if user trying to edit the dashboard workspace actually owns it.
    try:
        dashboard_settings = DashboardSettings._default_manager \
                                              .select_related('user') \
                                              .get(user=user)
    except ObjectDoesNotExist as e:
        layout = get_layout(as_instance=True)
        dashboard_settings = DashboardSettings()
        dashboard_settings.layout_uid = layout.uid
        dashboard_settings.user = user
        dashboard_settings.save()

    return dashboard_settings
Exemplo n.º 2
0
    def handle(self, *args, **options):
        """
        Creates test data to fill the dashboard with.
        """
        for id in args:

            if int(id) == 1:

                print "Creating workspace for ID ", id
                user = User.objects.get(pk=int(id))

                # *********************************
                # Sync plugins.
                # *********************************
                call_command('dash_sync_plugins',
                             verbosity=3,
                             interactive=False)

                # *********************************
                # Create dashboard settings.
                # *********************************
                dashboard_settings = DashboardSettings(
                    user=user, title=_("Test dashboard"), is_public=True)
                dashboard_settings.save()

                # ***********************************************
                # Create dashboard entries for default workspace
                # ***********************************************
                create_dashboard_entries(user=user)

                # **************************************************
                # Create dashboard workspace with regrouped entries
                # **************************************************
                dashboard_workspace = DashboardWorkspace(
                    user=user,
                    layout_uid=AndroidLayout.uid,
                    name=_("Default workspace reordered"),
                    slug='reordered-default-workspace',
                    is_public=False)
                dashboard_workspace.save()

                # ***********************************************
                # Create dashboard entries for default workspace
                # ***********************************************
                create_dashboard_entries(
                    user=user,
                    workspace=dashboard_workspace,
                )

                # **************************************************
                # Create dashboard workspace with regrouped entries
                # **************************************************
                #             dashboard_workspace = DashboardWorkspace(
                #                 user = user,
                #                 layout_uid = AndroidLayout.uid,
                #                 name = _("Default workspace reordered"),
                #                 slug = 'reordered-default-workspace',
                #                 is_public = False
                #                 )
                #             dashboard_workspace.save()

                # ********************************************************
                # Create dashboard entries for "Test workspace" workspace
                # ********************************************************
                create_dashboard_entries(user=user,
                                         workspace=dashboard_workspace,
                                         mixed_order=True)

                # *********************************************************
                # Create dashboard workspace for news and rss feed entries
                # *********************************************************
                dashboard_workspace = DashboardWorkspace(
                    user=user,
                    layout_uid=AndroidLayout.uid,
                    name=_("News and RSS feed"),
                    slug='news-and-rss-feed',
                    is_public=False)
                dashboard_workspace.save()

                # ********************************************************
                # Create dashboard entries for "Test workspace" workspace
                # ********************************************************
                create_news_and_rss_dashboard_entries(
                    user=user, workspace=dashboard_workspace)
    def handle(self, *args, **options):
        """Handle."""
        try:
            create_dashboard_user()
        except Exception:
            pass

        User = get_user_model()
        user = User._default_manager.get(username=DASH_TEST_USER_USERNAME)

        # *************************************************************
        # *********************** Sync plugins ************************
        # *************************************************************
        call_command('dash_sync_plugins', verbosity=3, interactive=False)

        # *************************************************************
        # ****************** Create dashboard settings ****************
        # *************************************************************
        dashboard_settings = DashboardSettings(user=user,
                                               title=_("Test dashboard"),
                                               is_public=True)
        dashboard_settings.save()

        # *************************************************************
        # ****** Create dashboard entries for default workspace *******
        # *************************************************************
        create_dashboard_entries(user=user)

        # *************************************************************
        # ***** Create dashboard workspace with regrouped entries *****
        # *************************************************************
        dashboard_workspace = DashboardWorkspace(
            user=user,
            layout_uid=AndroidLayout.uid,
            name=_("Default workspace reordered"),
            slug='reordered-default-workspace',
            is_public=False)
        dashboard_workspace.save()

        # *************************************************************
        # ** Create dashboard entries for "Test workspace" workspace **
        # *************************************************************
        create_dashboard_entries(user=user,
                                 workspace=dashboard_workspace,
                                 mixed_order=True)

        # *************************************************************
        # *** Create dashboard workspace for news & rss feed entries **
        # *************************************************************
        dashboard_workspace = DashboardWorkspace(user=user,
                                                 layout_uid=AndroidLayout.uid,
                                                 name=_("News and RSS feed"),
                                                 slug='news-and-rss-feed',
                                                 is_public=False)
        dashboard_workspace.save()

        # *************************************************************
        # ** Create dashboard entries for "Test workspace" workspace **
        # *************************************************************
        create_news_and_rss_dashboard_entries(user=user,
                                              workspace=dashboard_workspace)