[IMP] static home version changed my mind
bzr revid: xmo@openerp.com-20110728142537-vrwn9w0vvyl00128
|
@ -4,4 +4,5 @@
|
|||
"depends" : ['base'],
|
||||
'active': True,
|
||||
'js': ['static/src/js/home.js'],
|
||||
'css': ['static/src/css/home.css']
|
||||
}
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
.oe-static-home {
|
||||
text-align: center;
|
||||
}
|
||||
.oe-static-home-banner {
|
||||
display: inline-block;
|
||||
margin: 0.5em 0;
|
||||
padding: 0.5em 5em;
|
||||
border: 1px inset #808080;
|
||||
background-color: #e6e3e3;
|
||||
-moz-border-radius: 2em;
|
||||
-webkit-border-radius: 2em;
|
||||
border-radius: 2em;
|
||||
text-align: left;
|
||||
}
|
||||
.oe-static-home-banner h1 {
|
||||
margin: 0 0 0.3em
|
||||
}
|
||||
.oe-static-home-banner p {
|
||||
|
||||
}
|
||||
.oe-static-home-banner address {
|
||||
font-style: normal;
|
||||
padding-left: 2em;
|
||||
}
|
||||
|
||||
.oe-static-home-tiles {
|
||||
text-align: left;
|
||||
}
|
||||
.oe-static-home-tiles td {
|
||||
vertical-align: top;
|
||||
}
|
||||
.oe-static-home-tile {
|
||||
margin: 0.5em;
|
||||
padding: 0 1em;
|
||||
}
|
||||
.oe-static-home-tile-logo {
|
||||
margin-right: 0.5em;
|
||||
}
|
||||
.oe-static-home-tile-text h2 {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0.2em;
|
||||
}
|
||||
.oe-static-home-tile-text p {
|
||||
margin: 0.5em 0;
|
||||
}
|
After Width: | Height: | Size: 9.1 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 2.7 KiB |
After Width: | Height: | Size: 7.2 KiB |
After Width: | Height: | Size: 8.5 KiB |
Before Width: | Height: | Size: 894 B |
Before Width: | Height: | Size: 948 B After Width: | Height: | Size: 7.0 KiB |
Before Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 5.5 KiB |
Before Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 7.4 KiB |
After Width: | Height: | Size: 8.3 KiB |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 4.1 KiB |
After Width: | Height: | Size: 5.7 KiB |
Before Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 8.5 KiB |
Before Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 1.4 KiB |
|
@ -4,37 +4,90 @@ openerp.base_default_home = function (openerp) {
|
|||
var old_home = openerp.base.WebClient.prototype.default_home;
|
||||
|
||||
openerp.base_default_home = {
|
||||
applications: [[
|
||||
'sales',
|
||||
'purchases',
|
||||
'warehouse',
|
||||
'manufacturing'
|
||||
applications: [
|
||||
[
|
||||
{
|
||||
module: 'crm', name: 'CRM',
|
||||
help: "Acquire leads, follow opportunities, manage prospects and phone calls, \u2026"
|
||||
}, {
|
||||
module: 'sale', name: 'Sales',
|
||||
help: "Do quotations, follow sales orders, invoice and control deliveries"
|
||||
}, {
|
||||
module: 'account_voucher', name: 'Invoicing',
|
||||
help: "Send invoice, track payments and reminders"
|
||||
}, {
|
||||
module: 'project', name: 'Projects',
|
||||
help: "Manage projects, track tasks, invoice task works, follow issues, \u2026"
|
||||
}
|
||||
], [
|
||||
'project',
|
||||
'accounting',
|
||||
'human resources',
|
||||
'marketing'
|
||||
{
|
||||
module: 'purchase', name: 'Purchase',
|
||||
help: "Do purchase orders, control invoices and reception, follow your suppliers, \u2026"
|
||||
}, {
|
||||
module: 'stock', name: 'Warehouse',
|
||||
help: "Track your stocks, schedule product moves, manage incoming and outgoing shipments, \u2026"
|
||||
}, {
|
||||
module: 'hr', name: 'Human Resources',
|
||||
help: "Manage employees and their contracts, follow laves, recruit people, \u2026"
|
||||
}, {
|
||||
module: 'point_of_sale', name: 'Point of Sales',
|
||||
help: "Manage shop sales, use touch-screen POS"
|
||||
}
|
||||
], [
|
||||
'knowledge',
|
||||
'point of sale',
|
||||
'tools',
|
||||
'administration'
|
||||
{
|
||||
module: 'profile_tools', name: 'Extra Tools',
|
||||
help: "Track ideas, manage lunch, create surveys, share data"
|
||||
}, {
|
||||
module: 'mrp', name: 'Manufacturing',
|
||||
help: "Manage your manufacturing, control your supply chain, personalize master data, \u2026"
|
||||
}, {
|
||||
module: 'marketing', name: 'Marketing',
|
||||
help: "Manage campaigns, follow activities, automate emails, \u2026"
|
||||
}, {
|
||||
module: 'knowledge', name: 'Knowledge',
|
||||
help: "Track your documents, browse your files, \u2026"
|
||||
}
|
||||
]
|
||||
]
|
||||
};
|
||||
|
||||
openerp.base.WebClient.prototype.default_home = function () {
|
||||
var self = this;
|
||||
var Installer = new openerp.base.DataSet(
|
||||
this, 'base.setup.installer');
|
||||
Installer.call('already_installed', [], function (installed_modules) {
|
||||
if (!_(installed_modules).isEmpty()) {
|
||||
return old_home.call(self);
|
||||
}
|
||||
self.$element.find('.oe-application').html(
|
||||
QWeb.render('HomeInstallerTiles', {
|
||||
rows: openerp.base_default_home.applications
|
||||
}));
|
||||
});
|
||||
}
|
||||
_.extend(openerp.base.WebClient.prototype, {
|
||||
default_home: function () {
|
||||
var self = this;
|
||||
var Installer = new openerp.base.DataSet(
|
||||
this, 'base.setup.installer');
|
||||
Installer.call('already_installed', [], function (installed_modules) {
|
||||
if (!_(installed_modules).isEmpty()) {
|
||||
return old_home.call(self);
|
||||
}
|
||||
self.$element.find('.oe-application').html(
|
||||
QWeb.render('StaticHome', {
|
||||
url: window.location.protocol + '//' + window.location.host + window.location.pathname,
|
||||
session: self.session,
|
||||
rows: openerp.base_default_home.applications
|
||||
})).delegate('.oe-static-home-tile-text button', 'click', function () {
|
||||
self.install_module($(this).val());
|
||||
})
|
||||
|
||||
});
|
||||
},
|
||||
install_module: function (module_name) {
|
||||
var self = this;
|
||||
var Modules = new openerp.base.DataSetSearch(
|
||||
this, 'ir.module.module', null,
|
||||
[['name', '=', module_name], ['state', '=', 'uninstalled']]),
|
||||
Upgrade = new openerp.base.DataSet(this, 'base.module.upgrade');
|
||||
Modules.read_slice(['id'], null, null, function (records) {
|
||||
if (!(records.length === 1)) { return; }
|
||||
Modules.call('state_update',
|
||||
[_.pluck(records, 'id'), 'to install', ['uninstalled']],
|
||||
function () {
|
||||
Upgrade.call('upgrade_module', [[]], function () {
|
||||
alert('done');
|
||||
});
|
||||
}
|
||||
)
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
|
|
|
@ -1,17 +1,42 @@
|
|||
<template>
|
||||
<div t-name="HomeInstallerTiles" class="oe-dashboard-home-tiles">
|
||||
<table width="100%">
|
||||
<tr t-foreach="rows" t-as="row">
|
||||
<td t-foreach="row" t-as="application" width="25%">
|
||||
<div class="oe-dashboard-home-tile"
|
||||
t-att-data-menuid="application">
|
||||
<div class="oe-dashboard-home-tile-icon">
|
||||
<img t-att-src="'/base_default_home/static/src/img/' + application.replace(new RegExp('\\s', 'g'), '-') + '.png'"/>
|
||||
</div>
|
||||
<span><t t-esc="application"/></span>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div t-name="StaticHome" class="oe-static-home">
|
||||
<div class="oe-static-home-banner">
|
||||
<h1>Welcome to OpenERP</h1>
|
||||
<p>
|
||||
Don't forget to bookmark your application address to come back
|
||||
later:
|
||||
</p>
|
||||
<address>
|
||||
URL: <a t-att-href="url"><t t-esc="url"/></a><br/>
|
||||
login: <t t-esc="session.login"/>
|
||||
</address>
|
||||
</div>
|
||||
|
||||
<div class="oe-static-home-tiles">
|
||||
<table width="100%">
|
||||
<tr t-foreach="rows" t-as="row">
|
||||
<td t-foreach="row" t-as="application" width="25%">
|
||||
<table class="oe-static-home-tile">
|
||||
<tr>
|
||||
<td>
|
||||
<div class="oe-static-home-tile-logo">
|
||||
<img t-att-src="'/base_default_home/static/src/img/' + application.module + '.png'"/>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="oe-static-home-tile-text">
|
||||
<h2><t t-esc="application.name"/></h2>
|
||||
<p><t t-esc="application.help"/></p>
|
||||
<button type="button"
|
||||
t-att-value="application.module">
|
||||
Install</button>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
|