Ejemplo n.º 1
0
 def post(self, request):
     """ add a server from the admin panel """
     form = forms.ServerForm(request.POST)
     if not form.is_valid():
         data = {"form": form}
         return TemplateResponse(request, "settings/edit_server.html", data)
     server = form.save()
     return redirect("settings-federated-server", server.id)
Ejemplo n.º 2
0
    def test_add_view_post_create(self):
        """create a server entry"""
        form = forms.ServerForm()
        form.data["server_name"] = "remote.server"
        form.data["application_type"] = "coolsoft"
        form.data["status"] = "blocked"

        view = views.AddFederatedServer.as_view()
        request = self.factory.post("", form.data)
        request.user = self.local_user
        request.user.is_superuser = True

        view(request)
        server = models.FederatedServer.objects.get()
        self.assertEqual(server.server_name, "remote.server")
        self.assertEqual(server.application_type, "coolsoft")
        self.assertEqual(server.status, "blocked")
Ejemplo n.º 3
0
    def get(self, request):
        """list of servers"""
        servers = models.FederatedServer.objects

        sort = request.GET.get("sort")
        sort_fields = ["created_date", "application_type", "server_name"]
        if not sort in sort_fields + ["-{:s}".format(f) for f in sort_fields]:
            sort = "created_date"
        servers = servers.order_by(sort)

        paginated = Paginator(servers, PAGE_LENGTH)

        data = {
            "servers": paginated.get_page(request.GET.get("page")),
            "sort": sort,
            "form": forms.ServerForm(),
        }
        return TemplateResponse(request, "settings/federation.html", data)
Ejemplo n.º 4
0
class Federation(View):
    """what servers do we federate with"""

    def get(self, request, status="federated"):
        """list of servers"""

        filters = {}
        if software := request.GET.get("application_type"):
            filters["application_type"] = software

        servers = models.FederatedServer.objects.filter(status=status, **filters)

        sort = request.GET.get("sort")
        sort_fields = [
            "created_date",
            "updated_date",
            "application_type",
            "server_name",
        ]
        if not sort in sort_fields + [f"-{f}" for f in sort_fields]:
            sort = "-created_date"
        servers = servers.order_by(sort, "-created_date")

        paginated = Paginator(servers, PAGE_LENGTH)
        page = paginated.get_page(request.GET.get("page"))

        data = {
            "federated_count": models.FederatedServer.objects.filter(
                status="federated"
            ).count(),
            "blocked_count": models.FederatedServer.objects.filter(
                status="blocked"
            ).count(),
            "servers": page,
            "page_range": paginated.get_elided_page_range(
                page.number, on_each_side=2, on_ends=1
            ),
            "sort": sort,
            "software_options": models.FederatedServer.objects.values_list(
                "application_type", flat=True
            ).distinct(),
            "form": forms.ServerForm(),
        }
        return TemplateResponse(request, "settings/federation/instance_list.html", data)
Ejemplo n.º 5
0
    def get(self, request, status="federated"):
        """list of servers"""
        servers = models.FederatedServer.objects.filter(status=status)

        sort = request.GET.get("sort")
        sort_fields = ["created_date", "application_type", "server_name"]
        # pylint: disable=consider-using-f-string
        if not sort in sort_fields + ["-{:s}".format(f) for f in sort_fields]:
            sort = "-created_date"
        servers = servers.order_by(sort)

        paginated = Paginator(servers, PAGE_LENGTH)
        page = paginated.get_page(request.GET.get("page"))

        data = {
            "servers": page,
            "page_range": paginated.get_elided_page_range(
                page.number, on_each_side=2, on_ends=1
            ),
            "sort": sort,
            "form": forms.ServerForm(),
        }
        return TemplateResponse(request, "settings/federation/instance_list.html", data)
Ejemplo n.º 6
0
 def get(self, request):
     """ add server form """
     data = {"form": forms.ServerForm()}
     return TemplateResponse(request, "settings/edit_server.html", data)