Exemple #1
0
    def object(self):

        try:
            obj = Page.objects.get(id=self.kwargs["page_id"])
        except Exception as e:
            messages.error(self.request, str(e))
        return obj
Exemple #2
0
    def object(self):

        try:
            obj = Page.objects.get(id=self.kwargs["page_id"])
        except Exception as e:
            messages.error(self.request, str(e))
        return obj
Exemple #3
0
    def form_valid(self, form):
        try:
            dimension = form.save()
        except Exception as e:
            messages.error(self.request, str(e))

        return HttpResponseRedirect(dimension.page.get_absolute_url())
    def post(self, *args, **kwargs):

        widgets = self.request.POST.getlist('widgets[]', [])

        widget_list = []

        try:
            for widget_id in widgets:
                widget = get_widget_from_id(widget_id)
                if widget:
                    widget_list.append(widget)
        except:
            messages.error(
                self.request, _('Error occured while sorting widgets.'))

        i = 0

        for widget in widget_list:
            widget.ordering = i
            widget.save()
            i += 1

        messages.success(self.request, _('Widget sorting success.'))

        return HttpResponse('ok')
    def form_valid(self, form):
        try:
            dimension = form.save()
        except Exception as e:
            messages.error(self.request, str(e))

        return HttpResponseRedirect(dimension.page.get_absolute_url())
    def post(self, *args, **kwargs):

        widgets = self.request.POST.getlist('widgets[]', [])

        widget_list = []

        try:
            for widget_id in widgets:
                widget = get_widget_from_id(widget_id)
                if widget:
                    widget_list.append(widget)
        except:
            messages.error(
                self.request, _('Error occured while sorting widgets.'))

        i = 0

        for widget in widget_list:
            widget.ordering = i
            widget.save()
            i += 1

        messages.success(self.request, _('Widget sorting success.'))

        return HttpResponse('ok')
Exemple #7
0
    def form_valid(self, form):
        try:
            page = form.save()
        except Exception as e:
            messages.error(self.request, str(e))

        if leonardo.config.get_attr('is_websocket_enabled', False):
            return JsonResponse(data={})

        return HttpResponseRedirect(page.get_absolute_url())
Exemple #8
0
    def form_valid(self, form):
        try:
            page = form.save()
        except Exception as e:
            messages.error(self.request, str(e))

        if leonardo.config.get_attr('is_websocket_enabled', False):
            return JsonResponse(data={})

        return HttpResponseRedirect(page.get_absolute_url())
    def form_valid(self, form):
        try:
            page = form.save()
            messages.success(self.request,
                             _('Page %s was successfully crated.' % page))
        except Exception as e:
            messages.error(self.request, str(e))
            return HttpResponseRedirect(self.object.get_absolute_url())

        return HttpResponseRedirect(page.get_absolute_url())
    def form_valid(self, form):
        try:
            page = form.save()
            messages.success(
                self.request, _('Page %s was successfully crated.' % page))
        except Exception as e:
            messages.error(self.request, str(e))
            return HttpResponseRedirect(self.object.get_absolute_url())

        return HttpResponseRedirect(page.get_absolute_url())
    def handle(self, request, data):

        kwargs = data
        kwargs['request'] = request
        try:
            pip_install(**kwargs)
        except Exception as e:
            messages.error(request, str(e))
        else:
            return True
        return False
Exemple #12
0
    def dispatch(self, request, uidb36, key, **kwargs):
        self.request = request
        self.key = key
        # (Ab)using forms here to be able to handle errors in XHR #890
        token_form = UserTokenForm(data={'uidb36': uidb36, 'key': key})

        if not token_form.is_valid():
            self.reset_user = None
            messages.error(self.request, _('Token is invalid !'))
            return HttpResponseRedirect(settings.LOGIN_REDIRECT_URL)
        else:
            self.reset_user = token_form.reset_user
            return super(ResetPasswordKeyView,
                         self).dispatch(request, uidb36, key, **kwargs)
    def handle(self, request, data):
        """PoC for self restart

        this support new abilities like an dynamic plugin install etc..
        """

        try:
            server_restart.send(sender=self.__class__,
                                request=request, delay=data['delay'])
            messages.warning(
                request, _('Server going to down !'))
        except Exception as e:
            messages.error(request, str(e))
        else:
            return True
        return False
