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
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: 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
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
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 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())
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)