def list_group_by_tag(request, group_tag): groups = models.CommonGroup.objects.filter(tag_name=group_tag) if len(groups) > 0: group = groups[0] url = make_href( "/schreports/table/CommonGroup/%d/%d/form/tree/?only_content=1" % (group.id, group.id)) else: url = make_href( "/schreports/table/CommonGroup/0/form/tree/?only_content=1") return HttpResponseRedirect(url)
def formfield(self, **kwargs): if type(self.to) == str: to = self.model else: to = self.to href1 = make_href( "/%s/table/%s/%s/form/get/?schtml=1" % (to._meta.app_label, to._meta.object_name, self.filter)) href2 = make_href( "/%s/table/%s/%s/add/?schtml=1" % (to._meta.app_label, to._meta.object_name, self.filter)) field = self if self.search_fields: _search_fields = self.search_fields _query = self.query class _Field(forms.ModelChoiceField): def __init__(self, queryset, *argi, **argv): nonlocal _query, _search_fields if _query: if "Q" in _query: queryset = queryset.filter(_query["Q"]) if "order" in _query: queryset = queryset.order_by(*_query["order"]) if "limmit" in _query: queryset = queryset[:_query["limit"]] widget = ModelSelect2WidgetExt( href1, href2, field.verbose_name, queryset=queryset, search_fields=_search_fields, ) widget.attrs["style"] = "width:400px;" argv["widget"] = widget forms.ModelChoiceField.__init__(self, queryset, *argi, **argv) defaults = { "form_class": _Field, } else: defaults = {} defaults.update(**kwargs) return super().formfield(**defaults)
def new_group(request, group_type, parent_id): #new_group/(?P<group_type>\w+)/(?P<parent_id\d+)/$ if parent_id and int(parent_id) > 0: parent = models.CommonGroup.objects.get(id=int(parent_id)) else: parent = None group = models.CommonGroup() if parent: group.parent = parent gparent = parent while gparent.parent: gparent = gparent.parent group.gparent = gparent group.gp_group_def_name = gparent.group_def_name else: group.gp_group_def_name = group_type group.group_def_name = group_type group.save() if not group.gparent: group.gparent = group group.save() url = make_href("/schreports/table/CommonGroup/%d/edit__group/" % group.id) return HttpResponseRedirect(url)
def template_edit(request, pk): table = models.SChTable.objects.get(id=pk) templates = models.SChTemplate.objects.filter(parent=table.parent).filter(name=table.name) if len(templates)==0: template=models.SChTemplate(parent=table.parent, name=table.name) generics = table.schfield_set.filter(type__in=['GTreeForeignKey', 'GHiddenTreeForeignKey',]) if len(generics) > 0: template_suffix = "tree" else: template_suffix = "tbl" file_name = settings.PRJ_PATH + ("/schdevtools/templates_src/schbuilder/wzr/new_generic_%s_template.ihtml" % template_suffix) f = open(file_name, "rt") template.template_code = f.read() f.close() template.save() id = template.id else: id = templates[0].id new_url = make_href("/schbuilder/table/SChTemplate/%s/template_code/py/editor/" % str(id)) return HttpResponseRedirect(new_url)
def inner(request, *args, **kwargs): v = func(request, *args, **kwargs) if 'redirect' in v: return HttpResponseRedirect(make_href(v['redirect'])) elif 'template_name' in v: return render_to_response(v['template_name'], v, request=request) else: return render_to_response(template_name, v, request=request)
def search(request, **argv): q = request.POST.get("q", "") q2 = b32encode(q.encode('utf-8')).decode('utf-8') print("Q:", q2) if hasattr(settings, "SEARCH_PATH"): return HttpResponseRedirect( make_href((settings.SEARCH_PATH % q2) + "?only_content=1")) else: return Http404()
def edit__rep2(request, dochead_id): reps = models.Report.objects.filter(order=dochead_id) if reps.count() > 0: new_url = make_href("/schreports/table/Report/%d/edit__rep/" % reps[0].id) return HttpResponseRedirect(new_url) else: return HttpResponse("Error - report doesn't exist")
def repaction(request, dochead_id, rep_action): doc = DocHead.objects.get(pk=dochead_id) reps = models.Report.objects.filter(order=doc.id, parent=None) if reps.count() > 0: url = make_href("/schreports/table/Report/%d/%s/" % (reps[0].id, rep_action.replace('__', '/'))) return HttpResponseRedirect(url) else: return HttpResponse("Error - document: %d doesn't exists" % dochead_id)
def new_subrep(request, parent_rep_id, rep_type): rep_parent = models.Report.objects.get(pk=parent_rep_id) rep = models.Report() rep.parent = rep_parent rep.order = 0 rep.report_def_name = rep_parent.report_def_name + "/" + rep_type rep.date = datetime.datetime.now() rep.save() url = make_href("/schreports/table/Report/%d/edit__rep/" % rep.id) return HttpResponseRedirect(url)
def edit_page(request, app_or_subject, page_name): page = Page.get_page(request, subject=app_or_subject, name=page_name) #page = Page.objects.get(name=page_name, subject=app_or_subject) if not page: page = Page(app=app, name=page_name, subject=app_or_subject) page.save() redir = make_href("/schwiki/table/Page/%d/edit/?childwin=1" % page.id) return HttpResponseRedirect(redir)
def view_doc_items(request, parent_id): items = models.DocItem.objects.filter(parent=parent_id) if items.count() > 0: new_url = make_href("/schelements/table/DocHead/%s/%s/%slist" % (filter, target, vtype)) view, args, kwargs = resolve(new_url) kwargs['request'] = request return view(*args, **kwargs) else: return HttpResponse("Error - %s document register doesn't exists" % filter)
def inner(request, *args, **kwargs): v = func(request, *args, **kwargs) if isinstance(v, HttpResponse): return v elif "redirect" in v: return HttpResponseRedirect(make_href(v["redirect"])) elif "template_name" in v: return render_to_response(v["template_name"], v, request=request) else: return render_to_response(template_name, v, request=request)
def change_password(request): """Change password view Args: request - django request """ old_password = request.POST.get("current_password", "") new_password = request.POST.get("new_password", "") confirm_password = request.POST.get("confirm_password", ".") if new_password == confirm_password: user = authenticate(username=request.user, password=old_password) if user is not None and user.is_active: user.set_password(new_password) user.save() return HttpResponseRedirect( make_href("/schsys/do_logout/?schtml=1")) else: messages.add_message(request, messages.ERROR, 'Bad old password') return HttpResponseRedirect(make_href('/')) else: messages.add_message(request, messages.ERROR, 'Bad confirmed password') return HttpResponseRedirect(make_href('/'))
def get_table_row(context, field_or_name, app_name=None, table_name=None, search_fields=None, filter=None, label = None, initial = None, is_get_button=True, is_new_button=False, get_target="popup_edit", new_target="inline"): if type(field_or_name) in (SafeText, str,): model = import_model(app_name, table_name) _name = field_or_name _app_name = app_name _table_name = table_name _initial = initial _label = label if label else table_name _queryset = None _search_fields = search_fields else: _queryset = field_or_name.field.queryset model = _queryset.model _name = field_or_name.name _app_name = app_name if app_name else _queryset.model._meta.app_label _table_name = table_name if table_name else _queryset.model._meta.object_name _initial = initial if initial else field_or_name.initial _label = label if label else field_or_name.label if search_fields: _search_fields = search_fields else: if hasattr(field_or_name, 'search_fields'): _search_fields = field_or_name.search_fields else: _search_fields = "name__icontains" if 'formformat' in context: formformat = context['formformat'] else: formformat = "12:3:3/12:12:12" if TreeModel in model.__bases__: if filter: href1 = make_href("/%s/table/%s/%s/0/form/gettree/?schtml=1" % (_app_name, _table_name, filter)) href2 = make_href("/%s/table/%s/-/add/?schtml=1" % (_app_name, _table_name)) else: href1 = make_href("/%s/table/%s/0/form/gettree/?schtml=1" % (_app_name, _table_name)) href2 = make_href("/%s/table/%s/-/add/?schtml=1" % (_app_name, _table_name)) else: _filter = filter if filter else "-" href1 = make_href("/%s/table/%s/%s/form/get/?schtml=1" % (_app_name, _table_name, _filter)) href2 = make_href("/%s/table/%s/%s/add/?schtml=1" % (_app_name, _table_name, _filter)) class _Form(forms.Form): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.fields[_name] = forms.ChoiceField( label = _label, widget=ModelSelect2WidgetExt(href1, href2, is_new_button, is_get_button, _label, model=model, search_fields=[_search_fields, "description__icontains"], queryset = _queryset, ), ) form = _Form(initial = { _name: _initial }) return { 'form': form, 'field': form[_name], "formformat": formformat, }
def auth(request, key, path): objects = models.UrlWithAuth.objects.filter(key=key) if len(objects) == 1: username = objects[0].username users = User.objects.filter(username=username) if len(users)==1: login(request, users[0]) if path: new_url = make_href(path) else: new_url = make_href(objects[0].redirect_to) if not new_url.startswith('/'): new_url = '/' + new_url else: new_url = make_href('/') p = request.get_full_path() if '?' in p: x = p.split('?', 1) if x[1]: new_url += '?' + x[1] return HttpResponseRedirect(new_url)
def template_edit3(request, pk): view = models.SChView.objects.get(id=pk) templates = models.SChTemplate.objects.filter(parent=view.parent).filter(name='v_'+view.name) if len(templates)==0: template=models.SChTemplate(parent=view.parent, name='v_'+view.name) file_name = settings.PRJ_PATH + "/schdevtools/templates_src/schbuilder/wzr/new_generic_form_template.ihtml" f = open(file_name, "rt") template.template_code = f.read() f.close() template.save() id = template.id else: id = templates[0].id new_url = make_href("/schbuilder/table/SChTemplate/%s/template_code/py/editor/" % str(id)) return HttpResponseRedirect(new_url)
def view_doc_heads(request, filter, target, vtype): regs = models.DocReg.objects.filter(name=filter.replace('_', '/')) if regs.count() > 0: new_url = make_href("/schelements/table/DocHead/%s/%s/%slist/" % (filter, target, vtype)) view, args, kwargs = resolve(new_url) kwargs['request'] = request #def init(view_obj): # view_obj.template_name = "abc" #kwargs['init'] = init return view(*args, **kwargs) else: return HttpResponse("Error - %s document register doesn't exists" % filter)
def new_rep(request, rep_type, doc_type_name): #new_rep/(?P<rep_type>\w+)/(?P<doc_type_name>\w+)/$ doc_type = DocType.objects.filter(name=doc_type_name) if len(doc_type) == 1: doc = DocHead() doc.doc_type_parent = doc_type[0] doc.date = datetime.datetime.now() doc.status = 'edit' doc.operator = request.user.username doc.save() rep = models.Report() rep.parent = None rep.order = doc.id rep.report_def_name = rep_type rep.date = datetime.datetime.now() rep.save() url = make_href("/schreports/table/Report/%d/edit__rep/" % rep.id) return HttpResponseRedirect(url) else: return HttpResponse("Error - document type: %s doesn't exists" % doc_type_name)
def favicon(request): return HttpResponseRedirect(make_href("/static/favicon.ico"))
def run_python_shell_task2(request): id = get_process_manager().put(request, "python-shell", "python3", '-i') new_url = make_href("../../schsys/thread/%d/edit/" % id) return HttpResponseRedirect(new_url)
def run_python_shell_task(request, base_path, prj_name): id = run_python_shell_task_base(request, base_path, prj_name) new_url = make_href("../../schsys/thread/%d/edit/" % id) return HttpResponseRedirect(new_url)
def subrep(context, name, type): rep = context['rep'] rep_def = context['rep_def'] url = make_href("/schreports/edit_subrep/%d/%s/%s/" % (rep.id, name, type)) return {'href': url}
if settings.URL_ROOT_FOLDER: urlpatterns = [ #path(settings.URL_ROOT_FOLDER+"/", include(urlpatterns)), url(settings.URL_ROOT_FOLDER + "/", include(_urlpatterns)), ] else: urlpatterns = _urlpatterns _urlpatterns.extend([ url('schsys/jsi18n/$', django.views.i18n.JavaScriptCatalog, {'packages': ('django.conf', )}), url('schsys/i18n/', include(django.conf.urls.i18n)), url('schplugins/(?P<template_name>.*)', views.plugin_template), url('site_media/(.*)$', django.views.static.serve, {'document_root': settings.MEDIA_ROOT}), url('select2/', include(django_select2.urls)), url('favicon.ico', views.favicon), url(make_href('sw.js'), views.sw), ]) def app_description(prj): file_name = os.path.join(os.path.join(settings.PRJ_PATH, prj), 'settings_app.py') try: with open(file_name, "rt") as f: txt = f.read() for pos in txt.split('\n'): if pos.startswith('PRJ_TITLE'): return pos.split('=')[1].split('\"')[1] return prj except: return prj if len(settings.PRJS) > 0:
if 'from_pytigon' in request.GET: return HttpResponse("Error!") else: return HttpResponseRedirect(path_after_error) urlpatterns = [ url(r'^ok/$', views.ok, name='ok'), url(r'^(?P<id>.+)/(?P<title>.+)/ret_ok/$', views.ret_ok, name='ret_ok'), url(r'^login/$', TemplateView.as_view(template_name='schapp/login.html')), url(r'^do_login/$', sch_login), #, { 'template_name': 'schapp/index.html'}), url(r'^do_logout/$', django.contrib.auth.views.LogoutView.as_view(next_page = make_href("/") ) ), url(r'^change_password/$', views.change_password), url(r'^accounts/', include('allauth.urls')), url(r'^message/(?P<titleid>.+)/(?P<messageid>.+)/(?P<id>\d+)/$', views.message), url(r'^datedialog/(?P<action>\w+)/$', views.datedialog), url(r'^listdialog/(?P<action>\w+)/$', views.listdialog), url(r'^treedialog/(?P<app>\w+)/(?P<tab>\w+)/(?P<id>[\d-]*)/(?P<action>\w+)/$', views.treedialog), url(r'^tabdialog/(?P<app>\w+)/(?P<tab>\w+)/(?P<id>[\d-]*)/(?P<action>\w+)/$', views.tabdialog), url(r'^table/(?P<app>\w+)/(?P<tab>\w+)/grid/$', views.tbl), url(r'^widget_web$', TemplateView.as_view(template_name='schsys/widget_web.html') ), url(r'^plugins/(?P<app>\w+)/(?P<plugin_name>[\w_]+)/$', views.plugins),