emulate desktop multi-windows

30 views
Skip to first unread message

johnf

unread,
Jan 18, 2018, 8:08:29 AM1/18/18
to Django users
Hi,

I have a desktop CRUD application that allows the same form to be opened
many times.  Example: I can open a customer's (A) record in one
window/form and then from the first window/form (customer A's) open a
second or third window to process customer B or customer C etc... all
without closing any of the windows/forms.  IOW I can have many windows
open at the same time all using the same form with different customer
records.

How can I do this with Django?  I would like to replace the desktop app
with a web app using Django.


Johnf

Andréas Kühne

unread,
Jan 18, 2018, 8:11:52 AM1/18/18
to django...@googlegroups.com
Hi,

You would have to either write a single page application that handles the window creations (to make it more like an application). But the standard way would just to open a new browser window - You can use the target property on an a tag (for the link to the customer) to open a new page each time (target="_blank").

Regards,

Andréas




Johnf

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django...@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/497247eb-313a-c0e6-0d1b-f10ece876f10%40jfcomputer.com.
For more options, visit https://groups.google.com/d/optout.

Jani Tiainen

unread,
Jan 18, 2018, 8:44:05 AM1/18/18
to django...@googlegroups.com
Hi,

This actually doesn't have anything to do with Django, but frontend.
Basically you need to pick some Javascript UI framework that supports
features you're after.

Personally I've only used Dojotoolkit (free, nicely licensed) and ExtJS
(commercial).
--
Jani Tiainen

johnf

unread,
Jan 18, 2018, 8:44:16 AM1/18/18
to django...@googlegroups.com

Doesn't opening a new browser window imply using lots of memory? 

Johnf

To unsubscribe from this group and stop receiving emails from it, send an email to django-users...@googlegroups.com.

To post to this group, send email to django...@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.

johnf

unread,
Jan 18, 2018, 8:46:04 AM1/18/18
to django...@googlegroups.com
But doesn't Django provide the template system?  Do you replace the
template system with DoyuoToolkit?

Johnf

Jani Tiainen

unread,
Jan 18, 2018, 9:23:43 AM1/18/18
to django...@googlegroups.com
Hi.

Yes and no. Usually you do SPA, a single page application, that just talks to backend, Django in this case, using some means. REST api and JSON data is quite common.

So basically you need only one template that fires up rest of your interface.

There are though alternative approaches like using hybrid of JS library to request HTML fragments and render them using JS. Fragments then are generated using templates.

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django...@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.

johnf

unread,
Jan 18, 2018, 11:26:48 AM1/18/18
to django...@googlegroups.com

I have the backend covered with REST.   When I try to google hybrid google comes up with hybrid mobile apps.  I did find fragment.js but I don't see any type of real information on how to use it.   I did find some info on javascript and multi-windows but here again it looks like it wants to replace the template system that Django uses.

It just seems to me that this issue must have come up in the past.  There must be a solution provided by Django without replacing parts of the Django framework????

Johnf

To unsubscribe from this group and stop receiving emails from it, send an email to django-users...@googlegroups.com.

To post to this group, send email to django...@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.

Andréas Kühne

unread,
Jan 18, 2018, 12:49:46 PM1/18/18
to django...@googlegroups.com
Hi,

I think you are not thinking this completely through correctly.

Django is a framework used to generate HTML pages. HTML pages render one page at a time in one webbrowser window. That is the way HTML works.

You can via javascript do some funky things, like Single page applications - but then most of the templating engine in django isn't used. You could create templates on the backend and send them via ajax to the frontend but that is mainly used for rendering partial pages and not for complete pages. Also, it would be really cumbersome to write the code.

If you already have a REST backend, why do you need django at all? Django isn't the best framework for getting information from a REST API and then publishing the information. You really should be looking into running a single page application in that case...

Django can be used to create a REST backend for the single page application however.

Regards,

Andréas

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django...@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.

johnf

unread,
Jan 18, 2018, 1:26:59 PM1/18/18
to django...@googlegroups.com

The reason I wanted Django was to insure that the data is valid (using python).   When they enter the data and the submit button is clicked I want to be able to modify the response using python.

So what I'm hearing from the list - is that in general - people are not using the Django template system.  Is that right?

I have been doing a little research and have discovered a couple of javascript tools that allow multi - windows/forms/dialogs/frames.   But then - like you said - I'm replacing the Django template system.

It seems that web UI is still not up to the desktop abilities.  That's not good.  BTW I was looking at Electron and discovered that it can easily match the desktop multi-window and it's using web tech.  So I'm guessing it is possible but not often requested.

Johnf

To unsubscribe from this group and stop receiving emails from it, send an email to django-users...@googlegroups.com.

To post to this group, send email to django...@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.

Andréas Kühne

unread,
Jan 18, 2018, 2:12:55 PM1/18/18
to django...@googlegroups.com
No John,

I don't think you understand what we are saying :-)

Like I said earlier - Django is a HTML framework - like ALL HTML framework, it renders the pages you are seeing on the backend and presents the information to the user. That is per design in the HTML world. You click on a link and then the server renders a new page and so on. There is no way to add "windows" in any other way than to open a new browser. That is the way HTML works.

If you want to add a fancy single page application (which  is what you are suggesting) then the only way to do so is to use a Javascript framework of some kind. What that does is to add the ability to do windows and the like - just in the way you want to do it - and that is still within the "web UI wold". If you look at things like the google cloud engine interface or gmail or the amazon AWS interface, that is all done on the web, with a web UI. However all of those pages REQUIRE javascript to function.

So it is often requested and I am currently working on a single page application that uses django for the backend, but HTML cannot render the single page application - that is done in a javascript framework. So web UI is completely on par with a desktop application but it requires more components that you are willing to use :-)

