コード例 #1
0
ファイル: admin.py プロジェクト: pombredanne/django-updater
 def register(self, request):
     # the site is not yet registered, do that now
     proto = "http://" if request.is_secure else "https://"
     base_url = reverse("updater_run", kwargs={"token": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"}).replace(
         "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/", ""
     )
     base_url = "".join([proto, request.META["HTTP_HOST"], base_url])
     return register_site(host=request.META["HTTP_HOST"], base_url=base_url)[1]
コード例 #2
0
    def handle(self, *args, **options):

        host = options["host"] or get_current_site(None)

        if "django.contrib.admin" in django_settings.INSTALLED_APPS:
            self.stdout.write("It looks like you have Django's admin installed. This management command is intended to "
                              "be used as a fallback if the admin is not used. You can use Django "
                              "Updaters admin page at: {host}{admin_url}".format(
                host=host, admin_url=reverse("admin:updater_status_changelist")))

            if not options["noinput"]:
                if get_input("Abort: (y/n) ") in ["y" or "yes"]:
                    sys.exit(1)

        self.stdout.write("\nPlease note: The Django Updater service won't work on a dev environment.\n\n")
        status = Status.objects.get()

        url = check_host(host, token=status.site_token)

        if not url:
            self.stdout.write("\nUnable to find the host for this installation, tried {0}".format(host))
            self.stdout.write("This happens when you don't use Django's site framework, or you haven't set up "
                              "any sites yet. The host is usually your domain name, e.g 'example.com' or "
                              "'www.example.com'.")
            if options["noinput"]:
                # return early if noinput is set
                sys.exit(1)

        while not url:
            try:
                host = get_input("Host: ")
            except KeyboardInterrupt:
                sys.exit(1)
            url = check_host(host=host, token=status.site_token)

        self.stdout.write("Contacting online service to register this site.")
        base_url = url.replace(status.site_token + "/", "")
        success, data = register_site(host, base_url)
        if not success:
            self.stderr.write(str(data))
            sys.exit(1)
        self.stdout.write(str(data))
        sys.exit(0)