Create a web page in odoo 8 - templates

I create a web page in odoo 8,
I created a template in /mymodule/views/my_template.xml
<template id="dms_web_client.webclient_bootstrap1" name="FTP server Webclient">
<t t-call="website.layout">
<a id="create_new_directory" href="#" data-action="new_dir">New Directory</a>
</t>
</template>
When I click on a link New Directory I need to open up a pop up with a text box and file browse and save & cancel button. Like create a new page in website module.
I don't know what to do next. Please help.

If you need to interact with other models within your module (or even Odoo in general), you're probably going to want to create a controller, which can contain python code and allow your web page to interact with models. On a simple level, a controller can go in your main folder (ie /mymodule/my_template_controller.py) and be declared in your init.py file (import my_template_controller). You can then set a route that matches your template id and create forms that post to the controller, allowing python code to be run and models to be interacted with. That can allow you to have your file browse and save and cancel button.
As far as the front end, you can use html, css, and Javascript like any normal website and they can be declared via normal links in the page header.
Odoo does have some documentation, but it is pretty poor, unfortunately. It took me a long time to decipher how to fully build a web application within it. However, it works great once you figure it out and it generally follows the guidelines of any other model/controller/view application.
http://www.odoo.com/documentation/9.0/howtos/website.html
https://www.odoo.com/documentation/9.0/reference/http.html

Related

Editing a previously generated HTML file with Django

I am very new to web development and the following is my use-case :
I have a large number of Bokeh charts, each in a separate HTML file.
In simple terms, I would like to have a home page, where I can provide
links to each one of these charts. However, During runtime, I would
like to edit these separate HTML files, so as to provide a link to go
back to the home page or to other pages. I would not like to modify
the HTML files permanently, so I can make use of them outside of the
web page as well for simple visualization on my system.
What is the best way to do this ? Are there technologies outside Django, I should be looking at to do something like this ?
If most of the content is static, maybe have a look at Jekyll.
The include functionality would let you create one file with the 'link back to the homepage' or in fact further content which you want to avoid repeating (such as navbars, headers, footers).
Bootstrap 4 is your freind for making the site look shiney.
As you're building the site you can run the development server with jekyll serve which allows you to connect to a development server from your browser, and preview changes as you're making them. This would be accessible somewhere like http://localhost:4000/
When you're ready to publish, you can use the jekyll build command, which outputs all of the static HTML files to the _site directory. Notice that at this point, the step of 'putting the homepage link in every page' is handled automatically by Jekyll and you end up with a directory you can upload directly to any hosting platform. The original HTML files/Boken Charts can therefor remain in their original form for use elsewhere.
This method is probably much more effiient than using Django for your use-case, which seems to require serving lots of static content whch already exists. With Django in production you'd need an application server, as well as a webserver and possibly a database which means more things to go wrong.
For bonus points, once you've got the hosting setup, stick the whole thing behind CloudFlare to reduce your hosting costs, and improve access speeds for visitors around the world!
Good luck.
EDIT: response to comment:*
Do you mean that I should abandon django altogether ?
If the purpose is just to serve your exising HTML files to the public, without any requirement for authentication, editing of content by users through the frontend, or more advanced back-end functions, then yes Django is probably overkill for this task.
How is Jekyll different from Django ?
Django is a Python Web Framework, which allows you to build an interactive site on which users or staff can login, post articles, comment, etc. One of its key features is the ability to define database relationships trough 'Models' and then have all the admin-side forms generated automatically in the background. This means, with minimal work, you can instantly have the 'admin portal' side of the site live, which works great for use-cases like large blogs or news sites. You would then build the frontend, which can also be interactive. To launch this into production is a separate task which involves configuring multiple server components.
Jeykll on the other hand is much simpler, and basically gives you a way to create some template HTML files (avoiding the need to repeat code for stuff like navigation bars) and then with the jekyll build command outputs a _site directory which can be uploaded straight to a basic webserver. This is the crucial part, as you then only need a webserver which can serve static content, rather than requiring python, a database, application server like UWSGI, etc
Let's look at this example from the Jeyll Docs with your usecase in mind.
You could define a YML file with a list of all your charts:
docs_list_title: All Charts here.
docs:
- title: A Lovely Bokeh Chart.
url: bokeh_chart_1.html
- title: This Bokeh Chart is even Better
url: bokeh_chart_2.html
You mentioned previously that you already have the HTML files, so really what you've done here is made a list of those, which can be interpreted by the frontend.
The HTML template portion would look something like this:
<h2>{{ site.data.samplelist.docs_list_title }}</h2>
<ul>
{% for item in site.data.samplelist.docs %}
<li>{{ item.title }}</li>
{% endfor %}
</ul>
This would result in a list of links to all of your Charts, with the link text as the title.
Obviously you could then go further and add further info to the YML file, like beneath each url put publisher: someone which could then be accessed in the template's for loop as {{item.publisher}}
Can such tools like Jekyll, Django and Bootstrap be used together ?
Bootstrap can be used with Django or Jekyll, as it is a CSS library which controls how HTML is rendered in the user's browser. Check the documentation for more examples of its capability.
A good starting point may be to download a theme from somewhere like Start Bootstrap. Once you have that as a ZIP file, you can put it in your Jeykll project and attempt to have it render through the dev server with jekyll serve. You can then remove nav bar or header code to separate include files (see my earlier link to the Jeykll docs) and before you know it you'll be seeing progress.
The best way to learn is to just go ahead and try this!