Regards,

Andréas

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django...@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.

Karol Bujaček

unread,
Jan 18, 2018, 3:25:39 PM1/18/18
to django...@googlegroups.com



On 01/18/2018 05:25 PM, johnf wrote:

I have the backend covered with REST.   When I try to google hybrid google comes up with hybrid mobile apps.  I did find fragment.js but I don't see any type of real information on how to use it.   I did find some info on javascript and multi-windows but here again it looks like it wants to replace the template system that Django uses.

It just seems to me that this issue must have come up in the past.  There must be a solution provided by Django without replacing parts of the Django framework????

Johnf


Dear Johnf,

You can also take a look at django-jstemplate at <https://github.com/mjumbewu/django-jstemplate>. From their page:

A templatetag framework for easier integration of mustache.js, dust.js, handlebars.js, or other JavaScript templates with Django templates.


Best regards,
Karol

johnf

unread,
Jan 18, 2018, 5:11:46 PM1/18/18
to django...@googlegroups.com

I believe I understand what you are saying.  But I was hoping that Django offered the javascript framework that allowed multi-windows.  To get what I want I will have to use a javascript framework - I understand.  But that said, I have been researching several of the javascript frameworks and they do in fact allow new tabs (using chrome).  Example: google mail will allow multi-pages (actually tabs) of contacts just with multi clicks on the GMAIL dropdown.  But that wasn't what I was hoping for - I want individual windows/forms that I can resize, move, Max, Min, etc... So far the only thing I have found was the electron  app I spoke about earlier.  The electron framework allowed windows that can be resized, moved about the screen, and closed.  I am still researching but so far only Electron.  BTW the Electron is really a desktop app using web tools (css, html, javascript, and nodejs).  I'm guessing (mostly from your emails) that there are javascript frameworks that will allow what I looking for - I  just haven't found it YET!

Johnf

To unsubscribe from this group and stop receiving emails from it, send an email to django-users...@googlegroups.com.

To post to this group, send email to django...@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.

Andréas Kühne

unread,
Jan 19, 2018, 8:17:35 AM1/19/18
to django...@googlegroups.com
HI John,

Django is a HTML framework - you would need to add the javascript part yourself - that's just the way it works.

There are several different ways of doing what you want, here are a couple of examples:

I wouldn't use qooxdoo, but the dialogs are nice :-)

It's really just a matter of searching google....

Look into which JS framework you want to use and then the ui will solve itself.

Regards,

Andréas

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django...@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.

Jason

unread,
Jan 19, 2018, 8:42:36 AM1/19/18
to Django users
In other words, Django has the ability to generate HTML from the context you provide it, which is then rendered by the browser.  It doesn't have the ability to manipulate as you want because you need to set up a method for the browser to communicate back to the server.

That's what people here are saying.  You have the ability to handle requests, process data and return responses with django.  Now you need to use browser-side development in order to have your users consume and interact with your Django application.

johnf

unread,
Jan 19, 2018, 12:15:06 PM1/19/18
to Jani Tiainen, Django users

Thank you very much - I was about to check out EXTjs along with DojotoolKit today.

It looks like I might be able to get this done using web tech.

Johnf


On 01/19/2018 02:42 AM, Jani Tiainen wrote:

Hi,

Also Dojotoolkit has windows (or actually Dijit does which is part of Dojotoolkit):

https://dojotoolkit.org/reference-guide/1.10/dojox/layout/FloatingPane.html

To my knowledge also Kendo UI does have such a window you're looking for.

For more options, visit https://groups.google.com/d/optout.

-- 
Jani Tiainen

Reply all
Reply to author
Forward
0 new messages