def server_restart_callback(request, delay=0, **kwargs):

    # time.sleep(delay)
    try:

        # from django.utils.autoreload import restart_with_reloader, reloader_thread
        # kill self
        os.kill(os.getpid(), 9)

        messages.success(
            request, _('Server was successfuly restarted !'))
    except Exception as e:
        messages.error(request, str(e))
    else:
        return True
    return False
    def dispatch(self, request, uidb36, key, **kwargs):
        self.request = request
        self.key = key
        # (Ab)using forms here to be able to handle errors in XHR #890
        token_form = UserTokenForm(data={'uidb36': uidb36, 'key': key})

        if not token_form.is_valid():
            self.reset_user = None
            messages.error(
                self.request, _('Token is invalid !'))
            return HttpResponseRedirect(settings.LOGIN_REDIRECT_URL)
        else:
            self.reset_user = token_form.reset_user
            return super(ResetPasswordKeyView, self).dispatch(request,
                                                              uidb36,
                                                              key,
                                                              **kwargs)
    def handle(self, request, data):

        try:
            if data.get('makemigrations', None):
                management.call_command(
                    'makemigrations', verbosity=1, interactive=False)
            if data.get('migrate', None):
                management.call_command(
                    'migrate', verbosity=1, interactive=False)
            if data.get('sync_all', None):
                management.call_command(
                    'sync_all', force=data.get('sync_force', False))
            if data.get('reload_server', None):
                import os
                os.kill(os.getpid(), 9)
        except Exception as e:
            messages.error(request, str(e))
        else:
            return True
        return False
def update_packages_from_pip(query, request=None):
    """updates global REPOS from pypi
    """

    if PIP:
        try:
            from pip.commands.search import SearchCommand
            search_results = SearchCommand().search(
                'leonardo', dotdict({
                    'cache_dir': '/tmp',
                    'trusted_hosts': ['https://pypi.python.org/pypi'],
                    'index': 'https://pypi.python.org/pypi'}))
            # serialize to dot access dict
            search_results = [dotdict(d) for d in search_results]
        except ImportError:
            if request:
                messages.error(request, _(
                    'For this functionality please install pip package'))
        else:
            update_global_repos(search_results)
def update_packages_from_github(query, request=None):
    """updates global REPOS from leonardo github organization
    """

    global REPOS
    global GITHUB_REPOS

    if GITHUB:
        global ORG

        try:
            g = github.Github()
            org = g.get_organization('leonardo-modules')
        except ImportError:
            if request:
                messages.error(request, _(
                    'For this functionality please run pip install PyGithub'))
        else:
            GITHUB_REPOS = org.get_repos()
            update_global_repos(list(org.get_repos()))
            ORG = org
Exemple #19
0
 def render_content(self, options):
     request = options.get('request')
     uas = None
     user_agent = ''
     ip = get_client_ip(request)
     host = request.get_host()
     if 'browser' in self.show_info or 'os' in self.show_info:
         try:
             import httpagentparser
         except ImportError:
             messages.error(request, _('Please install httpagentparser'))
         else:
             uas = request.META.get('HTTP_USER_AGENT')
             user_agent = httpagentparser.detect(uas)
     request = add_client_type(request)
     context = RequestContext(request, {
         'user_agent': user_agent,
         'ip': ip,
         'host': host,
         'widget': self,
     })
     return render_to_string(self.get_template, context)
Exemple #20
0
    def form_valid(self, form):

        # update values from actual parent
        parent = form.cleaned_data['parent']

        fields = ['color_scheme', 'layout', 'theme',
                  'site', 'in_navigation', 'template_key']

        changed_fields = form.changed_data
        for field_name, field in form.fields.items():
            if field_name not in changed_fields and field_name in fields:
                form.cleaned_data[field_name] = getattr(parent, field_name)

        try:
            page = form.save()
            messages.success(
                self.request, _('Page %s was successfully crated.' % page))
        except Exception as e:
            messages.error(self.request, str(e))
            return HttpResponseRedirect(self.object.get_absolute_url())

        return HttpResponseRedirect(page.get_absolute_url())