how to render a sitecore partial without pulling it in as a datasource?

You can create a versioned image in Sitecore by referencing its item url like so:
<img src="~/media/CEB3BE892F3E47E9BCEC3F357F974606.ashx">
Is there a similar way to reuse a portion of html? Say a header or footer or dropdown menu, for example.
I'm familiar with how to do this in Rails, but don't have the user privileges I'd need in Sitecore to be able to do this in anything other than html/css/js. I can't modify the templates or go into the C# code.
Depending on whether you're using Web Forms or MVC you'll want to know about either Asp.Net MVC Partial Views, or Asp.Net User Controls to create a sublayout/rendering.
However since you don't have access to the code, I don't think there's really anything you can do.

Reload googlemaps after user clicks a link in Django

I am doing a project in Django and i want to have some google maps displayed in my site. So, i installed django-easy-maps and successfully used it in a sample template. So, i am ready with my maps.
The interface i want to implement is this
http://i49.tinypic.com/sowm74.png
I want to display the maps where the Hellow World! container is and with different links on the sidebar i want to refresh the map being displayed on user click without reloading the page.
I did some researching and it seems Ajax is the solution...
Can anybody tell me how i might achieve this (with or without Ajax ) ?
Sorry for sounding like a noob but i am fairly new to this.
The basic steps are:
Create a view for the Google Maps section to the right. This view does not return a full HTML page but only the HTML for that section (which contains your Google Maps map).
When the user clicks on a link on the left, use JavaScript to perform an ajax call to request that page. In short this means: attach an event handler to the onclick event of those links and in code you can perform an ajax call .Many people use a JavaScript library for this purpose, such as jQuery (which has $.ajax()).
You can then use JavaScript to put the received HTML inside the container on the right (using $.html()).

coldfusion - file content editing

I've got fw1 using the content of the default.cfm page as the editable content region. While this works fine for static content, I'd like to add the ability to edit the content over with fckeditor or some other in-browser WYSIWYG tool.
Is there any tool you could recommend that would make this easy? I don't want to convert to a CMS like mura, just want to login and the ability to edit the contents of about 5 files, with the possibility of creating a timestamped backup of the file.
We have the concept of a dynamic text area on some pages on applications that don't require a full on cms.
This is with ColdBox, but you should be able to implement something similar in fw1.
We have a helper component with a method that allows us to "render dynamic text" with a specific code eg. "helppagetext" in a zone in the page. We then have a very simple CRUD application using CKEditor that saves text blocks against those codes. The CRUD application is protected by a pre-existing login system.
It is pretty simple to implement something like this, especially if you already have a security and login system in place.
Hope that helps.
ColdFusion 8 and above has a built in WSYIWYG editor. It is a part of <cftextarea
http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=Tags_t_02.html

Help inserting iframe into Joomla 1.5.9

I've done some research and learned that for Joomla 1.5.9 to work with iframe tags you must set permissions in article manager > parameters > filtering groups to whitelist the super administrator, and then set user manager > select user > user editor to "Editor - No Editor". After doing this, then opening an article, opening the html editor and inserting the iframe like so:
<iframe src="http://thewebsite.tumblr.com/" width="100%" height="300">
<p>Your browser does not support iframes.</p>
</iframe>
The editor continues to strip out the iframe code. Why would this happen?! I'm sure all of the settings I've mentioned earlier are set according to the tutorials I've come across. Are there any factors I need to take into consideration that I'm missing? Is there another way to insert an iframe into a custom template?
I hope someone can help!!
Inside an Article you are best of using a plugin :
http://extensions.joomla.org/extensions/4144/details
it gives you the ability to insert an iframe by using e.g. {iframe width="90%" height="300" frameborder="1" scrolling="yes"}url{/iframe} also within the TinyMCEeditor.
If you don't need antyhing else inside the article you can use menu item/link. Internal Link - Wrapper
When the Wrapper link is selected, it expands to display the Wrapper layout. This is used to show an external web site inside a page in your web site, using an HTML IFrame. The external web site is contained inside the Wrapper. You can navigate to different pages in the wrapped web site, all inside the page of your web site.
http://docs.joomla.org/Help16:Menus_Menu_Item_Wrapper