Exemple #21
0
 def render_content(self, options):
     request = options.get('request')
     uas = None
     user_agent = ''
     ip = get_client_ip(request)
     host = request.get_host()
     if 'browser' in self.show_info or 'os' in self.show_info:
         try:
             import httpagentparser
         except ImportError:
             messages.error(request, _('Please install httpagentparser'))
         else:
             uas = request.META.get('HTTP_USER_AGENT')
             user_agent = httpagentparser.detect(uas)
     request = add_client_type(request)
     context = RequestContext(request, {
         'user_agent': user_agent,
         'ip': ip,
         'host': host,
         'widget': self,
     })
     return render_to_string(self.get_template, context)
    def get_complete_form(self, form_instance, request):

        # use crispy forms
        form_instance.helper = FormHelper(form_instance)
        form_instance.helper.form_action = '#form{}'.format(self.id)

        if self.form_layout:

            try:
                form_instance.helper.layout = eval(self.form_layout)
            except Exception as e:
                messages.error(request.user, "Error raised from"
                               " your layout %s, "
                               "fallback to the default layout " % str(e))

            else:

                form_instance.helper.form_show_labels = self.show_form_title

                return form_instance

        form_instance.helper.layout = Layout()

        # Moving field labels into placeholders
        layout = form_instance.helper.layout
        for field_name, field in form_instance.fields.items():
            layout.append(Field(field_name, placeholder=field.label))

        form_instance.helper.layout.extend([ButtonHolder(
            Submit('submit', _('Submit'), css_class='button white')
        )
        ])

        # still have choice to render field labels
        if not self.show_form_title:
            form_instance.helper.form_show_labels = False

        return form_instance
def pip_install(packages, request=None, reload_server=False):
    """install packages from pip

    if request is provided, user messages is pushed out
    """

    if PIP:
        # install
        try:
            pip.main(['install', packages])
            if request:
                messages.success(request, _(
                    'Packages %s was successfully installed,\
                     please restart your server.' % packages))
        except Exception as e:
            if request:
                messages.error(request, _(
                    'Installing packages raised exception %s' % e))
            else:
                raise e
        else:
            if reload_server:
                # try self kill
                try:
                    import os
                    os.kill(os.getpid(), 9)
                except Exception as e:
                    if request:
                        messages.error(request, _(
                            'Run post install task fails with %s' % e))
                    else:
                        raise e

    else:
        if request:
            messages.error(request, _(
                'For this functionality please install pip package'))
    def render(self, **kwargs):
        request = kwargs['request']
        context = RequestContext(
            request,
            {
                'widget': self,
            }
        )
        form_name = self.fe_identifier

        if self.just_email:
            if self.subscribe_all:
                form_cls = EmailAllSubscriptionForm
            else:
                form_cls = EmailSubscriptionForm
        else:
            if self.subscribe_all:
                form_cls = AllMailingListSubscriptionForm
            else:
                form_cls = MailingListSubscriptionForm

        if request.method == "POST" and (form_name in request.POST.keys()):
            form = form_cls(data=request.POST)
            if form.is_valid():
                form.save(self.mailing_list)
                form.saved = True
        else:
            form = form_cls()

        form.helper = FormHelper(form)
        form.helper.form_tag = False

        if self.form_layout:

            try:
                form.helper.layout = eval(self.form_layout)
            except Exception as e:
                if settings.DEBUG:
                    messages.error(request, str(e))
        else:
            # use default layout
            form.helper.layout = Layout(
                ButtonHolder(
                    FieldWithButtons(Field('email', placeholder=_('Email')),
                                     Submit('submit', _('Subscribe'),
                                            css_class='btn-default'))
                )
            )

            # we must append mailing list fields
            layout = form.helper.layout
            for field in form.hidden_fields():
                layout.append(Field(field.name, placeholder=field.label))

            form.helper.form_show_labels = False

        context.update({
            'object': self.mailing_list,
            'form': form,
            'request': request,
            'form_name': form_name,
        })
        return self.render_response(context)