From 109ddd9d0ca7760806aef959f55ce649f2036df0 Mon Sep 17 00:00:00 2001 From: "Vaibhav (OpenERP)" Date: Thu, 3 Nov 2011 16:21:41 +0530 Subject: [PATCH 01/59] [IMP] Gantt View.Still need to improve for group by. bzr revid: vda@tinyerp.com-20111103105141-dahiz09fvu0l45bu --- .../lib/dhtmlxGantt/sources/dhtmlxcommon.js | 31 +++ .../lib/dhtmlxGantt/sources/dhtmlxgantt.js | 19 +- addons/web_gantt/static/src/js/gantt.js | 202 ++++++++++++++---- addons/web_gantt/static/src/xml/web_gantt.xml | 2 +- 4 files changed, 197 insertions(+), 57 deletions(-) diff --git a/addons/web_gantt/static/lib/dhtmlxGantt/sources/dhtmlxcommon.js b/addons/web_gantt/static/lib/dhtmlxGantt/sources/dhtmlxcommon.js index bc7de14346d..7f68a0a702c 100644 --- a/addons/web_gantt/static/lib/dhtmlxGantt/sources/dhtmlxcommon.js +++ b/addons/web_gantt/static/lib/dhtmlxGantt/sources/dhtmlxcommon.js @@ -2,6 +2,37 @@ Copyright DHTMLX LTD. http://www.dhtmlx.com To use this component please contact sales@dhtmlx.com to obtain license */ + +dhtmlx=function(obj){ + for (var a in obj) dhtmlx[a]=obj[a]; + return dhtmlx; //simple singleton +}; +dhtmlx.extend_api=function(name,map,ext){ + var t = window[name]; + if (!t) return; //component not defined + window[name]=function(obj){ + if (obj && typeof obj == "object" && !obj.tagName){ + var that = t.apply(this,(map._init?map._init(obj):arguments)); + //global settings + for (var a in dhtmlx) + if (map[a]) this[map[a]](dhtmlx[a]); + //local settings + for (var a in obj){ + if (map[a]) this[map[a]](obj[a]); + else if (a.indexOf("on")==0){ + this.attachEvent(a,obj[a]); + } + } + } else + var that = t.apply(this,arguments); + if (map._patch) map._patch(this); + return that||this; + }; + window[name].prototype=t.prototype; + if (ext) + dhtmlXHeir(window[name].prototype,ext); +}; + dhtmlxAjax={ get:function(url,callback){ var t=new dtmlXMLLoaderObject(true); diff --git a/addons/web_gantt/static/lib/dhtmlxGantt/sources/dhtmlxgantt.js b/addons/web_gantt/static/lib/dhtmlxGantt/sources/dhtmlxgantt.js index 0d838fdd510..52b9b562e96 100644 --- a/addons/web_gantt/static/lib/dhtmlxGantt/sources/dhtmlxgantt.js +++ b/addons/web_gantt/static/lib/dhtmlxGantt/sources/dhtmlxgantt.js @@ -173,9 +173,8 @@ GanttProjectInfo.prototype.getTaskByIdInTree = function(parentTask, id) * @type: public * @topic: 0 */ -function GanttTaskInfo(id, name, est, duration, percentCompleted, predecessorTaskId, color) +function GanttTaskInfo(id, name, est, duration, percentCompleted, predecessorTaskId) { - this.color = color || "white"; this.Id = id; this.Name = name; this.EST = est; @@ -349,7 +348,7 @@ GanttProject.prototype.create = function() * @type: public * @topic: 0 */ -function GanttChart(day_length) +function GanttChart() { this.Error = new GanttError(); this.dhtmlXMLSenderObject = new dhtmlXMLSenderObject(this); @@ -357,7 +356,7 @@ function GanttChart(day_length) //settings this.heightTaskItem = 12; this.dayInPixels = 24; - this.hoursInDay = day_length; + this.hoursInDay = 8; this._showTreePanel = true; this._showTooltip = true; this.isShowDescTask = false; @@ -1162,7 +1161,7 @@ GanttProject.prototype.deleteChildTask = function(task) * @type: public * @topic: 1 */ -GanttProject.prototype.insertTask = function(id, name, EST, Duration, PercentCompleted, predecessorTaskId, color, parentTaskId) +GanttProject.prototype.insertTask = function(id, name, EST, Duration, PercentCompleted, predecessorTaskId, parentTaskId) { var task = null; var _task = null; @@ -1205,7 +1204,7 @@ GanttProject.prototype.insertTask = function(id, name, EST, Duration, PercentCom return false; } - task = new GanttTaskInfo(id, name, EST, Duration, PercentCompleted, predecessorTaskId, color); + task = new GanttTaskInfo(id, name, EST, Duration, PercentCompleted, predecessorTaskId); if (!this.Chart.checkPosParentTask(parentTask, task)) { this.Chart.Error.throwError("DATA_INSERT_ERROR", 19, [parentTaskId,id]); @@ -4870,13 +4869,11 @@ GanttTask.prototype.createTaskItem = function() cellTblTask.height = this.Chart.heightTaskItem + "px"; cellTblTask.width = this.TaskInfo.PercentCompleted + "%"; cellTblTask.style.lineHeight = "1px"; - cellTblTask.style.backgroundColor = self.TaskInfo.color; - var imgPr = document.createElement("img"); imgPr.style.width = (this.TaskInfo.PercentCompleted * this.TaskInfo.Duration * this.Chart.hourInPixelsWork) / 100 + "px"; imgPr.style.height = this.Chart.heightTaskItem + "px"; cellTblTask.appendChild(imgPr); - //imgPr.src = this.Chart.imgs + "progress_filled.png"; + imgPr.src = this.Chart.imgs + "progress_filled.png"; } if (this.TaskInfo.PercentCompleted != 100) @@ -4946,9 +4943,9 @@ GanttTask.prototype.createTaskItem = function() } var taskClick = function() { - self.Chart.callEvent("onTaskDblClick", [self]); + self.Chart.callEvent("onTaskClick", [self]); }; - this.addEvent(divMove, 'dblclick', taskClick, false); + this.addEvent(divMove, 'click', taskClick, false); if (this.Chart.isEditable) { diff --git a/addons/web_gantt/static/src/js/gantt.js b/addons/web_gantt/static/src/js/gantt.js index bdd57b7bf0a..3ba19a67c98 100644 --- a/addons/web_gantt/static/src/js/gantt.js +++ b/addons/web_gantt/static/src/js/gantt.js @@ -2,7 +2,9 @@ * OpenERP web_gantt *---------------------------------------------------------*/ openerp.web_gantt = function (openerp) { +var _t = openerp.web._t; var QWeb = openerp.web.qweb; + QWeb.add_template('/web_gantt/static/src/xml/web_gantt.xml'); openerp.web.views.add('gantt', 'openerp.web_gantt.GanttView'); openerp.web_gantt.GanttView = openerp.web.View.extend({ @@ -13,68 +15,167 @@ init: function(parent, dataset, view_id) { this.dataset = dataset; this.model = dataset.model; this.view_id = view_id; - this.fields_views = {}; - this.widgets = {}; - this.widgets_counter = 0; - this.fields = this.dataset.fields ? this.dataset.fields: {}; - this.ids = this.dataset.ids; - this.name = ""; - this.date_start = ""; - this.date_delay = ""; - this.date_stop = ""; - this.color_field = ""; - this.colors = []; - this.color_values = []; - this.calendar_fields = {}; - this.info_fields = []; - this.domain = this.dataset._domain ? this.dataset._domain: []; + this.domain = this.dataset.domain || []; + this.groupby = []; this.context = this.dataset.context || {}; + this.has_been_loaded = $.Deferred(); +// this.ganttChartControl = new GanttChart(); + this.COLOR_PALETTE = ['#ccccff', '#cc99ff', '#75507b', '#3465a4', '#73d216', '#c17d11', '#edd400', + '#fcaf3e', '#ef2929', '#ff00c9', '#ad7fa8', '#729fcf', '#8ae234', '#e9b96e', '#fce94f', + '#ff8e00', '#ff0000', '#b0008c', '#9000ff', '#0078ff', '#00ff00', '#e6ff00', '#ffff00', + '#905000', '#9b0000', '#840067', '#510090', '#0000c9', '#009b00', '#9abe00', '#ffc900']; }, start: function() { this._super(); - this.rpc("/web/view/load", {"model": this.model, "view_id": this.view_id, "view_type": "gantt"}, this.on_loaded); + return this.rpc("/web/view/load", {"model": this.model, "view_id": this.view_id, "view_type": "gantt"}, this.on_loaded); }, on_loaded: function(data) { - - var self = this; - this.fields_view = data; - - this.name = this.fields_view.arch.attrs.string; - this.view_id = this.fields_view.view_id; - - this.date_start = this.fields_view.arch.attrs.date_start; - this.date_delay = this.fields_view.arch.attrs.date_delay; - this.date_stop = this.fields_view.arch.attrs.date_stop; - - this.color_field = this.fields_view.arch.attrs.color; + this.fields_view = data, + this.name = this.fields_view.arch.attrs.string, + this.view_id = this.fields_view.view_id, + this.fields = this.fields_view.fields; + + this.date_start = this.fields_view.arch.attrs.date_start, + this.date_delay = this.fields_view.arch.attrs.date_delay, + this.date_stop = this.fields_view.arch.attrs.date_stop, this.day_length = this.fields_view.arch.attrs.day_length || 8; + + this.color_field = this.fields_view.arch.attrs.color, this.colors = this.fields_view.arch.attrs.colors; - var arch_children = this.fields_view.arch.children[0]; - this.text = arch_children.children[0] ? arch_children.children[0].attrs.name : arch_children.attrs.name; - this.parent = this.fields_view.arch.children[0].attrs.link; - - this.format = "yyyy-MM-dd"; - this.grp = []; - - self.create_gantt(); - self.get_events(); - - this.$element.html(QWeb.render("GanttView", {"view": this, "fields_view": this.fields_view})); - + + var level = this.fields_view.arch.children[0]; + this.parent = level.attrs.link, + this.text = level.children.length ? level.children[0].attrs.name : level.attrs.name; + + this.$element.html(QWeb.render("GanttView", {'height': $('.oe-application-container').height(), 'width': $('.oe-application-container').width()})); + this.has_been_loaded.resolve(); + }, + + on_project_loaded: function(projects) { + + if(!projects.length) return; + var self = this, + unstarted_project = _.detect(projects, function(res) { + return !res[self.date_start]; + }); + + if(unstarted_project) return self.do_warn(_t("Start date is not defined "), unstarted_project.id); + + $.when(this.project_starting_date(projects), this.project_duration(projects), this.calculate_difference()) + .done(function() { + var Project = new GanttProjectInfo(0, self.name, self.project_start_date), + Task = new GanttTaskInfo(0, self.name, self.project_start_date, self.total_duration, 100, ""); + $.when(self.add_tasks(projects, Task)) + .done(function() { + self.init_gantt_view(Project, Task); + }) + }); + }, + + project_duration: function(projects) { + + var self = this; + this.project_duration = []; + + _.each(projects, function(project, index) { + if (this.date_stop && project[this.date_stop]) { + //ToDO + console.log('TODO for date_stop'); + self.project_duration.push(0); + } else if(self.date_delay && project[self.date_delay]) { + self.project_duration.push(project[self.date_delay]); + } else { + self.project_duration.push(0); + } + }); + + this.max_project_duration = _.max(this.project_duration); + + return $.Deferred().resolve().promise(); + }, + + calculate_difference: function() { + + + var extend_end_date_day = Math.floor(this.max_project_duration / this.day_length), + extend_end_date_hours = this.max_project_duration % this.day_length; + + this.project_end_date = this.project_end_date.add({days: extend_end_date_day, hours: extend_end_date_hours}) + + var DAY = 1000 * 60 * 60 * 24, + difference = Math.abs(this.project_start_date.getTime() - this.project_end_date.getTime()), + day = Math.ceil(difference / DAY), + hour = (difference % DAY)/(1000 * 60 * 60), + DiffHour = (day * this.day_length) + hour; + + this.total_duration = parseFloat(DiffHour.toFixed(2)); + return $.Deferred().resolve().promise(); + }, + + add_tasks: function(tasks, parentTask) { + var self = this; + + _.each(tasks, function(task, index) { + parentTask.addChildTask(new GanttTaskInfo(task.id, task.name, self.format_date(task[self.date_start]), self.project_duration[index], 100, "")); + }); + + return $.Deferred().resolve().promise(); + }, + + project_starting_date : function(projects) { + var self = this; + var min_date = _.min(projects, function(prj) { + return new Date(prj[self.date_start]); + }); + + var max_date = _.max(projects, function(prj) { + return self.format_date(prj[self.date_start]) + }); + this.project_end_date = this.format_date(max_date[self.date_start]); + if (min_date) this.project_start_date = this.format_date(min_date[self.date_start]); + else + this.project_start_date = Date.today(); + + return $.Deferred().resolve().promise(); }, - create_gantt: function() { + init_gantt_view: function(Project, Task) { + Project.addTask(Task); + ganttChartControl = new GanttChart(); - ganttChartControl = new GanttChart(this.day_length); + // Setup paths and behavior ganttChartControl.setImagePath("/web_gantt/static/lib/dhtmlxGantt/codebase/imgs/"); ganttChartControl.setEditable(true); ganttChartControl.showTreePanel(true); ganttChartControl.showContextMenu(false); ganttChartControl.showDescTask(true,'d,s-f'); ganttChartControl.showDescProject(true,'n,d'); - + // Load data structure + ganttChartControl.addProject(Project); + ganttChartControl.create('GanttView'); + // Create Gantt control + + }, + + add_project_info: function(smalldate, project, index) { + + }, + + format_date : function(date) { + var datetime_regex = /^(\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d)(?:\.\d+)?$/, + date_regex = /^\d\d\d\d-\d\d-\d\d$/, + time_regex = /^(\d\d:\d\d:\d\d)(?:\.\d+)?$/, + def = $.Deferred(); + if(date_regex.exec(date)) { + this.date_format = "yyyy-MM-dd"; + } else if(time_regex.exec(date)) { + this.date_format = "HH:mm:ss"; + } else { + this.date_format = "yyyy-MM-dd HH:mm:ss"; + } + return openerp.web.auto_str_to_date(date); }, get_events: function() { @@ -502,8 +603,19 @@ init: function(parent, dataset, view_id) { do_search: function (domains, contexts, groupbys) { var self = this; - this.grp = groupbys; - self.reload_gantt(); + this.group_by = groupbys; + $.when(this.has_been_loaded).then(function() { + self.dataset + .read_slice(_.keys(self.fields), { + domain: domains, + context: contexts, + group_by: groupbys + }) + .done(function(projects) { + self.on_project_loaded(projects); + }); + }) + } }); diff --git a/addons/web_gantt/static/src/xml/web_gantt.xml b/addons/web_gantt/static/src/xml/web_gantt.xml index d064d6e9ef2..48a1a1025dd 100644 --- a/addons/web_gantt/static/src/xml/web_gantt.xml +++ b/addons/web_gantt/static/src/xml/web_gantt.xml @@ -1,5 +1,5 @@ From 8224421647c6b40876c3b341c76c9b2c4587ea47 Mon Sep 17 00:00:00 2001 From: "Vaibhav (OpenERP)" Date: Thu, 3 Nov 2011 17:32:52 +0530 Subject: [PATCH 02/59] [FIX] added events. bzr revid: vda@tinyerp.com-20111103120252-ius83ekv8dz54wgl --- addons/web_gantt/static/src/js/gantt.js | 440 +++--------------------- 1 file changed, 56 insertions(+), 384 deletions(-) diff --git a/addons/web_gantt/static/src/js/gantt.js b/addons/web_gantt/static/src/js/gantt.js index 3ba19a67c98..931579502f1 100644 --- a/addons/web_gantt/static/src/js/gantt.js +++ b/addons/web_gantt/static/src/js/gantt.js @@ -49,6 +49,10 @@ init: function(parent, dataset, view_id) { this.parent = level.attrs.link, this.text = level.children.length ? level.children[0].attrs.name : level.attrs.name; + if (!this.date_start) { + return self.do_warn(_t("date_start is not defined ")) + } + this.$element.html(QWeb.render("GanttView", {'height': $('.oe-application-container').height(), 'width': $('.oe-application-container').width()})); this.has_been_loaded.resolve(); }, @@ -57,20 +61,18 @@ init: function(parent, dataset, view_id) { if(!projects.length) return; var self = this, - unstarted_project = _.detect(projects, function(res) { - return !res[self.date_start]; + started_projects = _.filter(projects, function(res) { + return res[self.date_start]; }); - if(unstarted_project) return self.do_warn(_t("Start date is not defined "), unstarted_project.id); - - $.when(this.project_starting_date(projects), this.project_duration(projects), this.calculate_difference()) + $.when(this.project_starting_date(started_projects), this.project_duration(started_projects), this.calculate_difference()) .done(function() { var Project = new GanttProjectInfo(0, self.name, self.project_start_date), Task = new GanttTaskInfo(0, self.name, self.project_start_date, self.total_duration, 100, ""); - $.when(self.add_tasks(projects, Task)) + $.when(self.add_tasks(started_projects, Task)) .done(function() { self.init_gantt_view(Project, Task); - }) + }); }); }, @@ -142,8 +144,10 @@ init: function(parent, dataset, view_id) { }, init_gantt_view: function(Project, Task) { + Project.addTask(Task); - ganttChartControl = new GanttChart(); + var self = this, + ganttChartControl = new GanttChart(); // Setup paths and behavior ganttChartControl.setImagePath("/web_gantt/static/lib/dhtmlxGantt/codebase/imgs/"); @@ -157,9 +161,18 @@ init: function(parent, dataset, view_id) { ganttChartControl.create('GanttView'); // Create Gantt control - }, - - add_project_info: function(smalldate, project, index) { + + // Setup Events + ganttChartControl.attachEvent("onTaskStartDrag", function(task) { + var task_date = task.getEST(); + if(task_date.getHours()) { + task_date.set({hour: task_date.getHours(), minute : task_date.getMinutes(), second:0}); + } + }); + ganttChartControl.attachEvent("onTaskEndResize", function(task) {return self.ResizeTask(task);}); + ganttChartControl.attachEvent("onTaskEndDrag", function(task) {return self.ResizeTask(task);}); + + ganttChartControl.attachEvent("onTaskDblClick", function(task) { return self.editTask(task);}); }, @@ -177,320 +190,38 @@ init: function(parent, dataset, view_id) { } return openerp.web.auto_str_to_date(date); }, - - get_events: function() { - - var self = this; - this.dataset.read_slice([],{}, function(result) { - self.load_event(result); - }); - - }, - - load_event: function(events) { - - var self = this; - var result = events; - var smalldate = ""; - - COLOR_PALETTE = ['#ccccff', '#cc99ff', '#75507b', '#3465a4', '#73d216', '#c17d11', '#edd400', - '#fcaf3e', '#ef2929', '#ff00c9', '#ad7fa8', '#729fcf', '#8ae234', '#e9b96e', '#fce94f', - '#ff8e00', '#ff0000', '#b0008c', '#9000ff', '#0078ff', '#00ff00', '#e6ff00', '#ffff00', - '#905000', '#9b0000', '#840067', '#510090', '#0000c9', '#009b00', '#9abe00', '#ffc900']; - - if (result.length != 0){ - var show_event = []; - for (var i in result){ - var res = result[i]; - if (res[this.date_start] != false){ - - var start_date = this.convert_str_date(res[this.date_start]); - res[this.date_start] = start_date; - show_event.push(res); - if (smalldate == ""){ - smalldate = start_date; - } - else{ - if (start_date < smalldate){ - smalldate = start_date; - } - } - } - } - if (smalldate == ""){ - smalldate = Date.today(); - } - project = new GanttProjectInfo("_1", "", smalldate); - ganttChartControl.addProject(project); - } - - //create child - var k = 0; - var color_box = {}; - var parents = {}; - var all_events = {}; - var child_event = {}; - var temp_id = ""; - var final_events = []; - for (var i in show_event) { - - var res = show_event[i]; - - var id = res['id']; - var text = res[this.text]; - var start_date = res[this.date_start]; - - var color = res[this.color_field][0] || res[this.color_field]; - if (color_box[color] == undefined){ - color_box[color] = COLOR_PALETTE[k]; - k += 1; - } - - if (this.date_stop != undefined){ - if (res[this.date_stop] != false){ - var stop_date = this.convert_str_date(res[this.date_stop]); - var duration= self.hours_between(start_date, stop_date); - } - else{ - var duration = 0; - } - } - else{ - var duration = res[this.date_delay]; - } - if (!duration) - duration = 0; - - if (self.grp.length){ - for (var j in self.grp){ - var grp_key = res[self.grp[j]['group_by']]; - if (typeof(grp_key) == "object"){ - grp_key = res[self.grp[j]['group_by']][1]; - } - else{ - grp_key = res[self.grp[j]['group_by']]; - } - - if (!grp_key){ - grp_key = "Undefined"; - } - - if (j == 0){ - if (parents[grp_key] == undefined){ - var mod_id = i+ "_" +j; - parents[grp_key] = mod_id; - child_event[mod_id] = {}; - all_events[mod_id] = {'parent': "", 'evt':[mod_id , grp_key, start_date, start_date, 100, "", "white"]}; - } - else{ - mod_id = parents[grp_key]; - } - temp_id = mod_id; - }else{ - if (child_event[mod_id][grp_key] == undefined){ - var ch_mod_id = i+ "_" +j; - child_event[mod_id][grp_key] = ch_mod_id; - child_event[ch_mod_id] = {}; - temp_id = ch_mod_id; - all_events[ch_mod_id] = {'parent': mod_id, 'evt':[ch_mod_id , grp_key, start_date, start_date, 100, "","white"]}; - mod_id = ch_mod_id; - } - else{ - mod_id = child_event[mod_id][grp_key]; - temp_id = mod_id; - } - } - } - all_events[id] = {'parent': temp_id, 'evt':[id , text, start_date, duration, 100, "", color_box[color]]}; - final_events.push(id); - } - else { - if (i == 0) { - var mod_id = "_" + i; - all_events[mod_id] = {'parent': "", 'evt': [mod_id, this.name, start_date, start_date, 100, "", "white"]}; - } - all_events[id] = {'parent': mod_id, 'evt':[id , text, start_date, duration, 100, "", color_box[color]]}; - final_events.push(id); - } - } - - for (var i in final_events){ - var evt_id = final_events[i]; - var evt_date = all_events[evt_id]['evt'][2]; - while (all_events[evt_id]['parent'] != "") { - var parent_id =all_events[evt_id]['parent']; - if (all_events[parent_id]['evt'][2] > evt_date){ - all_events[parent_id]['evt'][2] = evt_date; - } - evt_id = parent_id; - } - } - var evt_id = []; - var evt_date = ""; - var evt_duration = ""; - var evt_end_date = ""; - var project_tree_field = []; - for (var i in final_events){ - evt_id = final_events[i]; - evt_date = all_events[evt_id]['evt'][2]; - evt_duration = all_events[evt_id]['evt'][3]; - - var evt_str_date = this.convert_date_str(evt_date); - evt_end_date = this.end_date(evt_str_date, evt_duration); - - while (all_events[evt_id]['parent'] != "") { - var parent_id =all_events[evt_id]['parent']; - if (all_events[parent_id]['evt'][3] < evt_end_date){ - all_events[parent_id]['evt'][3] = evt_end_date; - } - evt_id = parent_id; - } - } - - for (var j in self.grp) { - self.render_events(all_events, j); - } - - if (!self.grp.length) { - self.render_events(all_events, 0); - } - - for (var i in final_events) { - evt_id = final_events[i]; - res = all_events[evt_id]; - task=new GanttTaskInfo(res['evt'][0], res['evt'][1], res['evt'][2], res['evt'][3], res['evt'][4], "",res['evt'][6]); - prt = project.getTaskById(res['parent']); - prt.addChildTask(task); - } - - var oth_hgt = 264; - var min_hgt = 150; - var name_min_wdt = 150; - var gantt_hgt = jQuery(window).height() - oth_hgt; - var search_wdt = jQuery("#oe_app_search").width(); - - if (gantt_hgt > min_hgt){ - jQuery('#GanttDiv').height(gantt_hgt).width(search_wdt); - } else{ - jQuery('#GanttDiv').height(min_hgt).width(search_wdt); - } - - ganttChartControl.create("GanttDiv"); - ganttChartControl.attachEvent("onTaskStartDrag", function(task) {self.on_drag_start(task);}); - ganttChartControl.attachEvent("onTaskEndResize", function(task) {self.on_resize_drag_end(task, "resize");}); - ganttChartControl.attachEvent("onTaskEndDrag", function(task) {self.on_resize_drag_end(task, "drag");}); + + ResizeTask: function(task) { - ganttChartControl.attachEvent("onTaskDblClick", function(task) {self.open_popup(task);}); + var event_id = task.getId(); - var taskdiv = jQuery("div.taskPanel").parent(); - taskdiv.addClass('ganttTaskPanel'); - taskdiv.prev().addClass('ganttDayPanel'); - var $gantt_panel = jQuery(".ganttTaskPanel , .ganttDayPanel"); - - var ganttrow = jQuery('.taskPanel').closest('tr'); - var gtd = ganttrow.children(':first-child'); - gtd.children().addClass('task-name'); - - jQuery(".toggle-sidebar").click(function(e) { - self.set_width(); - }); - - jQuery(window).bind('resize',function() { - window.clearTimeout(ganttChartControl._resize_timer); - ganttChartControl._resize_timer = window.setTimeout(function(){ - self.reload_gantt(); - }, 200); - }); - - jQuery("div #_1, div #_1 + div").hide(); - }, - - set_width: function() { - - $gantt_panel.width(1); - jQuery(".ganttTaskPanel").parent().width(1); - - var search_wdt = jQuery("#oe_app_search").width(); - var day_wdt = jQuery(".ganttDayPanel").children().children().width(); - jQuery('#GanttDiv').css('width','100%'); - - if (search_wdt - day_wdt <= name_min_wdt){ - jQuery(".ganttTaskPanel").parent().width(search_wdt - name_min_wdt); - jQuery(".ganttTaskPanel").width(search_wdt - name_min_wdt); - jQuery(".ganttDayPanel").width(search_wdt - name_min_wdt - 14); - jQuery('.task-name').width(name_min_wdt); - jQuery('.task-name').children().width(name_min_wdt); - }else{ - jQuery(".ganttTaskPanel").parent().width(day_wdt); - jQuery(".ganttTaskPanel").width(day_wdt); - jQuery(".taskPanel").width(day_wdt - 16); - jQuery(".ganttDayPanel").width(day_wdt -16); - jQuery('.task-name').width(search_wdt - day_wdt); - jQuery('.task-name').children().width(search_wdt - day_wdt); + + if(!event_id) + return this.do_warn(_t("Project can not be resized")); + + var data = {}; + data[this.date_start] = task.getEST().toString(this.date_format); + + if(this.date_stop) { + var diff = task.getDuration() % this.day_length, + finished_date = task.getFinishDate().add({hours: diff}); + data[this.date_stop] = finished_date.toString(this.date_format); + } else { + data[this.date_delay] = task.getDuration(); } - + this.dataset + .write(event_id, data, {}) + .done(function() { + self.reloadView(); + }); }, - - end_date: function(dat, duration) { - - var self = this; - - var dat = this.convert_str_date(dat); - - var day = Math.floor(duration/self.day_length); - var hrs = duration % self.day_length; - - dat.add(day).days(); - dat.add(hrs).hour(); - - return dat; - }, - - hours_between: function(date1, date2, parent_task) { - - var ONE_DAY = 1000 * 60 * 60 * 24; - var date1_ms = date1.getTime(); - var date2_ms = date2.getTime(); - var difference_ms = Math.abs(date1_ms - date2_ms); - - var d = parent_task? Math.ceil(difference_ms / ONE_DAY) : Math.floor(difference_ms / ONE_DAY); - var h = (difference_ms % ONE_DAY)/(1000 * 60 * 60); - var num = (d * this.day_length) + h; - return parseFloat(num.toFixed(2)); - - }, - - render_events : function(all_events, j) { - - var self = this; - for (var i in all_events){ - var res = all_events[i]; - if ((typeof(res['evt'][3])) == "object"){ - res['evt'][3] = self.hours_between(res['evt'][2],res['evt'][3], true); - } - - k = res['evt'][0].toString().indexOf('_'); - - if (k != -1) { - if (res['evt'][0].substring(k) == "_"+j){ - if (j == 0){ - task = new GanttTaskInfo(res['evt'][0], res['evt'][1], res['evt'][2], res['evt'][3], res['evt'][4], "",res['evt'][6]); - project.addTask(task); - } else { - task = new GanttTaskInfo(res['evt'][0], res['evt'][1], res['evt'][2], res['evt'][3], res['evt'][4], "",res['evt'][6]); - prt = project.getTaskById(res['parent']); - prt.addChildTask(task); - } - } - } - } - }, - - open_popup : function(task) { + + editTask: function(task) { var self = this; var event_id = task.getId(); - if(event_id.toString().search("_") != -1) - return; + if(!event_id) + return false; + if(event_id) event_id = parseInt(event_id, 10); var action_manager = new openerp.web.ActionManager(this); @@ -506,7 +237,7 @@ init: function(parent, dataset, view_id) { var form_view = action_manager.inner_viewmanager.views.form.controller; form_view.do_save(function() { - self.get_events(); + self.reloadView(); }); $(this).dialog('destroy'); } @@ -528,35 +259,9 @@ init: function(parent, dataset, view_id) { } }); }, - - on_drag_start : function(task){ - var st_date = task.getEST(); - if(st_date.getHours()){ - self.hh = st_date.getHours(); - self.mm = st_date.getMinutes(); - } - }, - - on_resize_drag_end : function(task, evt){ - - var event_id = task.getId(); - var data = {}; - - if(event_id.toString().search("_") != -1) - return; - if (evt == "drag"){ - full_date = task.getEST().set({hour: self.hh, minute : self.mm, second:0}); - data[this.date_start] = this.convert_date_str(full_date); - } - if (this.date_stop != undefined){ - tm = (task.getDuration() % this.day_length); - stp = task.getFinishDate().add(tm).hour(); - data[this.date_stop] = this.convert_date_str(stp); - }else{ - data[this.date_delay] = task.getDuration(); - } - this.dataset.write(event_id, data, {}, function(result) {}); - + + reloadView: function() { + self.on_project_loaded(self.database_projects); }, do_show: function () { @@ -567,51 +272,18 @@ init: function(parent, dataset, view_id) { this.$element.hide(); }, - convert_str_date: function (str){ - if (str.length == 19){ - this.format = "yyyy-MM-dd HH:mm:ss"; - return openerp.web.str_to_datetime(str); - } else if (str.length == 10){ - this.format = "yyyy-MM-dd"; - return openerp.web.str_to_date(str); - } else if (str.length == 8){ - this.format = "HH:mm:ss"; - return openerp.web.str_to_time(str); - } - throw "Unrecognized date/time format"; - }, - - convert_date_str: function(full_date) { - if (this.format == "yyyy-MM-dd HH:mm:ss"){ - return openerp.web.datetime_to_str(full_date); - } else if (this.format == "yyyy-MM-dd"){ - return openerp.web.date_to_str(full_date); - } else if (this.format == "HH:mm:ss"){ - return openerp.web.time_to_str(full_date); - } - throw "Unrecognized date/time format"; - }, - - reload_gantt: function() { - var self = this; - this.dataset.read_slice([],{}, function(response) { - ganttChartControl.clearAll(); - jQuery("#GanttDiv").children().remove(); - self.load_event(response); - }); - }, - do_search: function (domains, contexts, groupbys) { var self = this; this.group_by = groupbys; $.when(this.has_been_loaded).then(function() { self.dataset - .read_slice(_.keys(self.fields), { + .read_slice([], { domain: domains, context: contexts, group_by: groupbys }) .done(function(projects) { + self.database_projects = projects; self.on_project_loaded(projects); }); }) From 11826b8e57bb854cb50bb4b4952f71dff3778b26 Mon Sep 17 00:00:00 2001 From: "Vaibhav (OpenERP)" Date: Thu, 3 Nov 2011 17:56:35 +0530 Subject: [PATCH 03/59] [FIX] Clear GanttView. bzr revid: vda@tinyerp.com-20111103122635-k5fbv5dau3gizygb --- addons/web_gantt/static/src/js/gantt.js | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/addons/web_gantt/static/src/js/gantt.js b/addons/web_gantt/static/src/js/gantt.js index 931579502f1..ff2c072111f 100644 --- a/addons/web_gantt/static/src/js/gantt.js +++ b/addons/web_gantt/static/src/js/gantt.js @@ -65,8 +65,12 @@ init: function(parent, dataset, view_id) { return res[self.date_start]; }); - $.when(this.project_starting_date(started_projects), this.project_duration(started_projects), this.calculate_difference()) + $.when(this.project_starting_date(started_projects), this.get_project_duration(started_projects), this.calculate_difference()) .done(function() { + if(self.ganttChartControl) { + self.ganttChartControl.clearAll(); + self.$element.find('#GanttView').empty(); + } var Project = new GanttProjectInfo(0, self.name, self.project_start_date), Task = new GanttTaskInfo(0, self.name, self.project_start_date, self.total_duration, 100, ""); $.when(self.add_tasks(started_projects, Task)) @@ -76,13 +80,13 @@ init: function(parent, dataset, view_id) { }); }, - project_duration: function(projects) { + get_project_duration: function(projects) { var self = this; this.project_duration = []; _.each(projects, function(project, index) { - if (this.date_stop && project[this.date_stop]) { + if (self.date_stop && project[self.date_stop]) { //ToDO console.log('TODO for date_stop'); self.project_duration.push(0); @@ -94,13 +98,10 @@ init: function(parent, dataset, view_id) { }); this.max_project_duration = _.max(this.project_duration); - return $.Deferred().resolve().promise(); }, calculate_difference: function() { - - var extend_end_date_day = Math.floor(this.max_project_duration / this.day_length), extend_end_date_hours = this.max_project_duration % this.day_length; @@ -139,15 +140,15 @@ init: function(parent, dataset, view_id) { if (min_date) this.project_start_date = this.format_date(min_date[self.date_start]); else this.project_start_date = Date.today(); - return $.Deferred().resolve().promise(); }, init_gantt_view: function(Project, Task) { Project.addTask(Task); - var self = this, - ganttChartControl = new GanttChart(); + var self = this; + + var ganttChartControl = this.ganttChartControl = new GanttChart(); // Setup paths and behavior ganttChartControl.setImagePath("/web_gantt/static/lib/dhtmlxGantt/codebase/imgs/"); @@ -275,6 +276,7 @@ init: function(parent, dataset, view_id) { do_search: function (domains, contexts, groupbys) { var self = this; this.group_by = groupbys; + $.when(this.has_been_loaded).then(function() { self.dataset .read_slice([], { From 0fc1f948c49e9508996b4ec53285cef900ef1b96 Mon Sep 17 00:00:00 2001 From: "Vaibhav (OpenERP)" Date: Thu, 3 Nov 2011 18:45:51 +0530 Subject: [PATCH 04/59] [FIX] Add parent field if name not defined. bzr revid: vda@tinyerp.com-20111103131551-3j8ofmslyfmxjhj2 --- addons/web_gantt/static/src/js/gantt.js | 30 ++++++++++++++++++++----- 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/addons/web_gantt/static/src/js/gantt.js b/addons/web_gantt/static/src/js/gantt.js index ff2c072111f..3ca05b7d24c 100644 --- a/addons/web_gantt/static/src/js/gantt.js +++ b/addons/web_gantt/static/src/js/gantt.js @@ -16,10 +16,8 @@ init: function(parent, dataset, view_id) { this.model = dataset.model; this.view_id = view_id; this.domain = this.dataset.domain || []; - this.groupby = []; this.context = this.dataset.context || {}; this.has_been_loaded = $.Deferred(); -// this.ganttChartControl = new GanttChart(); this.COLOR_PALETTE = ['#ccccff', '#cc99ff', '#75507b', '#3465a4', '#73d216', '#c17d11', '#edd400', '#fcaf3e', '#ef2929', '#ff00c9', '#ad7fa8', '#729fcf', '#8ae234', '#e9b96e', '#fce94f', '#ff8e00', '#ff0000', '#b0008c', '#9000ff', '#0078ff', '#00ff00', '#e6ff00', '#ffff00', @@ -65,19 +63,34 @@ init: function(parent, dataset, view_id) { return res[self.date_start]; }); + if(!self.name) { + var name = started_projects[0][self.parent]; + self.name = name instanceof Array? name[name.length - 1] : name; + } + $.when(this.project_starting_date(started_projects), this.get_project_duration(started_projects), this.calculate_difference()) - .done(function() { + .then(function() { if(self.ganttChartControl) { self.ganttChartControl.clearAll(); self.$element.find('#GanttView').empty(); } + }).then(this.group_projects(started_projects)) + .done(function() { + var Project = new GanttProjectInfo(0, self.name, self.project_start_date), Task = new GanttTaskInfo(0, self.name, self.project_start_date, self.total_duration, 100, ""); $.when(self.add_tasks(started_projects, Task)) .done(function() { self.init_gantt_view(Project, Task); }); - }); + }) + }, + + group_projects: function(projects) { + var def = $.Deferred(), + self = this; + if (!this.group_by.length) return def.resolve().promise(); + return def.resolve().promise(); }, get_project_duration: function(projects) { @@ -121,7 +134,13 @@ init: function(parent, dataset, view_id) { var self = this; _.each(tasks, function(task, index) { - parentTask.addChildTask(new GanttTaskInfo(task.id, task.name, self.format_date(task[self.date_start]), self.project_duration[index], 100, "")); + var name = task[self.text]; + if(task[self.text] instanceof Array) { + name = task[self.text][1]; + } + parentTask.addChildTask( + new GanttTaskInfo(task.id, name, self.format_date(task[self.date_start]), self.project_duration[index], 100, "") + ); }); return $.Deferred().resolve().promise(); @@ -276,7 +295,6 @@ init: function(parent, dataset, view_id) { do_search: function (domains, contexts, groupbys) { var self = this; this.group_by = groupbys; - $.when(this.has_been_loaded).then(function() { self.dataset .read_slice([], { From 119a277cd9b6863678a988c2e0e302443d03629a Mon Sep 17 00:00:00 2001 From: "Vaibhav (OpenERP)" Date: Fri, 4 Nov 2011 18:32:08 +0530 Subject: [PATCH 05/59] [FIX] Generate Groups. bzr revid: vda@tinyerp.com-20111104130208-i7xujd6mv2jm48fe --- addons/web_gantt/static/src/js/gantt.js | 105 +++++++++++++++--------- 1 file changed, 66 insertions(+), 39 deletions(-) diff --git a/addons/web_gantt/static/src/js/gantt.js b/addons/web_gantt/static/src/js/gantt.js index 3ca05b7d24c..12cd687b978 100644 --- a/addons/web_gantt/static/src/js/gantt.js +++ b/addons/web_gantt/static/src/js/gantt.js @@ -18,10 +18,6 @@ init: function(parent, dataset, view_id) { this.domain = this.dataset.domain || []; this.context = this.dataset.context || {}; this.has_been_loaded = $.Deferred(); - this.COLOR_PALETTE = ['#ccccff', '#cc99ff', '#75507b', '#3465a4', '#73d216', '#c17d11', '#edd400', - '#fcaf3e', '#ef2929', '#ff00c9', '#ad7fa8', '#729fcf', '#8ae234', '#e9b96e', '#fce94f', - '#ff8e00', '#ff0000', '#b0008c', '#9000ff', '#0078ff', '#00ff00', '#e6ff00', '#ffff00', - '#905000', '#9b0000', '#840067', '#510090', '#0000c9', '#009b00', '#9abe00', '#ffc900']; }, start: function() { @@ -63,39 +59,70 @@ init: function(parent, dataset, view_id) { return res[self.date_start]; }); + this.database_projects = started_projects; + if(!self.name) { var name = started_projects[0][self.parent]; self.name = name instanceof Array? name[name.length - 1] : name; } - $.when(this.project_starting_date(started_projects), this.get_project_duration(started_projects), this.calculate_difference()) + $.when(this.project_starting_date(), this.get_project_duration(), this.calculate_difference()) .then(function() { if(self.ganttChartControl) { self.ganttChartControl.clearAll(); self.$element.find('#GanttView').empty(); } - }).then(this.group_projects(started_projects)) - .done(function() { - - var Project = new GanttProjectInfo(0, self.name, self.project_start_date), - Task = new GanttTaskInfo(0, self.name, self.project_start_date, self.total_duration, 100, ""); - $.when(self.add_tasks(started_projects, Task)) - .done(function() { - self.init_gantt_view(Project, Task); - }); }) + .then(this.group_projects()) + .then(this.generate_projects()) + .then(this.add_tasks()) + .done(this.init_gantt_view()); }, - group_projects: function(projects) { - var def = $.Deferred(), + generate_projects : function() { + var projects = this.database_projects, self = this; + + this.GanttProjects = [], + this.GanttTasks = []; + if(this.GroupProject) { + _.each(this.GroupProject, function(grp, index) { + self.GanttProjects.push(new GanttProjectInfo(index, grp, self.project_start_date)); + self.GanttTasks.push(new GanttTaskInfo(index, grp, self.project_start_date, self.total_duration, 100, "")); + }); + } else { + this.GanttProjects.push(new GanttProjectInfo(0, self.name, self.project_start_date)); + this.GanttTasks.push(new GanttTaskInfo(0, self.name, self.project_start_date, self.total_duration, 100, "")); + } + + return $.Deferred().resolve().promise(); + }, + + group_projects: function() { + var def = $.Deferred(), + self = this, + projects = this.database_projects; + if (!this.group_by.length) return def.resolve().promise(); + + var groups = _.pluck(projects, this.group_by[0]); + this.GroupProject = []; + _.each(groups, function(grp) { + if(grp instanceof Array) { + grp = grp[grp.length - 1]; + } + if(!_.include(self.GroupProject,grp)) + self.GroupProject.push(grp); + }); + return def.resolve().promise(); }, - get_project_duration: function(projects) { + get_project_duration: function() { - var self = this; + var self = this, + projects = this.database_projects; + this.project_duration = []; _.each(projects, function(project, index) { @@ -130,15 +157,16 @@ init: function(parent, dataset, view_id) { return $.Deferred().resolve().promise(); }, - add_tasks: function(tasks, parentTask) { - var self = this; + add_tasks: function() { + var self = this, + tasks = this.database_projects; _.each(tasks, function(task, index) { var name = task[self.text]; if(task[self.text] instanceof Array) { name = task[self.text][1]; } - parentTask.addChildTask( + self.GanttTasks[0].addChildTask( new GanttTaskInfo(task.id, name, self.format_date(task[self.date_start]), self.project_duration[index], 100, "") ); }); @@ -146,15 +174,16 @@ init: function(parent, dataset, view_id) { return $.Deferred().resolve().promise(); }, - project_starting_date : function(projects) { - var self = this; - var min_date = _.min(projects, function(prj) { - return new Date(prj[self.date_start]); - }); - - var max_date = _.max(projects, function(prj) { - return self.format_date(prj[self.date_start]) - }); + project_starting_date : function() { + var self = this, + projects = this.database_projects, + min_date = _.min(projects, function(prj) { + return new Date(prj[self.date_start]); + }), + max_date = _.max(projects, function(prj) { + return self.format_date(prj[self.date_start]); + }); + this.project_end_date = this.format_date(max_date[self.date_start]); if (min_date) this.project_start_date = this.format_date(min_date[self.date_start]); else @@ -162,9 +191,10 @@ init: function(parent, dataset, view_id) { return $.Deferred().resolve().promise(); }, - init_gantt_view: function(Project, Task) { + init_gantt_view: function() { - Project.addTask(Task); + + this.GanttProjects[0].addTask(this.GanttTasks[0]); var self = this; var ganttChartControl = this.ganttChartControl = new GanttChart(); @@ -176,11 +206,11 @@ init: function(parent, dataset, view_id) { ganttChartControl.showContextMenu(false); ganttChartControl.showDescTask(true,'d,s-f'); ganttChartControl.showDescProject(true,'n,d'); - // Load data structure - ganttChartControl.addProject(Project); - ganttChartControl.create('GanttView'); - // Create Gantt control + // Load data structure + ganttChartControl.addProject(this.GanttProjects[0]); + // Create Gantt control + ganttChartControl.create('GanttView'); // Setup Events ganttChartControl.attachEvent("onTaskStartDrag", function(task) { @@ -191,9 +221,7 @@ init: function(parent, dataset, view_id) { }); ganttChartControl.attachEvent("onTaskEndResize", function(task) {return self.ResizeTask(task);}); ganttChartControl.attachEvent("onTaskEndDrag", function(task) {return self.ResizeTask(task);}); - ganttChartControl.attachEvent("onTaskDblClick", function(task) { return self.editTask(task);}); - }, format_date : function(date) { @@ -303,7 +331,6 @@ init: function(parent, dataset, view_id) { group_by: groupbys }) .done(function(projects) { - self.database_projects = projects; self.on_project_loaded(projects); }); }) From e3f04a459f9e929c2090f4f2e2019ab34f5625d3 Mon Sep 17 00:00:00 2001 From: "Vaibhav (OpenERP)" Date: Sat, 5 Nov 2011 10:12:51 +0530 Subject: [PATCH 06/59] [FIX] First level group_by. bzr revid: vda@tinyerp.com-20111105044251-2raq858ij8m21ha3 --- addons/web_gantt/static/src/js/gantt.js | 70 +++++++++++++++---------- 1 file changed, 41 insertions(+), 29 deletions(-) diff --git a/addons/web_gantt/static/src/js/gantt.js b/addons/web_gantt/static/src/js/gantt.js index 12cd687b978..46628babc2f 100644 --- a/addons/web_gantt/static/src/js/gantt.js +++ b/addons/web_gantt/static/src/js/gantt.js @@ -83,18 +83,19 @@ init: function(parent, dataset, view_id) { var projects = this.database_projects, self = this; - this.GanttProjects = [], this.GanttTasks = []; - if(this.GroupProject) { + if(this.group_by.length) { _.each(this.GroupProject, function(grp, index) { - self.GanttProjects.push(new GanttProjectInfo(index, grp, self.project_start_date)); - self.GanttTasks.push(new GanttTaskInfo(index, grp, self.project_start_date, self.total_duration, 100, "")); + self.GanttTasks.push([]); + _.each(grp, function(g, g_index) { + self.GanttTasks[index].push(new GanttTaskInfo(index + '_'+ g_index, g, self.project_start_date, self.total_duration, 100, "")); + }); +// self.GanttTasks.push(new GanttTaskInfo(index, grp, self.project_start_date, self.total_duration, 100, "")); }); } else { - this.GanttProjects.push(new GanttProjectInfo(0, self.name, self.project_start_date)); this.GanttTasks.push(new GanttTaskInfo(0, self.name, self.project_start_date, self.total_duration, 100, "")); } - + this.GanttProjects = new GanttProjectInfo(0, self.name, self.project_start_date); return $.Deferred().resolve().promise(); }, @@ -105,16 +106,16 @@ init: function(parent, dataset, view_id) { if (!this.group_by.length) return def.resolve().promise(); - var groups = _.pluck(projects, this.group_by[0]); this.GroupProject = []; - _.each(groups, function(grp) { - if(grp instanceof Array) { - grp = grp[grp.length - 1]; - } - if(!_.include(self.GroupProject,grp)) - self.GroupProject.push(grp); - }); + _.each(this.group_by, function(group) { + self.GroupProject.push( + _.uniq( + _.map(_.pluck(projects, group), function(prj) { + return prj instanceof Array ? prj[1] : prj; + }) + )); + }); return def.resolve().promise(); }, @@ -160,17 +161,17 @@ init: function(parent, dataset, view_id) { add_tasks: function() { var self = this, tasks = this.database_projects; - - _.each(tasks, function(task, index) { - var name = task[self.text]; - if(task[self.text] instanceof Array) { - name = task[self.text][1]; - } - self.GanttTasks[0].addChildTask( - new GanttTaskInfo(task.id, name, self.format_date(task[self.date_start]), self.project_duration[index], 100, "") - ); - }); - + if (this.group_by.length) { + } + else { + _.each(tasks, function(task, index){ + var name = task[self.text]; + if (task[self.text] instanceof Array) { + name = task[self.text][1]; + } + self.GanttTasks[0].addChildTask(new GanttTaskInfo(task.id, name, self.format_date(task[self.date_start]), self.project_duration[index], 100, "")); + }); + } return $.Deferred().resolve().promise(); }, @@ -192,11 +193,21 @@ init: function(parent, dataset, view_id) { }, init_gantt_view: function() { - - - this.GanttProjects[0].addTask(this.GanttTasks[0]); var self = this; + if (this.group_by.length) { + _.each(this.GanttTasks, function(tasks) { + _.each(tasks, function(task, index) { + self.GanttProjects.addTask(task); + }) + }); + } + else { + _.each(this.GanttTasks, function(tsk, index){ + self.GanttProjects.addTask(tsk); + }); + } + var ganttChartControl = this.ganttChartControl = new GanttChart(); // Setup paths and behavior @@ -208,7 +219,8 @@ init: function(parent, dataset, view_id) { ganttChartControl.showDescProject(true,'n,d'); // Load data structure - ganttChartControl.addProject(this.GanttProjects[0]); + ganttChartControl.addProject(this.GanttProjects); + // Create Gantt control ganttChartControl.create('GanttView'); From 60bbf83479b5058eeabbf893435ee47d11ca66db Mon Sep 17 00:00:00 2001 From: "Vaibhav (OpenERP)" Date: Tue, 8 Nov 2011 12:44:15 +0530 Subject: [PATCH 07/59] [FIX] Add subtask for groupby. bzr revid: vda@tinyerp.com-20111108071415-ehui6wvm31xi6qqg --- addons/web_gantt/static/src/js/gantt.js | 116 +++++++++++++----------- 1 file changed, 64 insertions(+), 52 deletions(-) diff --git a/addons/web_gantt/static/src/js/gantt.js b/addons/web_gantt/static/src/js/gantt.js index 46628babc2f..abfb7e8c4fa 100644 --- a/addons/web_gantt/static/src/js/gantt.js +++ b/addons/web_gantt/static/src/js/gantt.js @@ -61,7 +61,7 @@ init: function(parent, dataset, view_id) { this.database_projects = started_projects; - if(!self.name) { + if(!self.name && started_projects.length) { var name = started_projects[0][self.parent]; self.name = name instanceof Array? name[name.length - 1] : name; } @@ -79,26 +79,6 @@ init: function(parent, dataset, view_id) { .done(this.init_gantt_view()); }, - generate_projects : function() { - var projects = this.database_projects, - self = this; - - this.GanttTasks = []; - if(this.group_by.length) { - _.each(this.GroupProject, function(grp, index) { - self.GanttTasks.push([]); - _.each(grp, function(g, g_index) { - self.GanttTasks[index].push(new GanttTaskInfo(index + '_'+ g_index, g, self.project_start_date, self.total_duration, 100, "")); - }); -// self.GanttTasks.push(new GanttTaskInfo(index, grp, self.project_start_date, self.total_duration, 100, "")); - }); - } else { - this.GanttTasks.push(new GanttTaskInfo(0, self.name, self.project_start_date, self.total_duration, 100, "")); - } - this.GanttProjects = new GanttProjectInfo(0, self.name, self.project_start_date); - return $.Deferred().resolve().promise(); - }, - group_projects: function() { var def = $.Deferred(), self = this, @@ -106,19 +86,68 @@ init: function(parent, dataset, view_id) { if (!this.group_by.length) return def.resolve().promise(); - this.GroupProject = []; - - _.each(this.group_by, function(group) { - self.GroupProject.push( - _.uniq( - _.map(_.pluck(projects, group), function(prj) { - return prj instanceof Array ? prj[1] : prj; - }) - )); - }); + this.GroupProject = _.map(this.group_by, function(grp) { + return _.groupBy(projects, function(prj) { + return prj[grp]; + }) + }); return def.resolve().promise(); }, + generate_projects : function() { + var projects = this.database_projects, + self = this; + + this.GanttTasks = []; + if(this.group_by.length) { + _.each(this.GroupProject, function(GrpProject, index) { + self.GanttTasks.push([]); + var counter = 0; + _.each(GrpProject, function(grp, grpindex) { + var name = grpindex.split(','); + self.GanttTasks[index] + .push(new GanttTaskInfo(index + '_' + counter , name[name.length - 1], self.project_start_date, self.total_duration, 100, "")); + counter += 1; + }); + }) + } else { + this.GanttTasks.push(new GanttTaskInfo(0, self.name, self.project_start_date, self.total_duration, 100, "")); + } + this.GanttProjects = new GanttProjectInfo(0, self.name, self.project_start_date); + return $.Deferred().resolve().promise(); + }, + + add_tasks: function() { + var self = this, + tasks = this.database_projects; + if (this.group_by.length) { + _.each(this.GroupProject, function(grpproject, index) { + var counter = 0; + _.each(grpproject, function(prj, gindex) { + _.each(prj, function(task, tindex) { + var name = task[self.text]; + if (task[self.text] instanceof Array) { + name = task[self.text][1]; + } + self.GanttTasks[index][counter] + .addChildTask(new GanttTaskInfo(task.id, name, self.format_date(task[self.date_start]), self.project_duration[index], 100, "")) + }); + counter += 1; + }) + }); + } + else { + _.each(tasks, function(task, index){ + var name = task[self.text]; + if (task[self.text] instanceof Array) { + name = task[self.text][1]; + } + self.GanttTasks[0].addChildTask(new GanttTaskInfo(task.id, name, self.format_date(task[self.date_start]), self.project_duration[index], 100, "")); + }); + } + return $.Deferred().resolve().promise(); + }, + get_project_duration: function() { var self = this, @@ -158,23 +187,6 @@ init: function(parent, dataset, view_id) { return $.Deferred().resolve().promise(); }, - add_tasks: function() { - var self = this, - tasks = this.database_projects; - if (this.group_by.length) { - } - else { - _.each(tasks, function(task, index){ - var name = task[self.text]; - if (task[self.text] instanceof Array) { - name = task[self.text][1]; - } - self.GanttTasks[0].addChildTask(new GanttTaskInfo(task.id, name, self.format_date(task[self.date_start]), self.project_duration[index], 100, "")); - }); - } - return $.Deferred().resolve().promise(); - }, - project_starting_date : function() { var self = this, projects = this.database_projects, @@ -196,11 +208,11 @@ init: function(parent, dataset, view_id) { var self = this; if (this.group_by.length) { - _.each(this.GanttTasks, function(tasks) { - _.each(tasks, function(task, index) { + _.each(self.GanttTasks, function(tasks, index) { + _.each(tasks, function(task, tindex) { self.GanttProjects.addTask(task); - }) - }); + }); + }) } else { _.each(this.GanttTasks, function(tsk, index){ From f1f7637d69e0691202779fa592cbcf20c0cd5f19 Mon Sep 17 00:00:00 2001 From: "Vaibhav (OpenERP)" Date: Tue, 8 Nov 2011 13:05:28 +0530 Subject: [PATCH 08/59] [FIX] duration calculation for date_stop. bzr revid: vda@tinyerp.com-20111108073528-r4lrw0zxtsv1604a --- addons/web_gantt/static/src/js/gantt.js | 28 ++++++++++++++++++------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/addons/web_gantt/static/src/js/gantt.js b/addons/web_gantt/static/src/js/gantt.js index abfb7e8c4fa..8ee3fbfaca5 100644 --- a/addons/web_gantt/static/src/js/gantt.js +++ b/addons/web_gantt/static/src/js/gantt.js @@ -60,7 +60,9 @@ init: function(parent, dataset, view_id) { }); this.database_projects = started_projects; - + if(!started_projects.length) + return self.do_warn(_t("date_start is not defined")); + if(!self.name && started_projects.length) { var name = started_projects[0][self.parent]; self.name = name instanceof Array? name[name.length - 1] : name; @@ -157,9 +159,7 @@ init: function(parent, dataset, view_id) { _.each(projects, function(project, index) { if (self.date_stop && project[self.date_stop]) { - //ToDO - console.log('TODO for date_stop'); - self.project_duration.push(0); + self.project_duration.push(self.duration_difference(project[self.date_start], project[self.date_stop])); } else if(self.date_delay && project[self.date_delay]) { self.project_duration.push(project[self.date_delay]); } else { @@ -171,6 +171,20 @@ init: function(parent, dataset, view_id) { return $.Deferred().resolve().promise(); }, + duration_difference: function(start_date, end_date) { + + var DAY = 1000 * 60 * 60 * 24, + date1_ms = openerp.web.auto_str_to_date(start_date).getTime(), + date2_ms = openerp.web.auto_str_to_date(end_date).getTime(), + difference_ms = Math.abs(date1_ms - date2_ms); + + var d = Math.floor(difference_ms / DAY), + h = (difference_ms % DAY)/(1000 * 60 * 60), + num = (d * this.day_length) + h; + return parseFloat(num.toFixed(2)); + + }, + calculate_difference: function() { var extend_end_date_day = Math.floor(this.max_project_duration / this.day_length), extend_end_date_hours = this.max_project_duration % this.day_length; @@ -196,7 +210,6 @@ init: function(parent, dataset, view_id) { max_date = _.max(projects, function(prj) { return self.format_date(prj[self.date_start]); }); - this.project_end_date = this.format_date(max_date[self.date_start]); if (min_date) this.project_start_date = this.format_date(min_date[self.date_start]); else @@ -212,7 +225,7 @@ init: function(parent, dataset, view_id) { _.each(tasks, function(task, tindex) { self.GanttProjects.addTask(task); }); - }) + }); } else { _.each(this.GanttTasks, function(tsk, index){ @@ -351,8 +364,7 @@ init: function(parent, dataset, view_id) { self.dataset .read_slice([], { domain: domains, - context: contexts, - group_by: groupbys + context: contexts }) .done(function(projects) { self.on_project_loaded(projects); From 282f6756ad1da705d20bc81bd1c0f031aa47db97 Mon Sep 17 00:00:00 2001 From: "Vaibhav (OpenERP)" Date: Tue, 8 Nov 2011 14:30:08 +0530 Subject: [PATCH 09/59] [FIX] Events attached only to child tasks. bzr revid: vda@tinyerp.com-20111108090008-f65kvdlplgzryarb --- addons/web_gantt/static/src/js/gantt.js | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/addons/web_gantt/static/src/js/gantt.js b/addons/web_gantt/static/src/js/gantt.js index 8ee3fbfaca5..bb19ecbbae6 100644 --- a/addons/web_gantt/static/src/js/gantt.js +++ b/addons/web_gantt/static/src/js/gantt.js @@ -251,14 +251,21 @@ init: function(parent, dataset, view_id) { // Setup Events ganttChartControl.attachEvent("onTaskStartDrag", function(task) { - var task_date = task.getEST(); - if(task_date.getHours()) { - task_date.set({hour: task_date.getHours(), minute : task_date.getMinutes(), second:0}); + if (task.parentTask) { + var task_date = task.getEST(); + if (task_date.getHours()) { + task_date.set({ + hour: task_date.getHours(), + minute: task_date.getMinutes(), + second: 0 + }); + } } }); + ganttChartControl.attachEvent("onTaskEndResize", function(task) {return self.ResizeTask(task);}); ganttChartControl.attachEvent("onTaskEndDrag", function(task) {return self.ResizeTask(task);}); - ganttChartControl.attachEvent("onTaskDblClick", function(task) { return self.editTask(task);}); + ganttChartControl.attachEvent("onTaskClick", function(task) { return self.editTask(task);}); }, format_date : function(date) { @@ -278,10 +285,10 @@ init: function(parent, dataset, view_id) { ResizeTask: function(task) { - var event_id = task.getId(); + var self = this, + event_id = task.getId(); - - if(!event_id) + if(!event_id || !task.parentTask) return this.do_warn(_t("Project can not be resized")); var data = {}; @@ -302,11 +309,11 @@ init: function(parent, dataset, view_id) { }, editTask: function(task) { + var self = this; var event_id = task.getId(); - if(!event_id) + if(!event_id || !task.parentTask) return false; - if(event_id) event_id = parseInt(event_id, 10); var action_manager = new openerp.web.ActionManager(this); From 4a7cc97197a77a441c0a94d50f8439af2b9841c6 Mon Sep 17 00:00:00 2001 From: "Vaibhav (OpenERP)" Date: Thu, 10 Nov 2011 15:53:05 +0530 Subject: [PATCH 10/59] [FIX] follow multi level Group. bzr revid: vda@tinyerp.com-20111110102305-3h661p2va5unyo15 --- addons/web_gantt/static/src/js/gantt.js | 38 ++++++++----------------- 1 file changed, 12 insertions(+), 26 deletions(-) diff --git a/addons/web_gantt/static/src/js/gantt.js b/addons/web_gantt/static/src/js/gantt.js index 2165bd7ce88..effaf17dfe3 100644 --- a/addons/web_gantt/static/src/js/gantt.js +++ b/addons/web_gantt/static/src/js/gantt.js @@ -88,6 +88,7 @@ init: function(parent, dataset, view_id) { this.GroupProject = _.map(this.group_by, function(grp) { return _.groupBy(projects, function(prj) { + if(!prj[grp]) prj[grp] = 'Undefined'; return prj[grp]; }) }); @@ -100,16 +101,12 @@ init: function(parent, dataset, view_id) { this.GanttTasks = []; if(this.group_by.length) { - _.each(this.GroupProject, function(GrpProject, index) { - self.GanttTasks.push([]); - var counter = 0; - _.each(GrpProject, function(grp, grpindex) { - var name = grpindex.split(','); - self.GanttTasks[index] - .push(new GanttTaskInfo(index + '_' + counter , name[name.length - 1], self.project_start_date, self.total_duration, 100, "")); - counter += 1; - }); - }) + _.each(this.GroupProject, function(grp, index) { + var name = _.keys(grp)[0]; + name = name.split(','); +// index > 0 ? "" + (index - 1) + self.GanttTasks.push(new GanttTaskInfo(index, name[name.length - 1], self.project_start_date, self.total_duration, 100, index > 0 ? (index - 1) : "")); + }); } else { this.GanttTasks.push(new GanttTaskInfo(0, self.name, self.project_start_date, self.total_duration, 100, "")); } @@ -121,19 +118,10 @@ init: function(parent, dataset, view_id) { var self = this, tasks = this.database_projects; if (this.group_by.length) { - _.each(this.GroupProject, function(grpproject, index) { - var counter = 0; - _.each(grpproject, function(prj, gindex) { - _.each(prj, function(task, tindex) { - var name = task[self.text]; - if (task[self.text] instanceof Array) { - name = task[self.text][1]; - } - self.GanttTasks[index][counter] - .addChildTask(new GanttTaskInfo(task.id, name, self.format_date(task[self.date_start]), self.project_duration[index], 100, "")) - }); - counter += 1; - }) + _.each(_.values(_.last(this.GroupProject))[0], function(task, index) { + var name = task[self.text]; + _.last(self.GanttTasks) + .addChildTask(new GanttTaskInfo(task.id, name, self.format_date(task[self.date_start]), self.project_duration[index], 100, "")) }); } else { @@ -220,9 +208,7 @@ init: function(parent, dataset, view_id) { if (this.group_by.length) { _.each(self.GanttTasks, function(tasks, index) { - _.each(tasks, function(task, tindex) { - self.GanttProjects.addTask(task); - }); + self.GanttProjects.addTask(tasks); }); } else { From a9cb7736c46987b4f7168408261e41a4ec45df09 Mon Sep 17 00:00:00 2001 From: "Jiten (OpenERP)" Date: Wed, 16 Nov 2011 18:08:34 +0530 Subject: [PATCH 11/59] [IMP] Remove bottom bar (footer) from other pages to show only in main menu. bzr revid: jra@tinyerp.com-20111116123834-2vejdxbd7morztfv --- .../web_mobile/static/src/js/chrome_mobile.js | 32 ------------- .../web_mobile/static/src/js/form_mobile.js | 48 ------------------- .../web_mobile/static/src/js/list_mobile.js | 16 ------- .../web_mobile/static/src/xml/web_mobile.xml | 7 --- 4 files changed, 103 deletions(-) diff --git a/addons/web_mobile/static/src/js/chrome_mobile.js b/addons/web_mobile/static/src/js/chrome_mobile.js index 516de784adc..f86e0fec5f9 100644 --- a/addons/web_mobile/static/src/js/chrome_mobile.js +++ b/addons/web_mobile/static/src/js/chrome_mobile.js @@ -151,14 +151,6 @@ openerp.web_mobile.Shortcuts = openerp.web.Widget.extend({ $.mobile.changePage("#oe_menu", "slide", false, true); }); self.$element.find('#content').find("a").click(self.on_clicked); - self.$element.find("[data-role=footer]").find('#preference').click(function(){ - if(!$('#oe_options').html().length){ - this.options = new openerp.web_mobile.Options(self, "oe_options"); - this.options.start(); - }else{ - $.mobile.changePage("#oe_options", "slide", false, true); - } - }); $.mobile.changePage("#oe_shortcuts", "slide", false, true); }); }, @@ -261,22 +253,6 @@ openerp.web_mobile.Secondary = openerp.web.Widget.extend({ this.$element.html(this.render(v)); this.$element.find("[data-role=header]").find("h1").html(this.data.name); this.$element.add(this.$secondary_menu).find('#content').find("a").click(this.on_menu_click); - this.$element.find("[data-role=footer]").find('#shrotcuts').click(function(){ - if(!$('#oe_shortcuts').html().length){ - this.shortcuts = new openerp.web_mobile.Shortcuts(self, "oe_shortcuts"); - this.shortcuts.start(); - }else{ - $.mobile.changePage("#oe_shortcuts", "slide", false, true); - } - }); - this.$element.find("[data-role=footer]").find('#preference').click(function(){ - if(!$('#oe_options').html().length){ - this.options = new openerp.web_mobile.Options(self, "oe_options"); - this.options.start(); - }else{ - $.mobile.changePage("#oe_options", "slide", false, true); - } - }); this.$element.find("[data-role=header]").find('#home').click(function(){ $.mobile.changePage("#oe_menu", "slide", false, true); }); @@ -328,14 +304,6 @@ openerp.web_mobile.Options = openerp.web.Widget.extend({ var self = this; this.$element.html(this.render(this)); this.$element.find("[data-role=header]").find('h1').html('Preference'); - this.$element.find("[data-role=footer]").find('#shrotcuts').click(function(){ - if(!$('#oe_shortcuts').html().length){ - this.shortcuts = new openerp.web_mobile.Shortcuts(self, "oe_shortcuts"); - this.shortcuts.start(); - }else{ - $.mobile.changePage("#oe_shortcuts", "slide", false, true); - } - }); this.$element.find("[data-role=header]").find('#home').click(function(){ $.mobile.changePage("#oe_menu", "slide", false, true); }); diff --git a/addons/web_mobile/static/src/js/form_mobile.js b/addons/web_mobile/static/src/js/form_mobile.js index 598f3c29739..32d1c39f133 100644 --- a/addons/web_mobile/static/src/js/form_mobile.js +++ b/addons/web_mobile/static/src/js/form_mobile.js @@ -52,22 +52,6 @@ openerp.web_mobile.FormView = openerp.web.Widget.extend({ self.$element.find("[data-role=header]").find('#home').click(function(){ $.mobile.changePage("#oe_menu", "slide", false, true); }); - self.$element.find("[data-role=footer]").find('#shrotcuts').click(function(){ - if(!$('#oe_shortcuts').html().length){ - this.shortcuts = new openerp.web_mobile.Shortcuts(self, "oe_shortcuts"); - this.shortcuts.start(); - }else{ - $.mobile.changePage("#oe_shortcuts", "slide", false, true); - } - }); - self.$element.find("[data-role=footer]").find('#preference').click(function(){ - if(!$('#oe_options').html().length){ - this.options = new openerp.web_mobile.Options(self, "oe_options"); - this.options.start(); - }else{ - $.mobile.changePage("#oe_options", "slide", false, true); - } - }); self.$element.find('#formbutton').click(function(){ var head = $(this).prev().find('select').find("option:selected").text(); var selected_id = $(this).prev().find('select').val(); @@ -148,22 +132,6 @@ openerp.web_mobile.FormView = openerp.web.Widget.extend({ $('[id^="oe_list_'+relational+'_'+self.element_id+'"]').find("[data-role=header]").find('#home').click(function(){ $.mobile.changePage("#oe_menu", "slide", false, true); }); - $('[id^="oe_list_'+relational+'_'+self.element_id+'"]').find("[data-role=footer]").find('#shrotcuts').click(function(){ - if(!$('#oe_shortcuts').html().length){ - this.shortcuts = new openerp.web_mobile.Shortcuts(self, "oe_shortcuts"); - this.shortcuts.start(); - }else{ - $.mobile.changePage("#oe_shortcuts", "slide", false, true); - } - }); - $('[id^="oe_list_'+relational+'_'+self.element_id+'"]').find("[data-role=footer]").find('#preference').click(function(){ - if(!$('#oe_options').html().length){ - this.options = new openerp.web_mobile.Options(self, "oe_options"); - this.options.start(); - }else{ - $.mobile.changePage("#oe_options", "slide", false, true); - } - }); $('[id^="oe_list_'+relational+'_'+self.element_id+'"]').find("a#list-id").click(function(ev){ ev.preventDefault(); ev.stopPropagation(); @@ -203,22 +171,6 @@ openerp.web_mobile.FormView = openerp.web.Widget.extend({ $('[id^="oe_form_'+listid+result.fields[relational].relation+'"]').find("[data-role=header]").find('#home').click(function(){ $.mobile.changePage("#oe_menu", "slide", false, true); }); - $('[id^="oe_form_'+listid+result.fields[relational].relation+'"]').find("[data-role=footer]").find('#shrotcuts').click(function(){ - if(!$('#oe_shortcuts').html().length){ - this.shortcuts = new openerp.web_mobile.Shortcuts(self, "oe_shortcuts"); - this.shortcuts.start(); - }else{ - $.mobile.changePage("#oe_shortcuts", "slide", false, true); - } - }); - $('[id^="oe_form_'+listid+result.fields[relational].relation+'"]').find("[data-role=footer]").find('#preference').click(function(){ - if(!$('#oe_options').html().length){ - this.options = new openerp.web_mobile.Options(self, "oe_options"); - this.options.start(); - }else{ - $.mobile.changePage("#oe_options", "slide", false, true); - } - }); $('[id^="oe_form_'+listid+result.fields[relational].relation+'"]').find('#formbutton').click(function(){ var head = $(this).prev().find('select').find("option:selected").text(); var selected_id = $(this).prev().find('select').val(); diff --git a/addons/web_mobile/static/src/js/list_mobile.js b/addons/web_mobile/static/src/js/list_mobile.js index 7e9fff16262..c7b77737e6d 100644 --- a/addons/web_mobile/static/src/js/list_mobile.js +++ b/addons/web_mobile/static/src/js/list_mobile.js @@ -46,22 +46,6 @@ openerp.web_mobile.ListView = openerp.web.Widget.extend({ self.$element.find("[data-role=header]").find('#home').click(function(){ $.mobile.changePage("#oe_menu", "slide", false, true); }); - self.$element.find("[data-role=footer]").find('#shrotcuts').click(function(){ - if (!$('#oe_shortcuts').html().length) { - this.shortcuts = new openerp.web_mobile.Shortcuts(self, "oe_shortcuts"); - this.shortcuts.start(); - }else{ - $.mobile.changePage("#oe_shortcuts", "slide", false, true); - } - }); - self.$element.find("[data-role=footer]").find('#preference').click(function(){ - if(!$('#oe_options').html().length){ - this.options = new openerp.web_mobile.Options(self, "oe_options"); - this.options.start(); - }else{ - $.mobile.changePage("#oe_options", "slide", false, true); - } - }); self.$element.find("a#list-id").click(self.on_list_click); $.mobile.changePage("#"+self.element_id, "slide", false, true); }); diff --git a/addons/web_mobile/static/src/xml/web_mobile.xml b/addons/web_mobile/static/src/xml/web_mobile.xml index d2af2e95573..898d86c1735 100644 --- a/addons/web_mobile/static/src/xml/web_mobile.xml +++ b/addons/web_mobile/static/src/xml/web_mobile.xml @@ -72,7 +72,6 @@ - @@ -114,7 +113,6 @@ - @@ -126,7 +124,6 @@ - @@ -159,7 +156,6 @@ - @@ -343,8 +339,5 @@ - - - \ No newline at end of file From b0ece86d7cf44cdccfd563ce9d547bd72c79dbba Mon Sep 17 00:00:00 2001 From: "Vaibhav (OpenERP)" Date: Wed, 16 Nov 2011 19:08:44 +0530 Subject: [PATCH 12/59] [FIX] Create node. bzr revid: vda@tinyerp.com-20111116133844-qp4fp3pkruqpgobr --- addons/web_gantt/static/src/js/gantt.js | 59 ++++++++----------- addons/web_gantt/static/src/xml/web_gantt.xml | 1 + 2 files changed, 25 insertions(+), 35 deletions(-) diff --git a/addons/web_gantt/static/src/js/gantt.js b/addons/web_gantt/static/src/js/gantt.js index effaf17dfe3..ec212c7007d 100644 --- a/addons/web_gantt/static/src/js/gantt.js +++ b/addons/web_gantt/static/src/js/gantt.js @@ -65,7 +65,9 @@ init: function(parent, dataset, view_id) { var name = started_projects[0][self.parent]; self.name = name instanceof Array? name[name.length - 1] : name; } - + this.$element.find('#add_task').click(function(){ + self.editTask(); + }); $.when(this.project_starting_date(), this.get_project_duration(), this.calculate_difference()) .then(function() { if(self.ganttChartControl) { @@ -83,30 +85,23 @@ init: function(parent, dataset, view_id) { var def = $.Deferred(), self = this, projects = this.database_projects; - - if (!this.group_by.length) return def.resolve().promise(); - this.GroupProject = _.map(this.group_by, function(grp) { - return _.groupBy(projects, function(prj) { - if(!prj[grp]) prj[grp] = 'Undefined'; - return prj[grp]; - }) + if (!this.group_by.length) return def.resolve().promise(); + this.data_groups = _.groupBy(projects, function(project, index) { + return _.map(self.group_by, function(group, index) { + if(!project[group]) project[group] = 'Undefined'; + else if(project[group] instanceof Array) project[group] = project[group][1]; + return project[group]; }); + }); return def.resolve().promise(); }, - generate_projects : function() { var projects = this.database_projects, self = this; this.GanttTasks = []; if(this.group_by.length) { - _.each(this.GroupProject, function(grp, index) { - var name = _.keys(grp)[0]; - name = name.split(','); -// index > 0 ? "" + (index - 1) - self.GanttTasks.push(new GanttTaskInfo(index, name[name.length - 1], self.project_start_date, self.total_duration, 100, index > 0 ? (index - 1) : "")); - }); } else { this.GanttTasks.push(new GanttTaskInfo(0, self.name, self.project_start_date, self.total_duration, 100, "")); } @@ -118,11 +113,7 @@ init: function(parent, dataset, view_id) { var self = this, tasks = this.database_projects; if (this.group_by.length) { - _.each(_.values(_.last(this.GroupProject))[0], function(task, index) { - var name = task[self.text]; - _.last(self.GanttTasks) - .addChildTask(new GanttTaskInfo(task.id, name, self.format_date(task[self.date_start]), self.project_duration[index], 100, "")) - }); + } else { _.each(tasks, function(task, index){ @@ -207,9 +198,7 @@ init: function(parent, dataset, view_id) { var self = this; if (this.group_by.length) { - _.each(self.GanttTasks, function(tasks, index) { - self.GanttProjects.addTask(tasks); - }); + } else { _.each(this.GanttTasks, function(tsk, index){ @@ -293,13 +282,16 @@ init: function(parent, dataset, view_id) { }, editTask: function(task) { - - var self = this; - var event_id = task.getId(); - if(!event_id || !task.parentTask) - return false; + var self = this, + event_id; + if (!task) + event_id = null; + else { + event_id = task.getId(); + if(!event_id || !task.parentTask) + return false; + } if(event_id) event_id = parseInt(event_id, 10); - var action_manager = new openerp.web.ActionManager(this); var dialog = new openerp.web.Dialog(this, { @@ -337,7 +329,7 @@ init: function(parent, dataset, view_id) { }, reloadView: function() { - self.on_project_loaded(self.database_projects); + this.on_project_loaded(this.database_projects); }, do_show: function () { @@ -352,16 +344,13 @@ init: function(parent, dataset, view_id) { var self = this; this.group_by = groupbys; $.when(this.has_been_loaded).then(function() { - self.dataset - .read_slice([], { + self.dataset.read_slice([], { domain: domains, context: contexts - }) - .done(function(projects) { + }).done(function(projects){ self.on_project_loaded(projects); }); }) - } }); diff --git a/addons/web_gantt/static/src/xml/web_gantt.xml b/addons/web_gantt/static/src/xml/web_gantt.xml index 48a1a1025dd..35cab76b452 100644 --- a/addons/web_gantt/static/src/xml/web_gantt.xml +++ b/addons/web_gantt/static/src/xml/web_gantt.xml @@ -1,5 +1,6 @@ From ab599f36463c2d8cc58cc5bd3878979eb7466bb9 Mon Sep 17 00:00:00 2001 From: "Jiten (OpenERP)" Date: Fri, 18 Nov 2011 12:11:38 +0530 Subject: [PATCH 13/59] [IMP] Some Changes to show Maximum 80 records in listview. bzr revid: jra@tinyerp.com-20111118064138-d9idrs8brq943r2r --- addons/web_mobile/static/src/js/form_mobile.js | 4 ++-- addons/web_mobile/static/src/js/list_mobile.js | 5 ++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/addons/web_mobile/static/src/js/form_mobile.js b/addons/web_mobile/static/src/js/form_mobile.js index 32d1c39f133..6f50bb6760d 100644 --- a/addons/web_mobile/static/src/js/form_mobile.js +++ b/addons/web_mobile/static/src/js/form_mobile.js @@ -117,10 +117,10 @@ openerp.web_mobile.FormView = openerp.web.Widget.extend({ var head = $.trim($(this).text()); var dataset = new openerp.web.DataSetSearch(self, result.fields[relational].relation, result.fields[relational].context); dataset.domain=[['id', 'in', self.datarecord[relational]]]; - dataset.read_slice([], {}, function(result1,ids){ + dataset.read_slice([], {limit:80}, function(result1,ids){ _.extend(self.action.context,{"html_name_get" : true}); var dataset1 = new openerp.web.DataSet(self, result.fields[relational].relation,result.fields[relational].context); - dataset1.name_get(dataset.ids,function(res){ + dataset1.name_get(result1,function(res){ var additional = ""; if(res['html_name_get']){ additional = res['display']; diff --git a/addons/web_mobile/static/src/js/list_mobile.js b/addons/web_mobile/static/src/js/list_mobile.js index c7b77737e6d..5813b9c216e 100644 --- a/addons/web_mobile/static/src/js/list_mobile.js +++ b/addons/web_mobile/static/src/js/list_mobile.js @@ -32,11 +32,10 @@ openerp.web_mobile.ListView = openerp.web.Widget.extend({ var self = this; var dataset = new openerp.web.DataSetSearch(this, this.action.res_model,this.action.context); dataset.domain = self.action.domain; - dataset.read_slice([], {}, function(result,ids){ + dataset.read_slice([], {limit:80}, function(result,ids){ _.extend(self.action.context,{"html_name_get" : true}); - var dataset1 = new openerp.web.DataSet(self, self.action.res_model,self.action.context); - dataset1.name_get(dataset.ids,function(res){ + dataset1.name_get(result,function(res){ var additional = ""; if(res['html_name_get']){ additional = res['display']; From c95adf2c8a8530ad433d0de27781b22af093cfa3 Mon Sep 17 00:00:00 2001 From: "Vaibhav (OpenERP)" Date: Mon, 21 Nov 2011 14:45:12 +0530 Subject: [PATCH 14/59] [FIX] Reload and update record on Resize. bzr revid: vda@tinyerp.com-20111121091512-8o5wxtid0cky2on8 --- addons/web_gantt/static/src/js/gantt.js | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/addons/web_gantt/static/src/js/gantt.js b/addons/web_gantt/static/src/js/gantt.js index ec212c7007d..77170d103ff 100644 --- a/addons/web_gantt/static/src/js/gantt.js +++ b/addons/web_gantt/static/src/js/gantt.js @@ -87,13 +87,17 @@ init: function(parent, dataset, view_id) { projects = this.database_projects; if (!this.group_by.length) return def.resolve().promise(); - this.data_groups = _.groupBy(projects, function(project, index) { - return _.map(self.group_by, function(group, index) { + this.data_groups = _.groupBy(projects, function(project) { + return _.map(self.group_by, function(group) { if(!project[group]) project[group] = 'Undefined'; else if(project[group] instanceof Array) project[group] = project[group][1]; return project[group]; }); }); + + this.group_keys = _.map(this.group_by, function(group, index) { + return _.map(projects, function(project){return project[group]}); + }); return def.resolve().promise(); }, generate_projects : function() { @@ -102,6 +106,7 @@ init: function(parent, dataset, view_id) { this.GanttTasks = []; if(this.group_by.length) { + } else { this.GanttTasks.push(new GanttTaskInfo(0, self.name, self.project_start_date, self.total_duration, 100, "")); } @@ -198,10 +203,9 @@ init: function(parent, dataset, view_id) { var self = this; if (this.group_by.length) { - } else { - _.each(this.GanttTasks, function(tsk, index){ + _.each(this.GanttTasks, function(tsk, index) { self.GanttProjects.addTask(tsk); }); } @@ -238,7 +242,6 @@ init: function(parent, dataset, view_id) { ganttChartControl.attachEvent("onTaskEndResize", function(task) {return self.ResizeTask(task);}); ganttChartControl.attachEvent("onTaskEndDrag", function(task) {return self.ResizeTask(task);}); - ganttChartControl.attachEvent("onTaskClick", function(task) { return self.editTask(task);}); }, format_date : function(date) { @@ -257,7 +260,6 @@ init: function(parent, dataset, view_id) { }, ResizeTask: function(task) { - var self = this, event_id = task.getId(); @@ -277,6 +279,8 @@ init: function(parent, dataset, view_id) { this.dataset .write(event_id, data, {}) .done(function() { + var get_project = _.find(self.database_projects, function(project){ return project.id == event_id}); + _.extend(get_project,data); self.reloadView(); }); }, @@ -350,7 +354,7 @@ init: function(parent, dataset, view_id) { }).done(function(projects){ self.on_project_loaded(projects); }); - }) + }); } }); From ef3c7d9c3b51e4ae30de02c74517df3e7307a93d Mon Sep 17 00:00:00 2001 From: "Vaibhav (OpenERP)" Date: Mon, 21 Nov 2011 16:49:31 +0530 Subject: [PATCH 15/59] [FIX] Done for level 1 group. todo for multi level. bzr revid: vda@tinyerp.com-20111121111931-f149p9vau10vsx60 --- addons/web_gantt/static/src/js/gantt.js | 42 ++++++++++++++++++++----- 1 file changed, 34 insertions(+), 8 deletions(-) diff --git a/addons/web_gantt/static/src/js/gantt.js b/addons/web_gantt/static/src/js/gantt.js index 77170d103ff..63845361b7b 100644 --- a/addons/web_gantt/static/src/js/gantt.js +++ b/addons/web_gantt/static/src/js/gantt.js @@ -106,7 +106,13 @@ init: function(parent, dataset, view_id) { this.GanttTasks = []; if(this.group_by.length) { - + if(this.group_by.length > 1) { + + } else { + _.each(_.uniq(this.group_keys[0]), function(group, index) { + self.GanttTasks.push(new GanttTaskInfo(index, group, self.project_start_date, self.total_duration, 100,"")); + }); + } } else { this.GanttTasks.push(new GanttTaskInfo(0, self.name, self.project_start_date, self.total_duration, 100, "")); } @@ -118,7 +124,21 @@ init: function(parent, dataset, view_id) { var self = this, tasks = this.database_projects; if (this.group_by.length) { - + if (this.group_by.length > 1) { + } else { + _.each(_.values(this.data_groups), function(child_tasks, index) { + _.each(child_tasks, function(chld) { + var name = chld[self.text]; + if (chld[self.text] instanceof Array) { + name = chld[self.text][1]; + } + var duration = _.keys(self.group_project_duration).indexOf(""+chld.id); + duration = _.values(self.group_project_duration)[duration]; + self.GanttTasks[index].addChildTask(new GanttTaskInfo(chld.id, name, self.format_date(chld[self.date_start]), duration, 100, "")) + }); + + }); + } } else { _.each(tasks, function(task, index){ @@ -138,15 +158,19 @@ init: function(parent, dataset, view_id) { projects = this.database_projects; this.project_duration = []; - + this.group_project_duration = {}; _.each(projects, function(project, index) { + var duration = 0, + id = project.id; if (self.date_stop && project[self.date_stop]) { - self.project_duration.push(self.duration_difference(project[self.date_start], project[self.date_stop])); + duration = self.duration_difference(project[self.date_start], project[self.date_stop]); +// self.project_duration.push(self.duration_difference(project[self.date_start], project[self.date_stop])); } else if(self.date_delay && project[self.date_delay]) { - self.project_duration.push(project[self.date_delay]); - } else { - self.project_duration.push(0); + duration = project[self.date_delay]; +// self.project_duration.push(project[self.date_delay]); } + self.project_duration.push(duration); + self.group_project_duration[id] = duration; }); this.max_project_duration = _.max(this.project_duration); @@ -203,6 +227,9 @@ init: function(parent, dataset, view_id) { var self = this; if (this.group_by.length) { + _.each(this.GanttTasks, function(tsk, index) { + self.GanttProjects.addTask(tsk); + }); } else { _.each(this.GanttTasks, function(tsk, index) { @@ -239,7 +266,6 @@ init: function(parent, dataset, view_id) { } } }); - ganttChartControl.attachEvent("onTaskEndResize", function(task) {return self.ResizeTask(task);}); ganttChartControl.attachEvent("onTaskEndDrag", function(task) {return self.ResizeTask(task);}); }, From aad7d22763beb1774218bd7f041a918a56237964 Mon Sep 17 00:00:00 2001 From: "Jiten (OpenERP)" Date: Mon, 21 Nov 2011 17:47:26 +0530 Subject: [PATCH 16/59] [IMP] Improve m2o field to remove image for open related form and make it as o2m. bzr revid: jra@tinyerp.com-20111121121726-pat4r2ypa3o93tr9 --- .../web_mobile/static/src/js/form_mobile.js | 69 ++++--------------- .../web_mobile/static/src/xml/web_mobile.xml | 26 ++----- 2 files changed, 22 insertions(+), 73 deletions(-) diff --git a/addons/web_mobile/static/src/js/form_mobile.js b/addons/web_mobile/static/src/js/form_mobile.js index 6f50bb6760d..cc816b75a21 100644 --- a/addons/web_mobile/static/src/js/form_mobile.js +++ b/addons/web_mobile/static/src/js/form_mobile.js @@ -52,20 +52,6 @@ openerp.web_mobile.FormView = openerp.web.Widget.extend({ self.$element.find("[data-role=header]").find('#home').click(function(){ $.mobile.changePage("#oe_menu", "slide", false, true); }); - self.$element.find('#formbutton').click(function(){ - var head = $(this).prev().find('select').find("option:selected").text(); - var selected_id = $(this).prev().find('select').val(); - var select_model = $(this).prev().find('select').attr('for'); - if(selected_id!="false"){ - if(!$('[id^="oe_form_'+selected_id+select_model+'"]').html()){ - $('
').appendTo('#moe'); - this.formview = new openerp.web_mobile.FormView(self, "oe_form_"+selected_id+select_model, selected_id, '', head, select_model, false); - this.formview.start(); - }else{ - $.mobile.changePage('#oe_form_'+selected_id+select_model, "slide", false, true); - } - } - }); self.$element.find('[data-role=collapsible-set]').find('[data-role=collapsible]').each(function(i){ for (var k = 0; k < notebooks.children.length; k++) { if (notebooks.children[k].attrs.string == $(this).attr('id')) { @@ -83,21 +69,6 @@ openerp.web_mobile.FormView = openerp.web.Widget.extend({ $(this).find('div#page_content').html(self.render({'get_fields': get_fields,'fields' : result.fields, 'values' : self.datarecord})); } self.formatdata(get_fields, fields, result, self.datarecord,'page_content','element'); - - $(this).find('div#page_content').find('#formbutton').click(function(){ - var head = $(this).prev().find('select').find("option:selected").text(); - var selected_id = $(this).prev().find('select').val(); - var select_model = $(this).prev().find('select').attr('for'); - if(selected_id!="false"){ - if(!$('[id^="oe_form_'+selected_id+select_model+'"]').html()){ - $('
').appendTo('#moe'); - this.formview = new openerp.web_mobile.FormView(self, "oe_form_"+selected_id+select_model, selected_id, '', head, select_model, false); - this.formview.start(); - }else{ - $.mobile.changePage('#oe_form_'+selected_id+select_model, "slide", false, true); - } - } - }); } }); self.$element.find('[data-role=collapsible-set]').find('[data-role=collapsible]').find('div#page_content').find('[data-role=content]').find('ul').find('li').click(function(ev){ @@ -146,7 +117,6 @@ openerp.web_mobile.FormView = openerp.web.Widget.extend({ } if(!$('[id^="oe_form_'+listid+result.fields[relational].relation+'"]').html()){ $('
').appendTo('#moe'); - for (var k = 0; k < notebooks.children.length; k++) { if (notebooks.children[k].attrs.string == lastid) { get_fields = self.get_fields(notebooks.children[k].children); @@ -171,20 +141,6 @@ openerp.web_mobile.FormView = openerp.web.Widget.extend({ $('[id^="oe_form_'+listid+result.fields[relational].relation+'"]').find("[data-role=header]").find('#home').click(function(){ $.mobile.changePage("#oe_menu", "slide", false, true); }); - $('[id^="oe_form_'+listid+result.fields[relational].relation+'"]').find('#formbutton').click(function(){ - var head = $(this).prev().find('select').find("option:selected").text(); - var selected_id = $(this).prev().find('select').val(); - var select_model = $(this).prev().find('select').attr('for'); - if(selected_id!="false"){ - if(!$('[id^="oe_form_'+selected_id+select_model+'"]').html()){ - $('
').appendTo('#moe'); - this.formview = new openerp.web_mobile.FormView(self, "oe_form_"+selected_id+select_model, selected_id, '', head, select_model, false); - this.formview.start(); - }else{ - $.mobile.changePage('#oe_form_'+selected_id+select_model, "slide", false, true); - } - } - }); if(notebook){ self.formatdata(get_fields_test, fields_test, result, data_relational,'oe_form_'+listid+result.fields[relational].relation,'element'); }else{ @@ -205,9 +161,24 @@ openerp.web_mobile.FormView = openerp.web.Widget.extend({ }); } }); + self.$element.find('#m2o_btn').click(this.open_m2o_form); $.mobile.changePage("#"+self.element_id, "slide", false, true); self.formatdata('', '', '', '',self.element_id,'slider'); }, + open_m2o_form : function(ev) { + var head = $(this).find('a').attr('name'); + var selected_id = $(this).find('a').attr('value'); + var select_model = $(this).attr('for'); + if(selected_id!="false"){ + if(!$('[id^="oe_form_'+selected_id+select_model+'"]').html()){ + $('
').appendTo('#moe'); + this.formview = new openerp.web_mobile.FormView(self, "oe_form_"+selected_id+select_model, selected_id, '', head, select_model, false); + this.formview.start(); + }else{ + $.mobile.changePage('#oe_form_'+selected_id+select_model, "slide", false, true); + } + } + }, get_fields: function(view_fields, fields) { this.fields = fields || []; for (var i=0; i < view_fields.length; i++){ @@ -276,16 +247,6 @@ openerp.web_mobile.FormView = openerp.web.Widget.extend({ $(this).css('left', '-9999px'); }); }); - // image displayed with m2o field - $('[id^="'+id+'"]').find('div[class=ui-select]').each(function(){ - $(this).next().each(function(){ - if($(this).attr('id')=="formbutton"){ - $(this).prev().css('display','inline-table'); - $(this).prev().find('a').find('.ui-btn-inner').removeClass('ui-btn-inner'); - $(this).prev().find('a').find('span:first').css('padding-right','150px'); - } - }); - }); } } }); diff --git a/addons/web_mobile/static/src/xml/web_mobile.xml b/addons/web_mobile/static/src/xml/web_mobile.xml index 898d86c1735..1d6f81404d2 100644 --- a/addons/web_mobile/static/src/xml/web_mobile.xml +++ b/addons/web_mobile/static/src/xml/web_mobile.xml @@ -288,25 +288,13 @@ : - - - - +
    From 15b357cb79a7243a74515bd7596c385e9b8e0c6a Mon Sep 17 00:00:00 2001 From: "Vaibhav (OpenERP)" Date: Wed, 23 Nov 2011 15:56:14 +0530 Subject: [PATCH 17/59] [FIX] Used Old method for multiple group_by. bzr revid: vda@tinyerp.com-20111123102614-r4uvsuhrj0t7q9fm --- addons/web_gantt/static/src/js/gantt.js | 624 ++++++++++++++---------- 1 file changed, 372 insertions(+), 252 deletions(-) diff --git a/addons/web_gantt/static/src/js/gantt.js b/addons/web_gantt/static/src/js/gantt.js index 63845361b7b..07b754890b1 100644 --- a/addons/web_gantt/static/src/js/gantt.js +++ b/addons/web_gantt/static/src/js/gantt.js @@ -7,7 +7,7 @@ var QWeb = openerp.web.qweb; openerp.web.views.add('gantt', 'openerp.web_gantt.GanttView'); openerp.web_gantt.GanttView = openerp.web.View.extend({ -init: function(parent, dataset, view_id) { + init: function(parent, dataset, view_id) { this._super(parent); this.view_manager = parent || new openerp.web.NullViewManager(); this.dataset = dataset; @@ -24,6 +24,7 @@ init: function(parent, dataset, view_id) { }, on_loaded: function(data) { + this.fields_view = data, this.name = this.fields_view.arch.attrs.string, this.view_id = this.fields_view.view_id, @@ -48,226 +49,29 @@ init: function(parent, dataset, view_id) { this.$element.html(QWeb.render("GanttView", {'height': $('.oe-application-container').height(), 'width': $('.oe-application-container').width()})); this.has_been_loaded.resolve(); }, - - on_project_loaded: function(projects) { - - if(!projects.length) return; - var self = this, - started_projects = _.filter(projects, function(res) { - return res[self.date_start]; - }); - - this.database_projects = started_projects; - if(!started_projects.length) - return self.do_warn(_t("date_start is not defined")); - - if(!self.name && started_projects.length) { - var name = started_projects[0][self.parent]; - self.name = name instanceof Array? name[name.length - 1] : name; - } - this.$element.find('#add_task').click(function(){ - self.editTask(); - }); - $.when(this.project_starting_date(), this.get_project_duration(), this.calculate_difference()) - .then(function() { - if(self.ganttChartControl) { - self.ganttChartControl.clearAll(); - self.$element.find('#GanttView').empty(); - } - }) - .then(this.group_projects()) - .then(this.generate_projects()) - .then(this.add_tasks()) - .done(this.init_gantt_view()); - }, - - group_projects: function() { - var def = $.Deferred(), - self = this, - projects = this.database_projects; - - if (!this.group_by.length) return def.resolve().promise(); - this.data_groups = _.groupBy(projects, function(project) { - return _.map(self.group_by, function(group) { - if(!project[group]) project[group] = 'Undefined'; - else if(project[group] instanceof Array) project[group] = project[group][1]; - return project[group]; - }); - }); - - this.group_keys = _.map(this.group_by, function(group, index) { - return _.map(projects, function(project){return project[group]}); - }); - return def.resolve().promise(); - }, - generate_projects : function() { - var projects = this.database_projects, - self = this; - - this.GanttTasks = []; - if(this.group_by.length) { - if(this.group_by.length > 1) { - - } else { - _.each(_.uniq(this.group_keys[0]), function(group, index) { - self.GanttTasks.push(new GanttTaskInfo(index, group, self.project_start_date, self.total_duration, 100,"")); - }); - } - } else { - this.GanttTasks.push(new GanttTaskInfo(0, self.name, self.project_start_date, self.total_duration, 100, "")); - } - this.GanttProjects = new GanttProjectInfo(0, self.name, self.project_start_date); - return $.Deferred().resolve().promise(); - }, - - add_tasks: function() { - var self = this, - tasks = this.database_projects; - if (this.group_by.length) { - if (this.group_by.length > 1) { - } else { - _.each(_.values(this.data_groups), function(child_tasks, index) { - _.each(child_tasks, function(chld) { - var name = chld[self.text]; - if (chld[self.text] instanceof Array) { - name = chld[self.text][1]; - } - var duration = _.keys(self.group_project_duration).indexOf(""+chld.id); - duration = _.values(self.group_project_duration)[duration]; - self.GanttTasks[index].addChildTask(new GanttTaskInfo(chld.id, name, self.format_date(chld[self.date_start]), duration, 100, "")) - }); - - }); - } - } - else { - _.each(tasks, function(task, index){ - var name = task[self.text]; - if (task[self.text] instanceof Array) { - name = task[self.text][1]; - } - self.GanttTasks[0].addChildTask(new GanttTaskInfo(task.id, name, self.format_date(task[self.date_start]), self.project_duration[index], 100, "")); - }); - } - return $.Deferred().resolve().promise(); - }, - - get_project_duration: function() { - - var self = this, - projects = this.database_projects; - - this.project_duration = []; - this.group_project_duration = {}; - _.each(projects, function(project, index) { - var duration = 0, - id = project.id; - if (self.date_stop && project[self.date_stop]) { - duration = self.duration_difference(project[self.date_start], project[self.date_stop]); -// self.project_duration.push(self.duration_difference(project[self.date_start], project[self.date_stop])); - } else if(self.date_delay && project[self.date_delay]) { - duration = project[self.date_delay]; -// self.project_duration.push(project[self.date_delay]); - } - self.project_duration.push(duration); - self.group_project_duration[id] = duration; - }); - - this.max_project_duration = _.max(this.project_duration); - return $.Deferred().resolve().promise(); - }, - - duration_difference: function(start_date, end_date) { - - var DAY = 1000 * 60 * 60 * 24, - date1_ms = openerp.web.auto_str_to_date(start_date).getTime(), - date2_ms = openerp.web.auto_str_to_date(end_date).getTime(), - difference_ms = Math.abs(date1_ms - date2_ms); - - var d = Math.floor(difference_ms / DAY), - h = (difference_ms % DAY)/(1000 * 60 * 60), - num = (d * this.day_length) + h; - return parseFloat(num.toFixed(2)); - - }, - - calculate_difference: function() { - var extend_end_date_day = Math.floor(this.max_project_duration / this.day_length), - extend_end_date_hours = this.max_project_duration % this.day_length; - - this.project_end_date = this.project_end_date.add({days: extend_end_date_day, hours: extend_end_date_hours}) - - var DAY = 1000 * 60 * 60 * 24, - difference = Math.abs(this.project_start_date.getTime() - this.project_end_date.getTime()), - day = Math.ceil(difference / DAY), - hour = (difference % DAY)/(1000 * 60 * 60), - DiffHour = (day * this.day_length) + hour; - - this.total_duration = parseFloat(DiffHour.toFixed(2)); - return $.Deferred().resolve().promise(); - }, - - project_starting_date : function() { - var self = this, - projects = this.database_projects, - min_date = _.min(projects, function(prj) { - return new Date(prj[self.date_start]); - }), - max_date = _.max(projects, function(prj) { - return self.format_date(prj[self.date_start]); - }); - this.project_end_date = this.format_date(max_date[self.date_start]); - if (min_date) this.project_start_date = this.format_date(min_date[self.date_start]); - else - this.project_start_date = Date.today(); - return $.Deferred().resolve().promise(); - }, init_gantt_view: function() { - var self = this; - - if (this.group_by.length) { - _.each(this.GanttTasks, function(tsk, index) { - self.GanttProjects.addTask(tsk); - }); - } - else { - _.each(this.GanttTasks, function(tsk, index) { - self.GanttProjects.addTask(tsk); - }); - } - - var ganttChartControl = this.ganttChartControl = new GanttChart(); - // Setup paths and behavior + ganttChartControl = this.ganttChartControl = new GanttChart(this.day_length); ganttChartControl.setImagePath("/web_gantt/static/lib/dhtmlxGantt/codebase/imgs/"); ganttChartControl.setEditable(true); ganttChartControl.showTreePanel(true); ganttChartControl.showContextMenu(false); ganttChartControl.showDescTask(true,'d,s-f'); ganttChartControl.showDescProject(true,'n,d'); - - // Load data structure - ganttChartControl.addProject(this.GanttProjects); - - // Create Gantt control - ganttChartControl.create('GanttView'); - - // Setup Events - ganttChartControl.attachEvent("onTaskStartDrag", function(task) { - if (task.parentTask) { - var task_date = task.getEST(); - if (task_date.getHours()) { - task_date.set({ - hour: task_date.getHours(), - minute: task_date.getMinutes(), - second: 0 - }); - } - } - }); - ganttChartControl.attachEvent("onTaskEndResize", function(task) {return self.ResizeTask(task);}); - ganttChartControl.attachEvent("onTaskEndDrag", function(task) {return self.ResizeTask(task);}); + + }, + + project_starting_date : function() { + var self = this, + projects = this.database_projects, + min_date = _.min(projects, function(prj) { + return self.format_date(prj[self.date_start]); + }); + if (min_date) this.project_start_date = this.format_date(min_date[self.date_start]); + else + this.project_start_date = Date.today(); + return $.Deferred().resolve().promise(); }, format_date : function(date) { @@ -282,16 +86,242 @@ init: function(parent, dataset, view_id) { } else { this.date_format = "yyyy-MM-dd HH:mm:ss"; } - return openerp.web.auto_str_to_date(date); + if(typeof date === 'string') + return openerp.web.auto_str_to_date(date); + return date; + }, + + on_project_loaded: function(events) { + + if(!events.length) return; + var self = this, + started_projects = _.filter(events, function(res) { + return res[self.date_start]; + }); + + this.database_projects = started_projects; + + if(!started_projects.length) + return self.do_warn(_t("date_start is not defined")); + + if(!self.name && started_projects.length) { + var name = started_projects[0][self.parent]; + self.name = name instanceof Array? name[name.length - 1] : name; + } + this.$element.find('#add_task').click(function(){ + self.editTask(); + }); + + $.when(this.project_starting_date()) + .then(function() { + if(self.ganttChartControl) { + self.ganttChartControl.clearAll(); + self.$element.find('#GanttView').empty(); + } + }) + .done(this.init_gantt_view()); + + var self = this; + var show_event = started_projects; + _.each(show_event, function(evt) {evt[self.date_start] = self.format_date(evt[self.date_start])}); + this.project = new GanttProjectInfo("_1", self.name, this.project_start_date); + self.ganttChartControl.addProject(this.project); + //create child + var k = 0; + var color_box = {}; + var parents = {}; + var all_events = {}; + var child_event = {}; + var temp_id = ""; + var final_events = []; + for (var i in show_event) { + + var res = show_event[i]; + + var id = res['id']; + var text = res[this.text]; + var start_date = res[this.date_start]; + + if (this.date_stop != undefined){ + if (res[this.date_stop] != false){ + var stop_date = this.convert_str_date(res[this.date_stop]); + var duration= self.hours_between(start_date, stop_date); + } + else{ + var duration = 0; + } + } + else{ + var duration = res[this.date_delay]; + } + if (!duration) + duration = 0; + + if (this.group_by.length){ + for (var j in self.group_by){ + var grp_key = res[self.group_by[j]]; + if (typeof(grp_key) == "object"){ + grp_key = res[self.group_by[j]][1]; + } + else{ + grp_key = res[self.group_by[j]]; + } + + if (!grp_key){ + grp_key = "Undefined"; + } + + if (j == 0){ + if (parents[grp_key] == undefined){ + var mod_id = i+ "_" +j; + parents[grp_key] = mod_id; + child_event[mod_id] = {}; + all_events[mod_id] = {'parent': "", 'evt':[mod_id , grp_key, start_date, start_date, 100, ""]}; + } + else{ + mod_id = parents[grp_key]; + } + temp_id = mod_id; + }else{ + if (child_event[mod_id][grp_key] == undefined){ + var ch_mod_id = i+ "_" +j; + child_event[mod_id][grp_key] = ch_mod_id; + child_event[ch_mod_id] = {}; + temp_id = ch_mod_id; + all_events[ch_mod_id] = {'parent': mod_id, 'evt':[ch_mod_id , grp_key, start_date, start_date, 100, ""]}; + mod_id = ch_mod_id; + } + else{ + mod_id = child_event[mod_id][grp_key]; + temp_id = mod_id; + } + } + } + all_events[id] = {'parent': temp_id, 'evt':[id , text, start_date, duration, 100, ""]}; + final_events.push(id); + } + else { + if (i == 0) { + var mod_id = "_" + i; + all_events[mod_id] = {'parent': "", 'evt': [mod_id, this.name, start_date, start_date, 100, ""]}; + } + all_events[id] = {'parent': mod_id, 'evt':[id , text, start_date, duration, 100, ""]}; + final_events.push(id); + } + } + + for (var i in final_events){ + var evt_id = final_events[i]; + var evt_date = all_events[evt_id]['evt'][2]; + while (all_events[evt_id]['parent'] != "") { + var parent_id =all_events[evt_id]['parent']; + if (all_events[parent_id]['evt'][2] > evt_date){ + all_events[parent_id]['evt'][2] = evt_date; + } + evt_id = parent_id; + } + } + var evt_id = []; + var evt_date = ""; + var evt_duration = ""; + var evt_end_date = ""; + var project_tree_field = []; + for (var i in final_events){ + evt_id = final_events[i]; + evt_date = all_events[evt_id]['evt'][2]; + evt_duration = all_events[evt_id]['evt'][3]; + + var evt_str_date = this.convert_date_str(evt_date); + evt_end_date = this.end_date(evt_str_date, evt_duration); + + while (all_events[evt_id]['parent'] != "") { + var parent_id =all_events[evt_id]['parent']; + if (all_events[parent_id]['evt'][3] < evt_end_date){ + all_events[parent_id]['evt'][3] = evt_end_date; + } + evt_id = parent_id; + } + } + + for (var j in self.group_by) { + self.render_events(all_events, j); + } + + if (!self.group_by.length) { + self.render_events(all_events, 0); + } + + for (var i in final_events) { + evt_id = final_events[i]; + res = all_events[evt_id]; + task=new GanttTaskInfo(res['evt'][0], res['evt'][1], res['evt'][2], res['evt'][3], res['evt'][4], ""); + prt = self.project.getTaskById(res['parent']); + prt.addChildTask(task); + } + + var oth_hgt = 264; + var min_hgt = 150; + var name_min_wdt = 150; + var gantt_hgt = $(window).height() - oth_hgt; + var search_wdt = $("#oe_app_search").width(); + + if (gantt_hgt > min_hgt) { + $('#GanttView').height(gantt_hgt).width(search_wdt); + } else{ + $('#GanttView').height(min_hgt).width(search_wdt); + } + + self.ganttChartControl.create("GanttView"); + + // Setup Events + self.ganttChartControl.attachEvent("onTaskStartDrag", function(task) { + if (task.parentTask) { + var task_date = task.getEST(); + if (task_date.getHours()) { + task_date.set({ + hour: task_date.getHours(), + minute: task_date.getMinutes(), + second: 0 + }); + } + } + }); + self.ganttChartControl.attachEvent("onTaskEndResize", function(task) {return self.ResizeTask(task);}); + self.ganttChartControl.attachEvent("onTaskEndDrag", function(task) {return self.ResizeTask(task);}); + + var taskdiv = $("div.taskPanel").parent(); + taskdiv.addClass('ganttTaskPanel'); + taskdiv.prev().addClass('ganttDayPanel'); + var $gantt_panel = $(".ganttTaskPanel , .ganttDayPanel"); + + var ganttrow = $('.taskPanel').closest('tr'); + var gtd = ganttrow.children(':first-child'); + gtd.children().addClass('task-name'); + + $(".toggle-sidebar").click(function(e) { + self.set_width(); + }); + + $(window).bind('resize',function() { + window.clearTimeout(self.ganttChartControl._resize_timer); + self.ganttChartControl._resize_timer = window.setTimeout(function(){ + self.reloadView(); + }, 200); + }); + $("div #_1, div #_1 + div").hide(); + _.each(final_events, function(id) { + self.$element.find('.taskNameItem[id="'+id+'"]').click(function() { + self.editTask(self.ganttChartControl.getProjectById("_1").getTaskById(id)); + }) + }); }, ResizeTask: function(task) { var self = this, event_id = task.getId(); + if(task.childTask.length) + return $.when(this.do_warn(_t("Project can not be resized"))).then(this.reloadView()); - if(!event_id || !task.parentTask) - return this.do_warn(_t("Project can not be resized")); - var data = {}; data[this.date_start] = task.getEST().toString(this.date_format); @@ -315,51 +345,101 @@ init: function(parent, dataset, view_id) { var self = this, event_id; if (!task) - event_id = null; + event_id = 0; else { event_id = task.getId(); if(!event_id || !task.parentTask) return false; } if(event_id) event_id = parseInt(event_id, 10); - var action_manager = new openerp.web.ActionManager(this); - var dialog = new openerp.web.Dialog(this, { - width: 800, - height: 600, - buttons : { - Cancel : function() { - $(this).dialog('destroy'); - }, - Save : function() { - var form_view = action_manager.inner_viewmanager.views.form.controller; - - form_view.do_save(function() { - self.reloadView(); - }); - $(this).dialog('destroy'); - } - } - }).start().open(); - action_manager.appendTo(dialog.$element); - action_manager.do_action({ - res_model : this.dataset.model, - res_id: event_id, - views : [[false, 'form']], - type : 'ir.actions.act_window', - auto_search : false, - flags : { - search_view: false, - sidebar : false, - views_switcher : false, - action_buttons : false, - pager: false - } + var pop = new openerp.web.form.FormOpenPopup(this); + + pop.show_element(this.model, event_id, this.context || this.dataset.context, {}); + + pop.on_write_completed.add_last(function() { + self.reloadView(); }); }, - - reloadView: function() { - this.on_project_loaded(this.database_projects); + + set_width: function() { + $gantt_panel.width(1); + jQuery(".ganttTaskPanel").parent().width(1); + + var search_wdt = jQuery("#oe_app_search").width(); + var day_wdt = jQuery(".ganttDayPanel").children().children().width(); + jQuery('#GanttView').css('width','100%'); + + if (search_wdt - day_wdt <= name_min_wdt){ + jQuery(".ganttTaskPanel").parent().width(search_wdt - name_min_wdt); + jQuery(".ganttTaskPanel").width(search_wdt - name_min_wdt); + jQuery(".ganttDayPanel").width(search_wdt - name_min_wdt - 14); + jQuery('.task-name').width(name_min_wdt); + jQuery('.task-name').children().width(name_min_wdt); + }else{ + jQuery(".ganttTaskPanel").parent().width(day_wdt); + jQuery(".ganttTaskPanel").width(day_wdt); + jQuery(".taskPanel").width(day_wdt - 16); + jQuery(".ganttDayPanel").width(day_wdt -16); + jQuery('.task-name').width(search_wdt - day_wdt); + jQuery('.task-name').children().width(search_wdt - day_wdt); + } + + }, + + end_date: function(dat, duration) { + + var self = this; + + var dat = this.convert_str_date(dat); + + var day = Math.floor(duration/self.day_length); + var hrs = duration % self.day_length; + + dat.add(day).days(); + dat.add(hrs).hour(); + + return dat; + }, + + hours_between: function(date1, date2, parent_task) { + + var ONE_DAY = 1000 * 60 * 60 * 24; + var date1_ms = date1.getTime(); + var date2_ms = date2.getTime(); + var difference_ms = Math.abs(date1_ms - date2_ms); + + var d = parent_task? Math.ceil(difference_ms / ONE_DAY) : Math.floor(difference_ms / ONE_DAY); + var h = (difference_ms % ONE_DAY)/(1000 * 60 * 60); + var num = (d * this.day_length) + h; + return parseFloat(num.toFixed(2)); + + }, + + render_events : function(all_events, j) { + + var self = this; + for (var i in all_events){ + var res = all_events[i]; + if ((typeof(res['evt'][3])) == "object"){ + res['evt'][3] = self.hours_between(res['evt'][2],res['evt'][3], true); + } + + k = res['evt'][0].toString().indexOf('_'); + + if (k != -1) { + if (res['evt'][0].substring(k) == "_"+j){ + if (j == 0){ + task = new GanttTaskInfo(res['evt'][0], res['evt'][1], res['evt'][2], res['evt'][3], res['evt'][4], ""); + self.project.addTask(task); + } else { + task = new GanttTaskInfo(res['evt'][0], res['evt'][1], res['evt'][2], res['evt'][3], res['evt'][4], ""); + prt = self.project.getTaskById(res['parent']); + prt.addChildTask(task); + } + } + } + } }, do_show: function () { @@ -370,9 +450,49 @@ init: function(parent, dataset, view_id) { this.$element.hide(); }, + convert_str_date: function (str) { + if (typeof str == 'string') { + if (str.length == 19) { + this.date_format = "yyyy-MM-dd HH:mm:ss"; + return openerp.web.str_to_datetime(str); + } + else + if (str.length == 10) { + this.date_format = "yyyy-MM-dd"; + return openerp.web.str_to_date(str); + } + else + if (str.length == 8) { + this.date_format = "HH:mm:ss"; + return openerp.web.str_to_time(str); + } + throw "Unrecognized date/time format"; + } else { + return str; + } + }, + + convert_date_str: function(full_date) { + if (this.date_format == "yyyy-MM-dd HH:mm:ss"){ + return openerp.web.datetime_to_str(full_date); + } else if (this.date_format == "yyyy-MM-dd"){ + return openerp.web.date_to_str(full_date); + } else if (this.date_format == "HH:mm:ss"){ + return openerp.web.time_to_str(full_date); + } + throw "Unrecognized date/time format"; + }, + + reloadView: function() { + return this.on_project_loaded(this.database_projects); + }, + do_search: function (domains, contexts, groupbys) { var self = this; this.group_by = groupbys; + if(this.fields_view.arch.attrs.default_group_by) { + this.group_by = _.uniq(this.group_by.concat(this.fields_view.arch.attrs.default_group_by.split(','))); + } $.when(this.has_been_loaded).then(function() { self.dataset.read_slice([], { domain: domains, From 9f79b2aee329d7b5a24cce8f9024867f0613bd5f Mon Sep 17 00:00:00 2001 From: "Naresh (OpenERP)" Date: Wed, 23 Nov 2011 18:22:38 +0530 Subject: [PATCH 18/59] [FIX]:Survey: Warnings:orm:No such field(s) in model survey.question: in_visible_single_text and in model survey.answer: in_visible_menu_choice, in_visible_rating_weight probably they were removed but demo data were left unchanged bzr revid: nch@tinyerp.com-20111123125238-htffvxcut2pblraq --- addons/survey/survey_demo.xml | 64 ++++------------------------------- 1 file changed, 7 insertions(+), 57 deletions(-) diff --git a/addons/survey/survey_demo.xml b/addons/survey/survey_demo.xml index 2b96d3c17d2..1d8eae17fb6 100644 --- a/addons/survey/survey_demo.xml +++ b/addons/survey/survey_demo.xml @@ -30,7 +30,6 @@ single_textbox 1 - 1 1 @@ -39,7 +38,6 @@ What is your company's size? multiple_choice_only_one_ans - 1 1 @@ -95,7 +93,6 @@ Where are you located? multiple_choice_multiple_ans - 1 @@ -139,7 +136,6 @@ When did you become an OpenERP official partner? multiple_choice_only_one_ans - 1 @@ -181,7 +177,6 @@ What kind of solutions do you sell to your customers? multiple_choice_multiple_ans - 1 @@ -215,7 +210,6 @@ What do you think about the partnership contract? multiple_choice_only_one_ans - 1 @@ -253,7 +247,6 @@ multiple_choice_only_one_ans text Why? - 1 True @@ -284,7 +277,7 @@ Which maintenance contract do you sell to your customers. multiple_choice_only_one_ans - 1 + @@ -320,7 +313,7 @@ Give your opinion about Launchpad reporting : matrix_of_choices_only_one_ans - 1 + @@ -370,7 +363,7 @@ Leads matrix_of_choices_only_one_ans - 1 + 1 @@ -420,7 +413,7 @@ How is OpenERP SA's communication with partners about... matrix_of_choices_only_one_ans - 1 + @@ -477,8 +470,6 @@ In your opinion, how could OpenERP SA better communicate with partners and on which subjects? comment - 1 - 1 @@ -506,8 +497,6 @@ What is your company's name? single_textbox - 1 - 1 @@ -516,7 +505,7 @@ What is your company's sector? multiple_choice_multiple_ans - 1 + @@ -644,7 +633,6 @@ Which activities do you plan to manage with Odoo ? multiple_choice_multiple_ans - 1 @@ -706,7 +694,6 @@ How did you discover Odoo ? multiple_choice_multiple_ans - 1 @@ -762,7 +749,6 @@ Why did you subscribe to Odoo? multiple_choice_only_one_ans - 1 @@ -801,7 +787,6 @@ How much time did you spend to configure the application? matrix_of_choices_only_one_ans - 1 @@ -872,7 +857,6 @@ multiple_choice_only_one_ans text No...Why? - 1 True @@ -902,7 +886,6 @@ Which interface would you prefer to use? multiple_choice_only_one_ans - 1 @@ -932,7 +915,6 @@ Give your opinion : matrix_of_choices_only_one_ans - 1 @@ -958,8 +940,6 @@ Is the Control Center user-friendly? - 1 - 1 No Opinion @@ -1002,9 +982,7 @@ What do you think about ... matrix_of_choices_only_one_ans - 1 1 - 1 @@ -1080,7 +1058,6 @@ single_textbox 1 - 1 @@ -1096,7 +1073,6 @@ How often would you prefer to receive your prepaid bill? multiple_choice_only_one_ans - 1 @@ -1128,7 +1104,6 @@ multiple_choice_only_one_ans text Comment - 1 True @@ -1153,7 +1128,6 @@ How satisfied are you with Odoo's support services : matrix_of_choices_only_one_ans - 1 @@ -1209,7 +1183,7 @@ Give your opinion about Odoo's matrix_of_choices_only_one_ans - 1 + @@ -1271,7 +1245,7 @@ If you have any additional comments, write them here : comment - 1 + @@ -1346,7 +1320,6 @@ - 1 @@ -1366,7 +1339,6 @@ - 1 @@ -1386,7 +1358,6 @@ - 1 @@ -1408,7 +1379,6 @@ 1 - 1 @@ -1428,7 +1398,6 @@ - 1 @@ -1448,7 +1417,6 @@ - 1 @@ -1468,7 +1436,6 @@ - 1 @@ -1488,7 +1455,6 @@ - 1 @@ -1508,7 +1474,6 @@ - 1 @@ -1528,7 +1493,6 @@ - 1 @@ -1549,7 +1513,6 @@ 1 - 1 @@ -1570,7 +1533,6 @@ 1 - 1 @@ -1590,7 +1552,6 @@ - 1 @@ -1610,7 +1571,6 @@ - 1 @@ -2191,7 +2151,6 @@ The comment you entered is in an invalid format. - at least @@ -2220,7 +2179,6 @@ The comment you entered is in an invalid format. - at least @@ -2249,7 +2207,6 @@ The comment you entered is in an invalid format. - at least @@ -2278,7 +2235,6 @@ The comment you entered is in an invalid format. - at least @@ -2307,7 +2263,6 @@ The comment you entered is in an invalid format. - at least @@ -2336,7 +2291,6 @@ The comment you entered is in an invalid format. - at least @@ -2365,7 +2319,6 @@ The comment you entered is in an invalid format. - at least @@ -2394,7 +2347,6 @@ The comment you entered is in an invalid format. - at least @@ -2423,7 +2375,6 @@ The comment you entered is in an invalid format. - at least @@ -2452,7 +2403,6 @@ The comment you entered is in an invalid format. - at least From 2d67a753383b03a8f5f81d2fbbfd744b24d32d83 Mon Sep 17 00:00:00 2001 From: "Naresh (OpenERP)" Date: Thu, 24 Nov 2011 14:28:13 +0530 Subject: [PATCH 19/59] [FIX]: WARNING:orm:No such field(s) in model ir.values: object: This was probably missed out to be removed with the improvements made at 3560.1.8 odo@openerp.com-20110905141058-xa01o77l1rto6hg9 bzr revid: nch@tinyerp.com-20111124085813-28fbguyklybdq213 --- openerp/addons/base/ir/ir_ui_menu.py | 1 - 1 file changed, 1 deletion(-) diff --git a/openerp/addons/base/ir/ir_ui_menu.py b/openerp/addons/base/ir/ir_ui_menu.py index b49a3208225..ca95a4211f6 100644 --- a/openerp/addons/base/ir/ir_ui_menu.py +++ b/openerp/addons/base/ir/ir_ui_menu.py @@ -208,7 +208,6 @@ class ir_ui_menu(osv.osv): 'name': 'Menuitem', 'model': self._name, 'value': value, - 'object': True, 'key': 'action', 'key2': 'tree_but_open', 'res_id': menu_id, From f81fa263da2c7ad0eaf49048ba7bb64e280833c4 Mon Sep 17 00:00:00 2001 From: "Naresh (OpenERP)" Date: Thu, 24 Nov 2011 15:40:25 +0530 Subject: [PATCH 20/59] [FIX]:WARNING:orm:No such field(s) in model pos.order: price_type, journal_entry,stock.picking: pos_order,stock.move: date_planned,pos.order.line: product_uom, date_planned bzr revid: nch@tinyerp.com-20111124101025-99em2a18k3n58x0z --- addons/point_of_sale/point_of_sale_demo.xml | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/addons/point_of_sale/point_of_sale_demo.xml b/addons/point_of_sale/point_of_sale_demo.xml index 5e9c00ace54..95270721b8e 100644 --- a/addons/point_of_sale/point_of_sale_demo.xml +++ b/addons/point_of_sale/point_of_sale_demo.xml @@ -66,7 +66,6 @@ - @@ -76,7 +75,6 @@ paid POS/019 - tax_excluded @@ -106,7 +104,6 @@ POS/019 - direct @@ -137,7 +134,6 @@ Stock move (POS 12) - @@ -157,7 +153,6 @@ - tax_excluded @@ -165,7 +160,6 @@ - tax_excluded @@ -173,11 +167,9 @@ - [PC3] Medium PC - 450 2 No Discount @@ -185,11 +177,9 @@ - [PC2] Basic+ PC (assembly on order) - 450 2 No Discount @@ -197,11 +187,9 @@ - [PC1] Basic PC - 450 5 0.10 From 79e2bcc6c9e5bf58dc026da0edebc84faff4a28f Mon Sep 17 00:00:00 2001 From: "Vaibhav (OpenERP)" Date: Thu, 24 Nov 2011 16:47:56 +0530 Subject: [PATCH 21/59] [FIX] Get Task from tree panel using Project info. bzr revid: vda@tinyerp.com-20111124111756-upaxyocg9b1v178u --- addons/web_gantt/static/src/js/gantt.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/addons/web_gantt/static/src/js/gantt.js b/addons/web_gantt/static/src/js/gantt.js index 07b754890b1..84b36a2f4dd 100644 --- a/addons/web_gantt/static/src/js/gantt.js +++ b/addons/web_gantt/static/src/js/gantt.js @@ -309,9 +309,11 @@ openerp.web_gantt.GanttView = openerp.web.View.extend({ }, 200); }); $("div #_1, div #_1 + div").hide(); + _.each(final_events, function(id) { - self.$element.find('.taskNameItem[id="'+id+'"]').click(function() { - self.editTask(self.ganttChartControl.getProjectById("_1").getTaskById(id)); + var Task = self.ganttChartControl.getProjectById("_1").getTaskById(id); + Task.cTaskNameItem[0].click(function() { + self.editTask(Task); }) }); }, From 321bc449c4bf486f0eca89449df9800c565c66f7 Mon Sep 17 00:00:00 2001 From: "Vaibhav (OpenERP)" Date: Thu, 24 Nov 2011 16:51:38 +0530 Subject: [PATCH 22/59] [FIX] Oops! event binding on dom.jqueryfy dom. bzr revid: vda@tinyerp.com-20111124112138-w900u1bflff5e4zv --- addons/web_gantt/static/src/js/gantt.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/web_gantt/static/src/js/gantt.js b/addons/web_gantt/static/src/js/gantt.js index 84b36a2f4dd..29f6fc70b9d 100644 --- a/addons/web_gantt/static/src/js/gantt.js +++ b/addons/web_gantt/static/src/js/gantt.js @@ -312,7 +312,7 @@ openerp.web_gantt.GanttView = openerp.web.View.extend({ _.each(final_events, function(id) { var Task = self.ganttChartControl.getProjectById("_1").getTaskById(id); - Task.cTaskNameItem[0].click(function() { + $(Task.cTaskNameItem[0]).click(function() { self.editTask(Task); }) }); From 6a29d79e9e88d81f9f7df1922fade358fa3ca544 Mon Sep 17 00:00:00 2001 From: "Naresh (OpenERP)" Date: Thu, 24 Nov 2011 16:58:00 +0530 Subject: [PATCH 23/59] [FIX]:WARNING:Model pos.category (Product Category) has no access rules bzr revid: nch@tinyerp.com-20111124112800-9acn6j610yi1fspz --- addons/point_of_sale/security/ir.model.access.csv | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/point_of_sale/security/ir.model.access.csv b/addons/point_of_sale/security/ir.model.access.csv index db62c9c8361..200180e6749 100644 --- a/addons/point_of_sale/security/ir.model.access.csv +++ b/addons/point_of_sale/security/ir.model.access.csv @@ -69,3 +69,4 @@ "access_res_partner_manager","res.partner manager","base.model_res_partner","group_pos_manager",1,0,0,0 "access_product_category_manager","product.category manager","product.model_product_category","group_pos_manager",1,0,0,0 "access_product_pricelist_manager","product.pricelist manager","product.model_product_pricelist","group_pos_manager",1,0,0,0 +"access_product_category_pos_manager","pos.category";"manager","model_pos_category","group_pos_manager",1,0,0,0" From e80e028dfe5df256a9ab79d4c2540ba6020ab650 Mon Sep 17 00:00:00 2001 From: "Vaibhav (OpenERP)" Date: Thu, 24 Nov 2011 17:34:08 +0530 Subject: [PATCH 24/59] [FIX] display name if no fields defined. bzr revid: vda@tinyerp.com-20111124120408-fj2khgq8d4417ui7 --- addons/web_gantt/static/src/js/gantt.js | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/addons/web_gantt/static/src/js/gantt.js b/addons/web_gantt/static/src/js/gantt.js index 29f6fc70b9d..558224b4578 100644 --- a/addons/web_gantt/static/src/js/gantt.js +++ b/addons/web_gantt/static/src/js/gantt.js @@ -38,9 +38,12 @@ openerp.web_gantt.GanttView = openerp.web.View.extend({ this.color_field = this.fields_view.arch.attrs.color, this.colors = this.fields_view.arch.attrs.colors; - var level = this.fields_view.arch.children[0]; - this.parent = level.attrs.link, - this.text = level.children.length ? level.children[0].attrs.name : level.attrs.name; + if (this.fields_view.arch.children.length) { + var level = this.fields_view.arch.children[0]; + this.parent = level.attrs.link, this.text = level.children.length ? level.children[0].attrs.name : level.attrs.name; + } else { + this.text = 'name'; + } if (!this.date_start) { return self.do_warn(_t("date_start is not defined ")) @@ -308,7 +311,10 @@ openerp.web_gantt.GanttView = openerp.web.View.extend({ self.reloadView(); }, 200); }); - $("div #_1, div #_1 + div").hide(); + + $(self.ganttChartControl.getProjectById("_1").projectItem[0]).hide(); + $(self.ganttChartControl.getProjectById("_1").projectNameItem).hide(); + $(self.ganttChartControl.getProjectById("_1").descrProject).hide(); _.each(final_events, function(id) { var Task = self.ganttChartControl.getProjectById("_1").getTaskById(id); From 365c5d57fd7e1bf3f387e7c8ed815ba294360ec2 Mon Sep 17 00:00:00 2001 From: "Vaibhav (OpenERP)" Date: Thu, 24 Nov 2011 18:19:44 +0530 Subject: [PATCH 25/59] [FIX] reset groupbys. bzr revid: vda@tinyerp.com-20111124124944-mywfq45lx5uypptm --- addons/web_gantt/static/src/js/gantt.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/addons/web_gantt/static/src/js/gantt.js b/addons/web_gantt/static/src/js/gantt.js index 558224b4578..70a34968775 100644 --- a/addons/web_gantt/static/src/js/gantt.js +++ b/addons/web_gantt/static/src/js/gantt.js @@ -497,10 +497,15 @@ openerp.web_gantt.GanttView = openerp.web.View.extend({ do_search: function (domains, contexts, groupbys) { var self = this; - this.group_by = groupbys; - if(this.fields_view.arch.attrs.default_group_by) { - this.group_by = _.uniq(this.group_by.concat(this.fields_view.arch.attrs.default_group_by.split(','))); + this.group_by = []; + if (this.fields_view.arch.attrs.default_group_by) { + this.group_by = this.fields_view.arch.attrs.default_group_by.split(','); } + + if (groupbys.length) { + this.group_by = groupbys; + } + $.when(this.has_been_loaded).then(function() { self.dataset.read_slice([], { domain: domains, From d1ea780e9d79418a594c1a16fd410e0bf26955f3 Mon Sep 17 00:00:00 2001 From: "Vaibhav (OpenERP)" Date: Fri, 25 Nov 2011 13:28:42 +0530 Subject: [PATCH 26/59] [FIX] can Add new task.reload. bzr revid: vda@tinyerp.com-20111125075842-pbhwo4tno13hz8go --- addons/web_gantt/static/src/js/gantt.js | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/addons/web_gantt/static/src/js/gantt.js b/addons/web_gantt/static/src/js/gantt.js index 70a34968775..77a2d7a22cb 100644 --- a/addons/web_gantt/static/src/js/gantt.js +++ b/addons/web_gantt/static/src/js/gantt.js @@ -312,12 +312,13 @@ openerp.web_gantt.GanttView = openerp.web.View.extend({ }, 200); }); - $(self.ganttChartControl.getProjectById("_1").projectItem[0]).hide(); - $(self.ganttChartControl.getProjectById("_1").projectNameItem).hide(); - $(self.ganttChartControl.getProjectById("_1").descrProject).hide(); + var Project = self.ganttChartControl.getProjectById("_1"); + $(Project.projectItem[0]).hide(); + $(Project.projectNameItem).hide(); + $(Project.descrProject).hide(); _.each(final_events, function(id) { - var Task = self.ganttChartControl.getProjectById("_1").getTaskById(id); + var Task = Project.getTaskById(id); $(Task.cTaskNameItem[0]).click(function() { self.editTask(Task); }) @@ -365,7 +366,13 @@ openerp.web_gantt.GanttView = openerp.web.View.extend({ pop.show_element(this.model, event_id, this.context || this.dataset.context, {}); - pop.on_write_completed.add_last(function() { + pop.on_write.add(function(id, data) { + var get_project = _.find(self.database_projects, function(project){ return project.id == id}); + if (get_project) { + _.extend(get_project, data); + } else { + _.extend(self.database_projects, _.extend(data, {'id': id})); + } self.reloadView(); }); }, From 342b0a1ac8b37d6bfb2a0ff3cf7dfdd6cb37b504 Mon Sep 17 00:00:00 2001 From: "Jiten (OpenERP)" Date: Tue, 29 Nov 2011 12:00:29 +0530 Subject: [PATCH 27/59] [IMP] To show many2many field on form view. bzr revid: jra@tinyerp.com-20111129063029-6pvqwh4uvts1pcft --- addons/web_mobile/static/src/xml/web_mobile.xml | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/addons/web_mobile/static/src/xml/web_mobile.xml b/addons/web_mobile/static/src/xml/web_mobile.xml index 1d6f81404d2..1deb752cab6 100644 --- a/addons/web_mobile/static/src/xml/web_mobile.xml +++ b/addons/web_mobile/static/src/xml/web_mobile.xml @@ -298,13 +298,22 @@
      -
    • +
    • -
    -
    +
+
+ + + From 4cb6d48f1ff5fa21244396768ed82860f7ceb4a6 Mon Sep 17 00:00:00 2001 From: "Jiten (OpenERP)" Date: Wed, 30 Nov 2011 16:56:14 +0530 Subject: [PATCH 28/59] [IMP] Improve m2m and o2m to show selected record in formview. bzr revid: jra@tinyerp.com-20111130112614-qrkmra8rzok7nksn --- .../web_mobile/static/src/js/form_mobile.js | 136 ++++++------------ .../web_mobile/static/src/xml/web_mobile.xml | 19 +-- 2 files changed, 47 insertions(+), 108 deletions(-) diff --git a/addons/web_mobile/static/src/js/form_mobile.js b/addons/web_mobile/static/src/js/form_mobile.js index cc816b75a21..13ff38bca5c 100644 --- a/addons/web_mobile/static/src/js/form_mobile.js +++ b/addons/web_mobile/static/src/js/form_mobile.js @@ -41,13 +41,13 @@ openerp.web_mobile.FormView = openerp.web.Widget.extend({ var fields = result.fields; var view_fields = result.arch.children; var get_fields = this.get_fields(view_fields); + var values = self.datarecord; for (var j = 0; j < view_fields.length; j++) { if (view_fields[j].tag == 'notebook') { var notebooks = view_fields[j]; } } - self.$element.html(self.render({'get_fields': get_fields, 'notebooks': notebooks || false, 'fields' : fields, 'values' : self.datarecord ,'temp_flag':'1'})); - self.formatdata(get_fields, fields, result, self.datarecord,self.element_id,'element'); + self.$element.html(self.render({'get_fields': get_fields, 'notebooks': notebooks || false, 'fields' : fields, 'values' : values ,'temp_flag':'1'})); self.$element.find("[data-role=header]").find('h1').html(self.head_title); self.$element.find("[data-role=header]").find('#home').click(function(){ $.mobile.changePage("#oe_menu", "slide", false, true); @@ -55,110 +55,56 @@ openerp.web_mobile.FormView = openerp.web.Widget.extend({ self.$element.find('[data-role=collapsible-set]').find('[data-role=collapsible]').each(function(i){ for (var k = 0; k < notebooks.children.length; k++) { if (notebooks.children[k].attrs.string == $(this).attr('id')) { - get_fields = self.get_fields(notebooks.children[k].children); - for (var i = 0; i < get_fields.length; i++) { - if (fields[get_fields[i].attrs.name].type == 'one2many'){ - self.relational_fields = get_fields[i].attrs.name; - if(fields[get_fields[i].attrs.name].views.form){ - var get_fields_test = self.get_fields(fields[get_fields[i].attrs.name].views.form.arch.children); - var fields_test = fields[get_fields[i].attrs.name]['views'].form.fields; - var notebook=fields[get_fields[i].attrs.name].views.form.arch; - } - } - } - $(this).find('div#page_content').html(self.render({'get_fields': get_fields,'fields' : result.fields, 'values' : self.datarecord})); + get_fields_notebook = self.get_fields(notebooks.children[k].children); + $(this).find('div#page_content').html(self.render({'get_fields': get_fields_notebook,'fields' : fields, 'values' : values})); } - self.formatdata(get_fields, fields, result, self.datarecord,'page_content','element'); } }); - self.$element.find('[data-role=collapsible-set]').find('[data-role=collapsible]').find('div#page_content').find('[data-role=content]').find('ul').find('li').click(function(ev){ + self.$element.find('#o2m_m2m').click(function(ev) { ev.preventDefault(); ev.stopPropagation(); - var latid,lastid; - $(this).parents().each(function(){ - latid = $(this).attr('id'); - self.$element.find('[data-role=collapsible-set]').find('[data-role=collapsible]').each(function(){ - if(latid==$(this).attr('id')){ - lastid = $(this).attr('id'); - } - }); - }); var relational = $(this).attr('for'); - if(result.fields[relational]){ - var head = $.trim($(this).text()); - var dataset = new openerp.web.DataSetSearch(self, result.fields[relational].relation, result.fields[relational].context); - dataset.domain=[['id', 'in', self.datarecord[relational]]]; - dataset.read_slice([], {limit:80}, function(result1,ids){ + var rel_field = fields[relational]; + var head = rel_field.string; + var rel_model = rel_field.relation; + var rel_ids = values[relational]; + if (rel_ids) { + var datasearch = new openerp.web.DataSetSearch(self, rel_field.relation, rel_field.context); + datasearch.domain=[['id', 'in', rel_ids]]; + datasearch.read_slice([], {limit:80}, function(listrec){ _.extend(self.action.context,{"html_name_get" : true}); - var dataset1 = new openerp.web.DataSet(self, result.fields[relational].relation,result.fields[relational].context); - dataset1.name_get(result1,function(res){ - var additional = ""; - if(res['html_name_get']){ - additional = res['display']; - } - if(!$('[id^="oe_list_'+relational+'_'+self.element_id+'"]').html()){ - $('
').appendTo('#moe'); - $('[id^="oe_list_'+relational+'_'+self.element_id+'"]').html(openerp.web.qweb.render("ListView", {'records' : res,'data': additional})); - $('[id^="oe_list_'+relational+'_'+self.element_id+'"]').find("[data-role=header]").find('h1').html(head); - $('[id^="oe_list_'+relational+'_'+self.element_id+'"]').find("[data-role=header]").find('#home').click(function(){ - $.mobile.changePage("#oe_menu", "slide", false, true); - }); - $('[id^="oe_list_'+relational+'_'+self.element_id+'"]').find("a#list-id").click(function(ev){ - ev.preventDefault(); - ev.stopPropagation(); - var head_title = $(this).text(); - var listid = $(ev.currentTarget).data('id'); - dataset = new openerp.web.DataSetSearch(self, dataset.model, null, null); - dataset.read_slice([],{}, function (result_relational) { - for (var i = 0; i < result_relational.length; i++) { - if (result_relational[i].id == listid) { - var data_relational = result_relational[i]; - } - } - if(!$('[id^="oe_form_'+listid+result.fields[relational].relation+'"]').html()){ - $('
').appendTo('#moe'); - for (var k = 0; k < notebooks.children.length; k++) { - if (notebooks.children[k].attrs.string == lastid) { - get_fields = self.get_fields(notebooks.children[k].children); - for (var i = 0; i < get_fields.length; i++) { - if (fields[get_fields[i].attrs.name].type == 'one2many'){ - self.relational_fields = get_fields[i].attrs.name; - if(fields[get_fields[i].attrs.name].views.form){ - var get_fields_test = self.get_fields(fields[get_fields[i].attrs.name].views.form.arch.children); - var fields_test = fields[get_fields[i].attrs.name]['views'].form.fields; - var notebook=fields[get_fields[i].attrs.name].views.form.arch; - } - } - } - } - } - if(notebook){ - $('[id^="oe_form_'+listid+result.fields[relational].relation+'"]').html(self.render({'get_fields': get_fields_test, 'notebooks': false, 'fields' : fields_test, 'values' : data_relational, 'temp_flag':'1' })); - }else{ - $('[id^="oe_form_'+listid+result.fields[relational].relation+'"]').html(self.render({'get_fields': get_fields_test, 'notebooks': false, 'fields' : fields, 'values' : data_relational, 'temp_flag':'1' })); - } - $('[id^="oe_form_'+listid+result.fields[relational].relation+'"]').find("[data-role=header]").find('h1').html(head_title); - $('[id^="oe_form_'+listid+result.fields[relational].relation+'"]').find("[data-role=header]").find('#home').click(function(){ - $.mobile.changePage("#oe_menu", "slide", false, true); - }); - if(notebook){ - self.formatdata(get_fields_test, fields_test, result, data_relational,'oe_form_'+listid+result.fields[relational].relation,'element'); - }else{ - self.formatdata(get_fields_test, fields, result, data_relational,'oe_form_'+listid+result.fields[relational].relation,'element'); - } - $.mobile.changePage('#oe_form_'+listid+result.fields[relational].relation, "slide", false, true); - self.formatdata('', '', '', '','oe_form_'+listid+result.fields[relational].relation,'slider'); + var dataset = new openerp.web.DataSet(self, rel_field.relation,rel_field.context); + dataset.name_get(listrec,function(res){ + var additional = ""; + if(res['html_name_get']){ + additional = res['display']; + } + if(!$('[id^="oe_list_'+relational+'_'+self.element_id+'"]').html()){ + $('
').appendTo('#moe'); + $('[id^="oe_list_'+relational+'_'+self.element_id+'"]').html(openerp.web.qweb.render("ListView", {'records' : res,'data': additional})); + $('[id^="oe_list_'+relational+'_'+self.element_id+'"]').find("[data-role=header]").find('h1').html(head); + $('[id^="oe_list_'+relational+'_'+self.element_id+'"]').find("[data-role=header]").find('#home').click(function(){ + $.mobile.changePage("#oe_menu", "slide", false, true); + }); + $('[id^="oe_list_'+relational+'_'+self.element_id+'"]').find("a#list-id").click(function(ev){ + ev.preventDefault(); + ev.stopPropagation(); + var head_title = $(this).text(); + var listid = $(ev.currentTarget).data('id'); + if(!$('[id^="oe_form_'+listid+rel_field.relation+'"]').html()){ + $('
').appendTo('#moe'); + this.formview = new openerp.web_mobile.FormView(self, "oe_form_"+listid+rel_field.relation, listid, '', head, rel_field.relation, false); + this.formview.start(); }else{ - $.mobile.changePage('#oe_form_'+listid+result.fields[relational].relation, "slide", false, true); + $.mobile.changePage('#oe_form_'+listid+rel_field.relation, "slide", false, true); } }); - }); - $.mobile.changePage("#oe_list_"+relational+"_"+self.element_id, "slide", false, true); - }else{ - $.mobile.changePage("#oe_list_"+relational+"_"+self.element_id, "slide", false, true); - } + $.mobile.changePage("#oe_list_"+relational+"_"+self.element_id, "slide", false, true); + }else{ + $.mobile.changePage("#oe_list_"+relational+"_"+self.element_id, "slide", false, true); + } }); - }); + }); } }); self.$element.find('#m2o_btn').click(this.open_m2o_form); diff --git a/addons/web_mobile/static/src/xml/web_mobile.xml b/addons/web_mobile/static/src/xml/web_mobile.xml index 1deb752cab6..f94117e6e0e 100644 --- a/addons/web_mobile/static/src/xml/web_mobile.xml +++ b/addons/web_mobile/static/src/xml/web_mobile.xml @@ -279,7 +279,9 @@
@@ -296,24 +298,15 @@ - + - - - From 4d9356f555aca96420f984dce65b7dc8d66e2078 Mon Sep 17 00:00:00 2001 From: Numerigraphe - Lionel Sausin Date: Thu, 1 Dec 2011 10:42:04 +0100 Subject: [PATCH 29/59] [IMP] Make wording consistent: Internal Picking List bzr revid: ls@numerigraphe.fr-20111201094204-a7xb1sxswch3itze --- addons/mrp/i18n/ar.po | 2 +- addons/mrp/i18n/bg.po | 2 +- addons/mrp/i18n/bs.po | 2 +- addons/mrp/i18n/ca.po | 4 ++-- addons/mrp/i18n/cs.po | 2 +- addons/mrp/i18n/da.po | 2 +- addons/mrp/i18n/de.po | 4 ++-- addons/mrp/i18n/el.po | 4 ++-- addons/mrp/i18n/es.po | 4 ++-- addons/mrp/i18n/es_AR.po | 2 +- addons/mrp/i18n/es_CL.po | 4 ++-- addons/mrp/i18n/es_EC.po | 4 ++-- addons/mrp/i18n/es_MX.po | 4 ++-- addons/mrp/i18n/es_VE.po | 4 ++-- addons/mrp/i18n/et.po | 2 +- addons/mrp/i18n/fi.po | 4 ++-- addons/mrp/i18n/fr.po | 4 ++-- addons/mrp/i18n/gl.po | 2 +- addons/mrp/i18n/hi.po | 2 +- addons/mrp/i18n/hr.po | 2 +- addons/mrp/i18n/hu.po | 2 +- addons/mrp/i18n/id.po | 2 +- addons/mrp/i18n/it.po | 4 ++-- addons/mrp/i18n/ko.po | 4 ++-- addons/mrp/i18n/lt.po | 4 ++-- addons/mrp/i18n/mrp.pot | 2 +- addons/mrp/i18n/nb.po | 2 +- addons/mrp/i18n/nl.po | 4 ++-- addons/mrp/i18n/nl_BE.po | 2 +- addons/mrp/i18n/pl.po | 4 ++-- addons/mrp/i18n/pt.po | 4 ++-- addons/mrp/i18n/pt_BR.po | 4 ++-- addons/mrp/i18n/ro.po | 2 +- addons/mrp/i18n/ru.po | 4 ++-- addons/mrp/i18n/sk.po | 2 +- addons/mrp/i18n/sl.po | 2 +- addons/mrp/i18n/sq.po | 2 +- addons/mrp/i18n/sr@latin.po | 2 +- addons/mrp/i18n/sv.po | 6 +++--- addons/mrp/i18n/tlh.po | 2 +- addons/mrp/i18n/tr.po | 2 +- addons/mrp/i18n/uk.po | 2 +- addons/mrp/i18n/vi.po | 2 +- addons/mrp/i18n/zh_CN.po | 4 ++-- addons/mrp/i18n/zh_HK.po | 4 ++-- addons/mrp/i18n/zh_TW.po | 4 ++-- addons/mrp/mrp.py | 2 +- addons/stock/i18n/ar.po | 2 +- addons/stock/i18n/bg.po | 2 +- addons/stock/i18n/bs.po | 2 +- addons/stock/i18n/ca.po | 2 +- addons/stock/i18n/cs.po | 2 +- addons/stock/i18n/da.po | 2 +- addons/stock/i18n/de.po | 2 +- addons/stock/i18n/el.po | 2 +- addons/stock/i18n/es.po | 2 +- addons/stock/i18n/es_AR.po | 2 +- addons/stock/i18n/es_CL.po | 2 +- addons/stock/i18n/es_EC.po | 2 +- addons/stock/i18n/es_MX.po | 2 +- addons/stock/i18n/es_MX.po.moved | 2 +- addons/stock/i18n/es_VE.po | 2 +- addons/stock/i18n/et.po | 2 +- addons/stock/i18n/fi.po | 2 +- addons/stock/i18n/fr.po | 2 +- addons/stock/i18n/gl.po | 2 +- addons/stock/i18n/hr.po | 2 +- addons/stock/i18n/hu.po | 2 +- addons/stock/i18n/id.po | 2 +- addons/stock/i18n/it.po | 2 +- addons/stock/i18n/ko.po | 2 +- addons/stock/i18n/lt.po | 2 +- addons/stock/i18n/lv.po | 2 +- addons/stock/i18n/mn.po | 2 +- addons/stock/i18n/nb.po | 2 +- addons/stock/i18n/nl.po | 2 +- addons/stock/i18n/nl_BE.po | 2 +- addons/stock/i18n/pl.po | 2 +- addons/stock/i18n/pt.po | 2 +- addons/stock/i18n/pt_BR.po | 2 +- addons/stock/i18n/ro.po | 2 +- addons/stock/i18n/ru.po | 2 +- addons/stock/i18n/sl.po | 2 +- addons/stock/i18n/sq.po | 2 +- addons/stock/i18n/sr.po | 2 +- addons/stock/i18n/sr@latin.po | 2 +- addons/stock/i18n/stock.pot | 2 +- addons/stock/i18n/sv.po | 2 +- addons/stock/i18n/th.po | 2 +- addons/stock/i18n/tlh.po | 2 +- addons/stock/i18n/tr.po | 2 +- addons/stock/i18n/uk.po | 2 +- addons/stock/i18n/vi.po | 2 +- addons/stock/i18n/zh_CN.po | 2 +- addons/stock/i18n/zh_TW.po | 2 +- addons/stock/stock_view.xml | 2 +- 96 files changed, 119 insertions(+), 119 deletions(-) diff --git a/addons/mrp/i18n/ar.po b/addons/mrp/i18n/ar.po index c8a56267090..94608cb0d13 100644 --- a/addons/mrp/i18n/ar.po +++ b/addons/mrp/i18n/ar.po @@ -1240,7 +1240,7 @@ msgstr "" #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "" diff --git a/addons/mrp/i18n/bg.po b/addons/mrp/i18n/bg.po index cc97c80360f..161a203a665 100644 --- a/addons/mrp/i18n/bg.po +++ b/addons/mrp/i18n/bg.po @@ -1273,7 +1273,7 @@ msgstr "" #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "" diff --git a/addons/mrp/i18n/bs.po b/addons/mrp/i18n/bs.po index f5106281e27..3fc14f8e4da 100644 --- a/addons/mrp/i18n/bs.po +++ b/addons/mrp/i18n/bs.po @@ -1240,7 +1240,7 @@ msgstr "" #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "" diff --git a/addons/mrp/i18n/ca.po b/addons/mrp/i18n/ca.po index c6d359150ec..3348b06a9d4 100644 --- a/addons/mrp/i18n/ca.po +++ b/addons/mrp/i18n/ca.po @@ -1320,7 +1320,7 @@ msgstr "Ubicació on el sistema emmagatzemarà els productes finalitzats." #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "" "Aquest és l'albarà intern que porta el producte acabat cap al pla de " @@ -2787,7 +2787,7 @@ msgstr "Any" #~ msgstr "Planificació ordres de producció" #~ msgid "" -#~ "This is the internal picking list take bring the raw materials to the " +#~ "This is the Internal Picking List take bring the raw materials to the " #~ "production plan." #~ msgstr "" #~ "Aquesta és la llista de empaquetat interna que porta les matèries primeres a " diff --git a/addons/mrp/i18n/cs.po b/addons/mrp/i18n/cs.po index 5244b3928c6..8063599609a 100644 --- a/addons/mrp/i18n/cs.po +++ b/addons/mrp/i18n/cs.po @@ -1257,7 +1257,7 @@ msgstr "Umístění kde systém naskladní hotové výrobky." #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "" diff --git a/addons/mrp/i18n/da.po b/addons/mrp/i18n/da.po index 17a13380616..eb90494e0b2 100644 --- a/addons/mrp/i18n/da.po +++ b/addons/mrp/i18n/da.po @@ -1241,7 +1241,7 @@ msgstr "" #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "" diff --git a/addons/mrp/i18n/de.po b/addons/mrp/i18n/de.po index 73f62cd257d..10b3cf4f985 100644 --- a/addons/mrp/i18n/de.po +++ b/addons/mrp/i18n/de.po @@ -1323,7 +1323,7 @@ msgstr "Ort, an dem das System die Fertigprodukte einlagern wird." #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "" "Dies ist ein interner Lieferauftrag, der die gefertigten Produkte in den " @@ -2807,7 +2807,7 @@ msgstr "Jahr" #~ "Faktor der alle angefallenen Zeiten dieses Arbeitsplatzes multipliziert." #~ msgid "" -#~ "This is the internal picking list take bring the raw materials to the " +#~ "This is the Internal Picking List take bring the raw materials to the " #~ "production plan." #~ msgstr "" #~ "Diese interne Packliste liefert die Rohmaterialien zum Fertigungsort " diff --git a/addons/mrp/i18n/el.po b/addons/mrp/i18n/el.po index 8120ac8bb2f..ac7d9b79d21 100644 --- a/addons/mrp/i18n/el.po +++ b/addons/mrp/i18n/el.po @@ -1249,7 +1249,7 @@ msgstr "Τοποθεσία όπου το σύστημα θα αποθηκεύσ #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "" @@ -2670,7 +2670,7 @@ msgstr "" #~ "Παράγοντας που πολλαπλασιάζει όλους τους χρόνους ενός κέντρου εργασίας." #~ msgid "" -#~ "This is the internal picking list take bring the raw materials to the " +#~ "This is the Internal Picking List take bring the raw materials to the " #~ "production plan." #~ msgstr "" #~ "Αυτή είναι η εσωτερική λίστα επιλογής που φέρνει τις α' ύλες στο πλάνο " diff --git a/addons/mrp/i18n/es.po b/addons/mrp/i18n/es.po index bb45000dc25..6ace1a95a44 100644 --- a/addons/mrp/i18n/es.po +++ b/addons/mrp/i18n/es.po @@ -1321,7 +1321,7 @@ msgstr "Ubicación donde el sistema almacenará los productos finalizados." #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "" "Este es el albarán interno que trae el producto terminado hacia el plan de " @@ -2803,7 +2803,7 @@ msgstr "Año" #~ "producción." #~ msgid "" -#~ "This is the internal picking list take bring the raw materials to the " +#~ "This is the Internal Picking List take bring the raw materials to the " #~ "production plan." #~ msgstr "" #~ "Ésta es la lista de empaquetado interna que lleva las materias primas a la " diff --git a/addons/mrp/i18n/es_AR.po b/addons/mrp/i18n/es_AR.po index f3c9ec67c23..6142eee483b 100644 --- a/addons/mrp/i18n/es_AR.po +++ b/addons/mrp/i18n/es_AR.po @@ -1295,7 +1295,7 @@ msgstr "Ubicación donde el sistema almacenará los productos finalizados." #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "" diff --git a/addons/mrp/i18n/es_CL.po b/addons/mrp/i18n/es_CL.po index 5b574d2578d..a99cc9a1be8 100644 --- a/addons/mrp/i18n/es_CL.po +++ b/addons/mrp/i18n/es_CL.po @@ -1320,7 +1320,7 @@ msgstr "Ubicación donde el sistema almacenará los productos finalizados." #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "" "Este es el albarán interno que trae el producto terminado hacia el plan de " @@ -2826,7 +2826,7 @@ msgstr "Año" #~ "producción." #~ msgid "" -#~ "This is the internal picking list take bring the raw materials to the " +#~ "This is the Internal Picking List take bring the raw materials to the " #~ "production plan." #~ msgstr "" #~ "Ésta es la lista de empaquetado interna que lleva las materias primas a la " diff --git a/addons/mrp/i18n/es_EC.po b/addons/mrp/i18n/es_EC.po index a11178e0c8e..f971b583ff4 100644 --- a/addons/mrp/i18n/es_EC.po +++ b/addons/mrp/i18n/es_EC.po @@ -1320,7 +1320,7 @@ msgstr "Ubicación donde el sistema almacenará los productos finalizados." #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "" "Este es el albarán interno que trae el producto terminado hacia el plan de " @@ -2767,7 +2767,7 @@ msgstr "Año" #~ "producción." #~ msgid "" -#~ "This is the internal picking list take bring the raw materials to the " +#~ "This is the Internal Picking List take bring the raw materials to the " #~ "production plan." #~ msgstr "" #~ "Ésta es la lista de empaquetado interna que lleva las materias primas a la " diff --git a/addons/mrp/i18n/es_MX.po b/addons/mrp/i18n/es_MX.po index 4504a8e2f95..82d584be219 100644 --- a/addons/mrp/i18n/es_MX.po +++ b/addons/mrp/i18n/es_MX.po @@ -1321,7 +1321,7 @@ msgstr "Ubicación donde el sistema almacenará los productos finalizados." #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "" "Este es el albarán interno que trae el producto terminado hacia el plan de " @@ -2803,7 +2803,7 @@ msgstr "Año" #~ "producción." #~ msgid "" -#~ "This is the internal picking list take bring the raw materials to the " +#~ "This is the Internal Picking List take bring the raw materials to the " #~ "production plan." #~ msgstr "" #~ "Ésta es la lista de empaquetado interna que lleva las materias primas a la " diff --git a/addons/mrp/i18n/es_VE.po b/addons/mrp/i18n/es_VE.po index 4504a8e2f95..82d584be219 100644 --- a/addons/mrp/i18n/es_VE.po +++ b/addons/mrp/i18n/es_VE.po @@ -1321,7 +1321,7 @@ msgstr "Ubicación donde el sistema almacenará los productos finalizados." #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "" "Este es el albarán interno que trae el producto terminado hacia el plan de " @@ -2803,7 +2803,7 @@ msgstr "Año" #~ "producción." #~ msgid "" -#~ "This is the internal picking list take bring the raw materials to the " +#~ "This is the Internal Picking List take bring the raw materials to the " #~ "production plan." #~ msgstr "" #~ "Ésta es la lista de empaquetado interna que lleva las materias primas a la " diff --git a/addons/mrp/i18n/et.po b/addons/mrp/i18n/et.po index 8e2648993cb..049331a2169 100644 --- a/addons/mrp/i18n/et.po +++ b/addons/mrp/i18n/et.po @@ -1240,7 +1240,7 @@ msgstr "" #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "" diff --git a/addons/mrp/i18n/fi.po b/addons/mrp/i18n/fi.po index 78a0b3583b9..0f59debbecd 100644 --- a/addons/mrp/i18n/fi.po +++ b/addons/mrp/i18n/fi.po @@ -1285,7 +1285,7 @@ msgstr "Paikka jonne järjestelmä varastoi valmiit tuotteet." #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "" "Tämä on sisäinen keräilyslista joka tuo lopputuotteen tuontatosuunnitelmaan" @@ -2760,7 +2760,7 @@ msgstr "Vuosi" #~ msgstr "Odottaa" #~ msgid "" -#~ "This is the internal picking list take bring the raw materials to the " +#~ "This is the Internal Picking List take bring the raw materials to the " #~ "production plan." #~ msgstr "Tämä sisäinen keräyslista tuo raaka-aineet tuotantosuunnitelmaan." diff --git a/addons/mrp/i18n/fr.po b/addons/mrp/i18n/fr.po index 884c885b019..191e378ab15 100644 --- a/addons/mrp/i18n/fr.po +++ b/addons/mrp/i18n/fr.po @@ -1374,7 +1374,7 @@ msgstr "Emplacement où le système stockera les produits finis." #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "" "C'est le bon de transfert interne qui fournit les produits finis au plan de " @@ -3102,7 +3102,7 @@ msgstr "Année" #~ "production" #~ msgid "" -#~ "This is the internal picking list take bring the raw materials to the " +#~ "This is the Internal Picking List take bring the raw materials to the " #~ "production plan." #~ msgstr "" #~ "Ceci est la liste interne des matières premières pour le plan de production." diff --git a/addons/mrp/i18n/gl.po b/addons/mrp/i18n/gl.po index 3ba7c6c8c85..864a977ee3c 100644 --- a/addons/mrp/i18n/gl.po +++ b/addons/mrp/i18n/gl.po @@ -1314,7 +1314,7 @@ msgstr "Lugar onde almacenará o sistema os produtos rematados" #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "" "Este é o albará interno que trae o produto rematado ó plan de produción." diff --git a/addons/mrp/i18n/hi.po b/addons/mrp/i18n/hi.po index 40199555bbc..ff0b370038c 100644 --- a/addons/mrp/i18n/hi.po +++ b/addons/mrp/i18n/hi.po @@ -1241,7 +1241,7 @@ msgstr "" #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "" diff --git a/addons/mrp/i18n/hr.po b/addons/mrp/i18n/hr.po index 0f488328de2..45127592b63 100644 --- a/addons/mrp/i18n/hr.po +++ b/addons/mrp/i18n/hr.po @@ -1242,7 +1242,7 @@ msgstr "" #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "" diff --git a/addons/mrp/i18n/hu.po b/addons/mrp/i18n/hu.po index 85e7187ff40..3a66d74b098 100644 --- a/addons/mrp/i18n/hu.po +++ b/addons/mrp/i18n/hu.po @@ -1247,7 +1247,7 @@ msgstr "" #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "" diff --git a/addons/mrp/i18n/id.po b/addons/mrp/i18n/id.po index f59cf77019d..5d226463249 100644 --- a/addons/mrp/i18n/id.po +++ b/addons/mrp/i18n/id.po @@ -1240,7 +1240,7 @@ msgstr "" #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "" diff --git a/addons/mrp/i18n/it.po b/addons/mrp/i18n/it.po index 3b238fffc78..6dc1bce1ddf 100644 --- a/addons/mrp/i18n/it.po +++ b/addons/mrp/i18n/it.po @@ -1316,7 +1316,7 @@ msgstr "Ubicazione dove il sistema stoccherà i prodotti finiti" #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "" "Questa è la lista dei prelievi interni necessari per la pianificazione della " @@ -2814,7 +2814,7 @@ msgstr "Anno" #~ msgstr "Dallo stock: articoli assegnati." #~ msgid "" -#~ "This is the internal picking list take bring the raw materials to the " +#~ "This is the Internal Picking List take bring the raw materials to the " #~ "production plan." #~ msgstr "Questa è la lista di prelievo dei materiali" diff --git a/addons/mrp/i18n/ko.po b/addons/mrp/i18n/ko.po index 3fbc4c82d4c..b9ace6b27d1 100644 --- a/addons/mrp/i18n/ko.po +++ b/addons/mrp/i18n/ko.po @@ -1243,7 +1243,7 @@ msgstr "완제품을 보관할 시스템의 위치" #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "" @@ -2550,7 +2550,7 @@ msgstr "" #~ msgstr "수량" #~ msgid "" -#~ "This is the internal picking list take bring the raw materials to the " +#~ "This is the Internal Picking List take bring the raw materials to the " #~ "production plan." #~ msgstr "원재료를 생산 플랜에 가져갈 내부 피킹 리스트" diff --git a/addons/mrp/i18n/lt.po b/addons/mrp/i18n/lt.po index 44665d98443..dfd903b351a 100644 --- a/addons/mrp/i18n/lt.po +++ b/addons/mrp/i18n/lt.po @@ -1247,7 +1247,7 @@ msgstr "Vieta, kurioje talpinami pabaigti produktai ." #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "" @@ -2603,7 +2603,7 @@ msgstr "" #~ msgstr "Faktorius kuris dalina visus laikus nurodytus prie darbo centro." #~ msgid "" -#~ "This is the internal picking list take bring the raw materials to the " +#~ "This is the Internal Picking List take bring the raw materials to the " #~ "production plan." #~ msgstr "Tai yra vidinis važtaraštis, perduodantis žaliavas į gamybą." diff --git a/addons/mrp/i18n/mrp.pot b/addons/mrp/i18n/mrp.pot index 25a8bea531d..937fd9f45c4 100644 --- a/addons/mrp/i18n/mrp.pot +++ b/addons/mrp/i18n/mrp.pot @@ -1165,7 +1165,7 @@ msgstr "" #. module: mrp #: help:mrp.production,picking_id:0 -msgid "This is the internal picking list that brings the finished product to the production plan" +msgid "This is the Internal Picking List that brings the finished product to the production plan" msgstr "" #. module: mrp diff --git a/addons/mrp/i18n/nb.po b/addons/mrp/i18n/nb.po index 2bd9cc375b1..8b0e1f6eb9d 100644 --- a/addons/mrp/i18n/nb.po +++ b/addons/mrp/i18n/nb.po @@ -1306,7 +1306,7 @@ msgstr "Lokasjon hvor systemet vil plassere de ferdige produktene." #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "" "Dette er den interne plukklisten som flytter det ferdige produktet til " diff --git a/addons/mrp/i18n/nl.po b/addons/mrp/i18n/nl.po index a54013b441c..178e1f4ed50 100644 --- a/addons/mrp/i18n/nl.po +++ b/addons/mrp/i18n/nl.po @@ -1245,7 +1245,7 @@ msgstr "Locatie waar de eindproducten opgeslagen worden" #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "" @@ -2732,7 +2732,7 @@ msgstr "" #~ msgstr "uit voorraad en geen minimum bestelpunt regel gedefinieerd" #~ msgid "" -#~ "This is the internal picking list take bring the raw materials to the " +#~ "This is the Internal Picking List take bring the raw materials to the " #~ "production plan." #~ msgstr "" #~ "Dit is de interne pakbon om de grondstoffen naar de productie te brengen" diff --git a/addons/mrp/i18n/nl_BE.po b/addons/mrp/i18n/nl_BE.po index bf55c83626f..909ec5dff94 100644 --- a/addons/mrp/i18n/nl_BE.po +++ b/addons/mrp/i18n/nl_BE.po @@ -1240,7 +1240,7 @@ msgstr "" #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "" diff --git a/addons/mrp/i18n/pl.po b/addons/mrp/i18n/pl.po index fd8dd6e2272..100841c02e1 100644 --- a/addons/mrp/i18n/pl.po +++ b/addons/mrp/i18n/pl.po @@ -1280,7 +1280,7 @@ msgstr "Strefa, w której system umieści gotowe produkty." #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "" "To jest wewnętrzne pobranie, które przenosi gotowe produkty do planu " @@ -3156,7 +3156,7 @@ msgstr "Rok" #~ msgstr "Pobranie" #~ msgid "" -#~ "This is the internal picking list take bring the raw materials to the " +#~ "This is the Internal Picking List take bring the raw materials to the " #~ "production plan." #~ msgstr "" #~ "To jest pobranie (przesunięcie wewnętrzne), które dostarcza materiały do " diff --git a/addons/mrp/i18n/pt.po b/addons/mrp/i18n/pt.po index 9574e9dc573..eae6cf0eed4 100644 --- a/addons/mrp/i18n/pt.po +++ b/addons/mrp/i18n/pt.po @@ -1259,7 +1259,7 @@ msgstr "Locais onde o sistema vai armazenar os produtos acabados." #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "" @@ -2878,7 +2878,7 @@ msgstr "Ano" #~ "Factor que multiplica todas as horas expressas no centro de trabalho." #~ msgid "" -#~ "This is the internal picking list take bring the raw materials to the " +#~ "This is the Internal Picking List take bring the raw materials to the " #~ "production plan." #~ msgstr "" #~ "Esta é a lista interna de recolha para trazer as matérias primas para o " diff --git a/addons/mrp/i18n/pt_BR.po b/addons/mrp/i18n/pt_BR.po index e55389cc1ec..9fb1e6286f9 100644 --- a/addons/mrp/i18n/pt_BR.po +++ b/addons/mrp/i18n/pt_BR.po @@ -1315,7 +1315,7 @@ msgstr "Local onde o sistema estocará os produtos acabados" #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "" "Esta é a Lista de Separação Interna que traz o produto acabado para o plano " @@ -3043,7 +3043,7 @@ msgstr "Ano" #~ msgstr "Uso do roteamento do centro de trabalho" #~ msgid "" -#~ "This is the internal picking list take bring the raw materials to the " +#~ "This is the Internal Picking List take bring the raw materials to the " #~ "production plan." #~ msgstr "" #~ "Esta é a lista de seleção interna que leva as matérias-primas para o plano " diff --git a/addons/mrp/i18n/ro.po b/addons/mrp/i18n/ro.po index e8e13f497d1..d3e019367b8 100644 --- a/addons/mrp/i18n/ro.po +++ b/addons/mrp/i18n/ro.po @@ -1308,7 +1308,7 @@ msgstr "Locația în care sistemul va stoca produsele finite." #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "" diff --git a/addons/mrp/i18n/ru.po b/addons/mrp/i18n/ru.po index 0c804f401be..42c73582863 100644 --- a/addons/mrp/i18n/ru.po +++ b/addons/mrp/i18n/ru.po @@ -1293,7 +1293,7 @@ msgstr "Местоположение, в которое помещаются г #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "" "Это внутренняя комплектовочная ведомость, которая соотносит готовую " @@ -2790,7 +2790,7 @@ msgstr "Год" #~ msgstr "Итого" #~ msgid "" -#~ "This is the internal picking list take bring the raw materials to the " +#~ "This is the Internal Picking List take bring the raw materials to the " #~ "production plan." #~ msgstr "" #~ "Внутренне перемещение расходных материалов со склада на производственный " diff --git a/addons/mrp/i18n/sk.po b/addons/mrp/i18n/sk.po index c74a1d09c53..e0a6aad4868 100644 --- a/addons/mrp/i18n/sk.po +++ b/addons/mrp/i18n/sk.po @@ -1241,7 +1241,7 @@ msgstr "" #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "" diff --git a/addons/mrp/i18n/sl.po b/addons/mrp/i18n/sl.po index 29d4f7054ae..278edc77127 100644 --- a/addons/mrp/i18n/sl.po +++ b/addons/mrp/i18n/sl.po @@ -1241,7 +1241,7 @@ msgstr "" #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "" diff --git a/addons/mrp/i18n/sq.po b/addons/mrp/i18n/sq.po index b6dea6d1b6c..0257e781bac 100644 --- a/addons/mrp/i18n/sq.po +++ b/addons/mrp/i18n/sq.po @@ -1241,7 +1241,7 @@ msgstr "" #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "" diff --git a/addons/mrp/i18n/sr@latin.po b/addons/mrp/i18n/sr@latin.po index 3fac861858b..b86680ba1ef 100644 --- a/addons/mrp/i18n/sr@latin.po +++ b/addons/mrp/i18n/sr@latin.po @@ -1241,7 +1241,7 @@ msgstr "" #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "" diff --git a/addons/mrp/i18n/sv.po b/addons/mrp/i18n/sv.po index f9a8fa1318b..9ff627d73c7 100644 --- a/addons/mrp/i18n/sv.po +++ b/addons/mrp/i18n/sv.po @@ -1245,7 +1245,7 @@ msgstr "Location where the system will stock the finished products." #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "" @@ -2720,10 +2720,10 @@ msgstr "" #~ msgstr "Factor that multiplies all times expressed in the workcenter." #~ msgid "" -#~ "This is the internal picking list take bring the raw materials to the " +#~ "This is the Internal Picking List take bring the raw materials to the " #~ "production plan." #~ msgstr "" -#~ "This is the internal picking list take bring the raw materials to the " +#~ "This is the Internal Picking List take bring the raw materials to the " #~ "production plan." #~ msgid "Qty Multiple" diff --git a/addons/mrp/i18n/tlh.po b/addons/mrp/i18n/tlh.po index fd83fcb2f40..bae366ba4a5 100644 --- a/addons/mrp/i18n/tlh.po +++ b/addons/mrp/i18n/tlh.po @@ -1240,7 +1240,7 @@ msgstr "" #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "" diff --git a/addons/mrp/i18n/tr.po b/addons/mrp/i18n/tr.po index 21e0a1a9dfc..dbc634626c2 100644 --- a/addons/mrp/i18n/tr.po +++ b/addons/mrp/i18n/tr.po @@ -1311,7 +1311,7 @@ msgstr "Sistemin bitmiş ürünleri stokladığı lokasyon." #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "Bu, bitmiş ürünü üretim planına getiren dahili toplama listesidir" diff --git a/addons/mrp/i18n/uk.po b/addons/mrp/i18n/uk.po index 1d2995b8ad3..6f5bbd4617a 100644 --- a/addons/mrp/i18n/uk.po +++ b/addons/mrp/i18n/uk.po @@ -1240,7 +1240,7 @@ msgstr "" #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "" diff --git a/addons/mrp/i18n/vi.po b/addons/mrp/i18n/vi.po index 59662a9b576..73c103eb56a 100644 --- a/addons/mrp/i18n/vi.po +++ b/addons/mrp/i18n/vi.po @@ -1246,7 +1246,7 @@ msgstr "" #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "" diff --git a/addons/mrp/i18n/zh_CN.po b/addons/mrp/i18n/zh_CN.po index ebad1e0e44c..965cee9da09 100644 --- a/addons/mrp/i18n/zh_CN.po +++ b/addons/mrp/i18n/zh_CN.po @@ -1245,7 +1245,7 @@ msgstr "系统存储成品的库位" #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "这是一张移库单的编号,是把产成品从生产线上移动到库房里" @@ -2655,7 +2655,7 @@ msgstr "年" #~ msgstr "需求单转为采购订单草稿。" #~ msgid "" -#~ "This is the internal picking list take bring the raw materials to the " +#~ "This is the Internal Picking List take bring the raw materials to the " #~ "production plan." #~ msgstr "这是生产计划所需原料的内部分拣单" diff --git a/addons/mrp/i18n/zh_HK.po b/addons/mrp/i18n/zh_HK.po index 5c395b63b99..f855b98d6e5 100644 --- a/addons/mrp/i18n/zh_HK.po +++ b/addons/mrp/i18n/zh_HK.po @@ -1241,7 +1241,7 @@ msgstr "" #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "" @@ -2577,7 +2577,7 @@ msgstr "" #~ msgstr "數量倍數" #~ msgid "" -#~ "This is the internal picking list take bring the raw materials to the " +#~ "This is the Internal Picking List take bring the raw materials to the " #~ "production plan." #~ msgstr "這是生產計畫所需原材料的內部挑選列表" diff --git a/addons/mrp/i18n/zh_TW.po b/addons/mrp/i18n/zh_TW.po index 7afc22bac08..477acd795af 100644 --- a/addons/mrp/i18n/zh_TW.po +++ b/addons/mrp/i18n/zh_TW.po @@ -1240,7 +1240,7 @@ msgstr "" #. module: mrp #: help:mrp.production,picking_id:0 msgid "" -"This is the internal picking list that brings the finished product to the " +"This is the Internal Picking List that brings the finished product to the " "production plan" msgstr "" @@ -2576,7 +2576,7 @@ msgstr "" #~ msgstr "數量倍數" #~ msgid "" -#~ "This is the internal picking list take bring the raw materials to the " +#~ "This is the Internal Picking List take bring the raw materials to the " #~ "production plan." #~ msgstr "這是生產計畫所需原材料的內部挑選列表" diff --git a/addons/mrp/mrp.py b/addons/mrp/mrp.py index 356a762c0c5..1bb93bef8a3 100644 --- a/addons/mrp/mrp.py +++ b/addons/mrp/mrp.py @@ -467,7 +467,7 @@ class mrp_production(osv.osv): 'bom_id': fields.many2one('mrp.bom', 'Bill of Material', domain=[('bom_id','=',False)], readonly=True, states={'draft':[('readonly',False)]}), 'routing_id': fields.many2one('mrp.routing', string='Routing', on_delete='set null', readonly=True, states={'draft':[('readonly',False)]}, help="The list of operations (list of work centers) to produce the finished product. The routing is mainly used to compute work center costs during operations and to plan future loads on work centers based on production plannification."), 'picking_id': fields.many2one('stock.picking', 'Picking list', readonly=True, ondelete="restrict", - help="This is the internal picking list that brings the finished product to the production plan"), + help="This is the Internal Picking List that brings the finished product to the production plan"), 'move_prod_id': fields.many2one('stock.move', 'Move product', readonly=True), 'move_lines': fields.many2many('stock.move', 'mrp_production_move_ids', 'production_id', 'move_id', 'Products to Consume', domain=[('state','not in', ('done', 'cancel'))], states={'done':[('readonly',True)]}), 'move_lines2': fields.many2many('stock.move', 'mrp_production_move_ids', 'production_id', 'move_id', 'Consumed Products', domain=[('state','in', ('done', 'cancel'))]), diff --git a/addons/stock/i18n/ar.po b/addons/stock/i18n/ar.po index fcc9d11f91c..867df8a22ca 100644 --- a/addons/stock/i18n/ar.po +++ b/addons/stock/i18n/ar.po @@ -2408,7 +2408,7 @@ msgstr "" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "" #. module: stock diff --git a/addons/stock/i18n/bg.po b/addons/stock/i18n/bg.po index 373159d3b9f..6224096db5e 100644 --- a/addons/stock/i18n/bg.po +++ b/addons/stock/i18n/bg.po @@ -2439,7 +2439,7 @@ msgstr "Преглед на склад с продукти" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "" #. module: stock diff --git a/addons/stock/i18n/bs.po b/addons/stock/i18n/bs.po index 0dce966cc34..b9e465eb193 100644 --- a/addons/stock/i18n/bs.po +++ b/addons/stock/i18n/bs.po @@ -2408,7 +2408,7 @@ msgstr "Pregled zaliha proizvoda" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "" #. module: stock diff --git a/addons/stock/i18n/ca.po b/addons/stock/i18n/ca.po index 55233026269..0e53e4eecb7 100644 --- a/addons/stock/i18n/ca.po +++ b/addons/stock/i18n/ca.po @@ -2621,7 +2621,7 @@ msgstr "Veure estoc de productes" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "Albarà intern" #. module: stock diff --git a/addons/stock/i18n/cs.po b/addons/stock/i18n/cs.po index c74ce13948f..59d910a70ab 100644 --- a/addons/stock/i18n/cs.po +++ b/addons/stock/i18n/cs.po @@ -2439,7 +2439,7 @@ msgstr "Zobrazit zásoby výrobků" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "Vnitřní naváděcí seznam" #. module: stock diff --git a/addons/stock/i18n/da.po b/addons/stock/i18n/da.po index 007c15baa00..5a4deba51cb 100644 --- a/addons/stock/i18n/da.po +++ b/addons/stock/i18n/da.po @@ -2409,7 +2409,7 @@ msgstr "" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "" #. module: stock diff --git a/addons/stock/i18n/de.po b/addons/stock/i18n/de.po index 9c60193d1f1..aaea5ee2691 100644 --- a/addons/stock/i18n/de.po +++ b/addons/stock/i18n/de.po @@ -2614,7 +2614,7 @@ msgstr "Zeige Lagerorte der Produkte" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "Interne Lieferauftragsliste" #. module: stock diff --git a/addons/stock/i18n/el.po b/addons/stock/i18n/el.po index 2de9e65b1bc..a4266fad473 100644 --- a/addons/stock/i18n/el.po +++ b/addons/stock/i18n/el.po @@ -2428,7 +2428,7 @@ msgstr "Προβολή Αποθέματος Προϊόντων" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "" #. module: stock diff --git a/addons/stock/i18n/es.po b/addons/stock/i18n/es.po index 3b030cfef80..b2e791189de 100644 --- a/addons/stock/i18n/es.po +++ b/addons/stock/i18n/es.po @@ -2631,7 +2631,7 @@ msgstr "Ver stock de productos" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "Albarán interno" #. module: stock diff --git a/addons/stock/i18n/es_AR.po b/addons/stock/i18n/es_AR.po index abe5da9e081..d2a6279f8b7 100644 --- a/addons/stock/i18n/es_AR.po +++ b/addons/stock/i18n/es_AR.po @@ -2412,7 +2412,7 @@ msgstr "Ver stock de productos" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "" #. module: stock diff --git a/addons/stock/i18n/es_CL.po b/addons/stock/i18n/es_CL.po index ea086475e65..d25cf3a883c 100644 --- a/addons/stock/i18n/es_CL.po +++ b/addons/stock/i18n/es_CL.po @@ -2629,7 +2629,7 @@ msgstr "Ver stock de productos" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "Albarán interno" #. module: stock diff --git a/addons/stock/i18n/es_EC.po b/addons/stock/i18n/es_EC.po index 89adf47cf6e..5275452160b 100644 --- a/addons/stock/i18n/es_EC.po +++ b/addons/stock/i18n/es_EC.po @@ -2583,7 +2583,7 @@ msgstr "Ver stock de productos" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "Lista movimiento internos" #. module: stock diff --git a/addons/stock/i18n/es_MX.po b/addons/stock/i18n/es_MX.po index 37a72b5d89f..0f3b4b96f30 100644 --- a/addons/stock/i18n/es_MX.po +++ b/addons/stock/i18n/es_MX.po @@ -2635,7 +2635,7 @@ msgstr "Ver stock de productos" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "Albarán interno" #. module: stock diff --git a/addons/stock/i18n/es_MX.po.moved b/addons/stock/i18n/es_MX.po.moved index ddb33a01138..696ebe8e9a7 100644 --- a/addons/stock/i18n/es_MX.po.moved +++ b/addons/stock/i18n/es_MX.po.moved @@ -2282,7 +2282,7 @@ msgstr "Ver stock de productos" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "Lista de empaque interna" #. module: stock diff --git a/addons/stock/i18n/es_VE.po b/addons/stock/i18n/es_VE.po index 37a72b5d89f..0f3b4b96f30 100644 --- a/addons/stock/i18n/es_VE.po +++ b/addons/stock/i18n/es_VE.po @@ -2635,7 +2635,7 @@ msgstr "Ver stock de productos" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "Albarán interno" #. module: stock diff --git a/addons/stock/i18n/et.po b/addons/stock/i18n/et.po index f6955029f12..3577e185b16 100644 --- a/addons/stock/i18n/et.po +++ b/addons/stock/i18n/et.po @@ -2396,7 +2396,7 @@ msgstr "Vaata toodete laoseisu" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "" #. module: stock diff --git a/addons/stock/i18n/fi.po b/addons/stock/i18n/fi.po index 1d0d50b89a5..ecd82c8f78b 100644 --- a/addons/stock/i18n/fi.po +++ b/addons/stock/i18n/fi.po @@ -2490,7 +2490,7 @@ msgstr "Näytä tuotteiden varasto" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "Sisäinen keräilylista" #. module: stock diff --git a/addons/stock/i18n/fr.po b/addons/stock/i18n/fr.po index 92d99777e8e..ccc3725170c 100644 --- a/addons/stock/i18n/fr.po +++ b/addons/stock/i18n/fr.po @@ -2649,7 +2649,7 @@ msgstr "Voir les stocks produits" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "Bon de transfert interne" #. module: stock diff --git a/addons/stock/i18n/gl.po b/addons/stock/i18n/gl.po index a1341961104..c98825c2304 100644 --- a/addons/stock/i18n/gl.po +++ b/addons/stock/i18n/gl.po @@ -2409,7 +2409,7 @@ msgstr "" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "" #. module: stock diff --git a/addons/stock/i18n/hr.po b/addons/stock/i18n/hr.po index cb76c9fba0e..f0590e832b5 100644 --- a/addons/stock/i18n/hr.po +++ b/addons/stock/i18n/hr.po @@ -2411,7 +2411,7 @@ msgstr "Vidi zalihu proizvoda" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "" #. module: stock diff --git a/addons/stock/i18n/hu.po b/addons/stock/i18n/hu.po index 4508ac3a2ea..b0b89b04192 100644 --- a/addons/stock/i18n/hu.po +++ b/addons/stock/i18n/hu.po @@ -2497,7 +2497,7 @@ msgstr "Termékek készletének megtekintése" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "Belső kiszedési lista" #. module: stock diff --git a/addons/stock/i18n/id.po b/addons/stock/i18n/id.po index db9fec8893d..7d32743d21a 100644 --- a/addons/stock/i18n/id.po +++ b/addons/stock/i18n/id.po @@ -2506,7 +2506,7 @@ msgstr "Lihat Stok Produk" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "Daftar pengambilan internal" #. module: stock diff --git a/addons/stock/i18n/it.po b/addons/stock/i18n/it.po index 0253e9048e3..919beb2ec4b 100644 --- a/addons/stock/i18n/it.po +++ b/addons/stock/i18n/it.po @@ -2495,7 +2495,7 @@ msgstr "Visualizza giacenza prodotti" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "Picking list interna" #. module: stock diff --git a/addons/stock/i18n/ko.po b/addons/stock/i18n/ko.po index 5aa17a9f249..455d0393c0e 100644 --- a/addons/stock/i18n/ko.po +++ b/addons/stock/i18n/ko.po @@ -2409,7 +2409,7 @@ msgstr "재고 보기" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "" #. module: stock diff --git a/addons/stock/i18n/lt.po b/addons/stock/i18n/lt.po index 5a7e42629cd..f18d4e7fac3 100644 --- a/addons/stock/i18n/lt.po +++ b/addons/stock/i18n/lt.po @@ -2412,7 +2412,7 @@ msgstr "Peržiūrėti produktų atsargas" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "" #. module: stock diff --git a/addons/stock/i18n/lv.po b/addons/stock/i18n/lv.po index ccefa9e0789..53bb4860baf 100644 --- a/addons/stock/i18n/lv.po +++ b/addons/stock/i18n/lv.po @@ -2409,7 +2409,7 @@ msgstr "" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "" #. module: stock diff --git a/addons/stock/i18n/mn.po b/addons/stock/i18n/mn.po index efb2c61166f..bae4978d770 100644 --- a/addons/stock/i18n/mn.po +++ b/addons/stock/i18n/mn.po @@ -2423,7 +2423,7 @@ msgstr "Барааны агуулах харах" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "" #. module: stock diff --git a/addons/stock/i18n/nb.po b/addons/stock/i18n/nb.po index 49de8775c60..58b3f1521d6 100644 --- a/addons/stock/i18n/nb.po +++ b/addons/stock/i18n/nb.po @@ -2412,7 +2412,7 @@ msgstr "Vis lager med produkter" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "" #. module: stock diff --git a/addons/stock/i18n/nl.po b/addons/stock/i18n/nl.po index 8abcaba9620..acca46679e6 100644 --- a/addons/stock/i18n/nl.po +++ b/addons/stock/i18n/nl.po @@ -2412,7 +2412,7 @@ msgstr "Beeld productenvoorraad" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "" #. module: stock diff --git a/addons/stock/i18n/nl_BE.po b/addons/stock/i18n/nl_BE.po index 931aab77bb4..53fe39b40d5 100644 --- a/addons/stock/i18n/nl_BE.po +++ b/addons/stock/i18n/nl_BE.po @@ -2408,7 +2408,7 @@ msgstr "" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "" #. module: stock diff --git a/addons/stock/i18n/pl.po b/addons/stock/i18n/pl.po index c775b418ffb..e40a191271d 100644 --- a/addons/stock/i18n/pl.po +++ b/addons/stock/i18n/pl.po @@ -2592,7 +2592,7 @@ msgstr "Podgląd zapasów" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "Pobranie wewnętrzne (MM)" #. module: stock diff --git a/addons/stock/i18n/pt.po b/addons/stock/i18n/pt.po index 14080abf4e7..a8b20192939 100644 --- a/addons/stock/i18n/pt.po +++ b/addons/stock/i18n/pt.po @@ -2414,7 +2414,7 @@ msgstr "Ver Stock de Produtos" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "" #. module: stock diff --git a/addons/stock/i18n/pt_BR.po b/addons/stock/i18n/pt_BR.po index 8fc6f64629d..a77385b8d61 100644 --- a/addons/stock/i18n/pt_BR.po +++ b/addons/stock/i18n/pt_BR.po @@ -2561,7 +2561,7 @@ msgstr "Ver Estoque dos Produtos" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "Lista de Separação Interna" #. module: stock diff --git a/addons/stock/i18n/ro.po b/addons/stock/i18n/ro.po index 2180abf6baa..910ad8a8014 100644 --- a/addons/stock/i18n/ro.po +++ b/addons/stock/i18n/ro.po @@ -2432,7 +2432,7 @@ msgstr "Afişare stoc după produse" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "Liste interne de preluare" #. module: stock diff --git a/addons/stock/i18n/ru.po b/addons/stock/i18n/ru.po index 4b6157b6ce3..b8583613cc1 100644 --- a/addons/stock/i18n/ru.po +++ b/addons/stock/i18n/ru.po @@ -2564,7 +2564,7 @@ msgstr "Просмотр товаров на складах" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "Внутренний комплектовочный лист" #. module: stock diff --git a/addons/stock/i18n/sl.po b/addons/stock/i18n/sl.po index 5c6a2d6897c..176b60e5011 100644 --- a/addons/stock/i18n/sl.po +++ b/addons/stock/i18n/sl.po @@ -2408,7 +2408,7 @@ msgstr "" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "" #. module: stock diff --git a/addons/stock/i18n/sq.po b/addons/stock/i18n/sq.po index 4578cf591c8..b1d48915c3d 100644 --- a/addons/stock/i18n/sq.po +++ b/addons/stock/i18n/sq.po @@ -2409,7 +2409,7 @@ msgstr "" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "" #. module: stock diff --git a/addons/stock/i18n/sr.po b/addons/stock/i18n/sr.po index 11aa6fa3c22..d67021e15a3 100644 --- a/addons/stock/i18n/sr.po +++ b/addons/stock/i18n/sr.po @@ -2424,7 +2424,7 @@ msgstr "Pregled zaliha proizvoda" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "" #. module: stock diff --git a/addons/stock/i18n/sr@latin.po b/addons/stock/i18n/sr@latin.po index 304232c90c9..c2381578db1 100644 --- a/addons/stock/i18n/sr@latin.po +++ b/addons/stock/i18n/sr@latin.po @@ -2424,7 +2424,7 @@ msgstr "Pregled zaliha proizvoda" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "" #. module: stock diff --git a/addons/stock/i18n/stock.pot b/addons/stock/i18n/stock.pot index e926d7d863b..6b1c0e51833 100644 --- a/addons/stock/i18n/stock.pot +++ b/addons/stock/i18n/stock.pot @@ -2268,7 +2268,7 @@ msgstr "" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "" #. module: stock diff --git a/addons/stock/i18n/sv.po b/addons/stock/i18n/sv.po index 48175389c27..5a056336832 100644 --- a/addons/stock/i18n/sv.po +++ b/addons/stock/i18n/sv.po @@ -2410,7 +2410,7 @@ msgstr "View Stock of Products" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "" #. module: stock diff --git a/addons/stock/i18n/th.po b/addons/stock/i18n/th.po index 07fec36da46..c6e2b3a3723 100644 --- a/addons/stock/i18n/th.po +++ b/addons/stock/i18n/th.po @@ -2409,7 +2409,7 @@ msgstr "" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "" #. module: stock diff --git a/addons/stock/i18n/tlh.po b/addons/stock/i18n/tlh.po index 64ff4690650..d2886f36ad9 100644 --- a/addons/stock/i18n/tlh.po +++ b/addons/stock/i18n/tlh.po @@ -2408,7 +2408,7 @@ msgstr "" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "" #. module: stock diff --git a/addons/stock/i18n/tr.po b/addons/stock/i18n/tr.po index b26cdf51fc6..63f840e7659 100644 --- a/addons/stock/i18n/tr.po +++ b/addons/stock/i18n/tr.po @@ -2599,7 +2599,7 @@ msgstr "Ürün Stoğunu Göster" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "Dahili Alım listesi" #. module: stock diff --git a/addons/stock/i18n/uk.po b/addons/stock/i18n/uk.po index 0a0d954763a..2fcce267038 100644 --- a/addons/stock/i18n/uk.po +++ b/addons/stock/i18n/uk.po @@ -2412,7 +2412,7 @@ msgstr "" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "" #. module: stock diff --git a/addons/stock/i18n/vi.po b/addons/stock/i18n/vi.po index 856da579eb3..071225bd727 100644 --- a/addons/stock/i18n/vi.po +++ b/addons/stock/i18n/vi.po @@ -2412,7 +2412,7 @@ msgstr "Xem tồn kho của các sản phẩm" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "" #. module: stock diff --git a/addons/stock/i18n/zh_CN.po b/addons/stock/i18n/zh_CN.po index 6eeb8827879..57d5dc7d802 100644 --- a/addons/stock/i18n/zh_CN.po +++ b/addons/stock/i18n/zh_CN.po @@ -2466,7 +2466,7 @@ msgstr "查看库存产品" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "内部装箱单" #. module: stock diff --git a/addons/stock/i18n/zh_TW.po b/addons/stock/i18n/zh_TW.po index 2663d8c7190..d2170ec09a6 100644 --- a/addons/stock/i18n/zh_TW.po +++ b/addons/stock/i18n/zh_TW.po @@ -2419,7 +2419,7 @@ msgstr "" #. module: stock #: view:stock.picking:0 -msgid "Internal Picking list" +msgid "Internal Picking List" msgstr "內部提貨清單" #. module: stock diff --git a/addons/stock/stock_view.xml b/addons/stock/stock_view.xml index 6cd9d61f6c4..3256d20bde5 100644 --- a/addons/stock/stock_view.xml +++ b/addons/stock/stock_view.xml @@ -692,7 +692,7 @@ form -
+ From a6c6cc5e57836d7f238043a789fad35b12fae32a Mon Sep 17 00:00:00 2001 From: "Jiten (OpenERP)" Date: Thu, 1 Dec 2011 16:56:58 +0530 Subject: [PATCH 30/59] [IMP] Improve to find records for nested o2m and m2m. bzr revid: jra@tinyerp.com-20111201112658-mgq350vua4zfoj8b --- addons/web_mobile/static/src/js/form_mobile.js | 11 ++++++----- addons/web_mobile/static/src/js/list_mobile.js | 10 +++++----- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/addons/web_mobile/static/src/js/form_mobile.js b/addons/web_mobile/static/src/js/form_mobile.js index 13ff38bca5c..448bc11c5aa 100644 --- a/addons/web_mobile/static/src/js/form_mobile.js +++ b/addons/web_mobile/static/src/js/form_mobile.js @@ -65,14 +65,13 @@ openerp.web_mobile.FormView = openerp.web.Widget.extend({ ev.stopPropagation(); var relational = $(this).attr('for'); var rel_field = fields[relational]; - var head = rel_field.string; - var rel_model = rel_field.relation; var rel_ids = values[relational]; + var head = rel_field.string; if (rel_ids) { var datasearch = new openerp.web.DataSetSearch(self, rel_field.relation, rel_field.context); datasearch.domain=[['id', 'in', rel_ids]]; - datasearch.read_slice([], {limit:80}, function(listrec){ - _.extend(self.action.context,{"html_name_get" : true}); + datasearch.read_slice(['name'], {context:rel_field.context, domain: datasearch.domain, limit:80}, function(listrec){ + _.extend(rel_field.context,{"html_name_get" : true}); var dataset = new openerp.web.DataSet(self, rel_field.relation,rel_field.context); dataset.name_get(listrec,function(res){ var additional = ""; @@ -112,10 +111,12 @@ openerp.web_mobile.FormView = openerp.web.Widget.extend({ self.formatdata('', '', '', '',self.element_id,'slider'); }, open_m2o_form : function(ev) { + ev.preventDefault(); + ev.stopPropagation(); var head = $(this).find('a').attr('name'); var selected_id = $(this).find('a').attr('value'); var select_model = $(this).attr('for'); - if(selected_id!="false"){ + if(selected_id){ if(!$('[id^="oe_form_'+selected_id+select_model+'"]').html()){ $('
').appendTo('#moe'); this.formview = new openerp.web_mobile.FormView(self, "oe_form_"+selected_id+select_model, selected_id, '', head, select_model, false); diff --git a/addons/web_mobile/static/src/js/list_mobile.js b/addons/web_mobile/static/src/js/list_mobile.js index 5813b9c216e..67058bf72f6 100644 --- a/addons/web_mobile/static/src/js/list_mobile.js +++ b/addons/web_mobile/static/src/js/list_mobile.js @@ -30,12 +30,12 @@ openerp.web_mobile.ListView = openerp.web.Widget.extend({ }, on_search_data: function(ev){ var self = this; - var dataset = new openerp.web.DataSetSearch(this, this.action.res_model,this.action.context); - dataset.domain = self.action.domain; - dataset.read_slice([], {limit:80}, function(result,ids){ + var datasearch = new openerp.web.DataSetSearch(self, self.action.res_model,self.action.context); + datasearch.domain = self.action.domain; + datasearch.read_slice(['name'], {context:datasearch.context, domain: datasearch.domain, limit:80}, function(listresult){ _.extend(self.action.context,{"html_name_get" : true}); - var dataset1 = new openerp.web.DataSet(self, self.action.res_model,self.action.context); - dataset1.name_get(result,function(res){ + var dataset = new openerp.web.DataSet(self, datasearch.model,datasearch.context); + dataset.name_get(listresult,function(res){ var additional = ""; if(res['html_name_get']){ additional = res['display']; From 49be766d107eaaaccb4afb6084df67d73947e81d Mon Sep 17 00:00:00 2001 From: Launchpad Translations on behalf of openerp <> Date: Fri, 2 Dec 2011 04:47:50 +0000 Subject: [PATCH 31/59] Launchpad automatic translations update. bzr revid: launchpad_translations_on_behalf_of_openerp-20111202044750-97jcwtljweu6gf4i --- addons/account_asset/i18n/es_AR.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/account_asset/i18n/es_AR.po b/addons/account_asset/i18n/es_AR.po index e260211fa4d..9102ec58885 100644 --- a/addons/account_asset/i18n/es_AR.po +++ b/addons/account_asset/i18n/es_AR.po @@ -14,7 +14,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-12-01 05:26+0000\n" +"X-Launchpad-Export-Date: 2011-12-02 04:47+0000\n" "X-Generator: Launchpad (build 14414)\n" #. module: account_asset From fa8990551059f5817451f1dd50f3cf2376860469 Mon Sep 17 00:00:00 2001 From: Raphael Collet Date: Fri, 2 Dec 2011 08:56:02 +0100 Subject: [PATCH 32/59] [FIX] crm_partner_assign: add missing field 'email_from' in test bzr revid: rco@openerp.com-20111202075602-r2x5yyen8a9ip351 --- addons/crm_partner_assign/test/process/partner_assign.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/crm_partner_assign/test/process/partner_assign.yml b/addons/crm_partner_assign/test/process/partner_assign.yml index 1035f7e8862..18f03c9d41c 100644 --- a/addons/crm_partner_assign/test/process/partner_assign.yml +++ b/addons/crm_partner_assign/test/process/partner_assign.yml @@ -30,7 +30,7 @@ - !python {model: crm.lead.forward.to.partner}: | context.update({'active_model': 'crm.lead', 'active_id': ref('crm.crm_case_abcfuelcounits0'), 'active_ids': [ref('crm.crm_case_abcfuelcounits0')]}) - forward_id = self.create(cr, uid, {'send_to': 'partner'}, context=context) + forward_id = self.create(cr, uid, {'email_from': 'test@openerp.com', 'send_to': 'partner'}, context=context) try: self.action_forward(cr, uid, [forward_id], context=context) except: From f9a8424c4e7bc430fb3e917602b1460703db99b8 Mon Sep 17 00:00:00 2001 From: Fabien Pinckaers Date: Fri, 2 Dec 2011 14:59:57 +0100 Subject: [PATCH 33/59] [IMP] view of departments bzr revid: fp@tinyerp.com-20111202135957-hnc3lmr8duoz4sda --- addons/hr/hr_department_view.xml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/addons/hr/hr_department_view.xml b/addons/hr/hr_department_view.xml index 9fdb64651f5..a48103ad2e0 100644 --- a/addons/hr/hr_department_view.xml +++ b/addons/hr/hr_department_view.xml @@ -19,14 +19,6 @@
- - - - - - - -
From a07264a62dc026ceb7ffdc7440567ac636cdea63 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Fri, 2 Dec 2011 17:27:39 +0100 Subject: [PATCH 34/59] [FIX] point_of_sale: typo. bzr revid: vmt@openerp.com-20111202162739-9nd3h9h83s633lyj --- addons/point_of_sale/security/ir.model.access.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/point_of_sale/security/ir.model.access.csv b/addons/point_of_sale/security/ir.model.access.csv index 200180e6749..92dedc2edf5 100644 --- a/addons/point_of_sale/security/ir.model.access.csv +++ b/addons/point_of_sale/security/ir.model.access.csv @@ -69,4 +69,4 @@ "access_res_partner_manager","res.partner manager","base.model_res_partner","group_pos_manager",1,0,0,0 "access_product_category_manager","product.category manager","product.model_product_category","group_pos_manager",1,0,0,0 "access_product_pricelist_manager","product.pricelist manager","product.model_product_pricelist","group_pos_manager",1,0,0,0 -"access_product_category_pos_manager","pos.category";"manager","model_pos_category","group_pos_manager",1,0,0,0" +"access_product_category_pos_manager","pos.category manager","model_pos_category","group_pos_manager",1,0,0,0" From c1810c348353e0cc1c3083b92ad73e6cdd7f0c5c Mon Sep 17 00:00:00 2001 From: Fabien Pinckaers Date: Sat, 3 Dec 2011 15:04:27 +0100 Subject: [PATCH 35/59] [NEW] Project Cumulative Flow and Task History for Kanban bzr revid: fp@tinyerp.com-20111203140427-jf57fyvvo60g31dl --- addons/project/__openerp__.py | 3 +- addons/project/project.py | 115 +++++++++++++++++- addons/project/report/project_cumulative.xml | 81 ++++++++++++ addons/project/report/project_report_view.xml | 4 +- addons/project/security/ir.model.access.csv | 2 + 5 files changed, 200 insertions(+), 5 deletions(-) create mode 100644 addons/project/report/project_cumulative.xml diff --git a/addons/project/__openerp__.py b/addons/project/__openerp__.py index 9132636b56f..1913cc62c04 100644 --- a/addons/project/__openerp__.py +++ b/addons/project/__openerp__.py @@ -55,7 +55,8 @@ Dashboard for project members that includes: "res_partner_view.xml", "report/project_report_view.xml", "board_project_view.xml", - 'board_project_manager_view.xml' + 'board_project_manager_view.xml', + 'report/project_cumulative.xml' ], 'demo_xml': [ 'project_demo.xml', diff --git a/addons/project/project.py b/addons/project/project.py index abebd2d35ff..5c234cf5e26 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -974,6 +974,24 @@ class task(osv.osv): def prev_type(self, cr, uid, ids, *args): return self._change_type(cr, uid, ids, False, *args) + def _store_history(self, cr, uid, ids, context=None): + for task in self.browse(cr, uid, ids, context=context): + self.pool.get('project.task.history').create(cr, uid, { + 'task_id': task.id, + 'remaining_hours': task.remaining_hours, + 'kanban_state': task.kanban_state, + 'type_id': task.type_id.id, + 'state': task.state, + 'user_id': task.user_id.id + + }, context=context) + return True + + def create(self, cr, uid, vals, context=None): + result = super(task, self).create(cr, uid, vals, context=context) + self._store_history(cr, uid, [result], context=context) + return result + # Overridden to reset the kanban_state to normal whenever # the stage (type_id) of the task changes. def write(self, cr, uid, ids, vals, context=None): @@ -985,8 +1003,12 @@ class task(osv.osv): for t in self.browse(cr, uid, ids, context=context): write_vals = vals_reset_kstate if t.type_id != new_stage else vals super(task,self).write(cr, uid, [t.id], write_vals, context=context) - return True - return super(task,self).write(cr, uid, ids, vals, context=context) + result = True + else: + result = super(task,self).write(cr, uid, ids, vals, context=context) + if ('type_id' in vals) or ('remaining_hours' in vals) or ('user_id' in vals) or ('state' in vals) or ('kanban_state' in vals): + self._store_history(cr, uid, ids, context=context) + return result def unlink(self, cr, uid, ids, context=None): if context == None: @@ -1084,4 +1106,91 @@ class account_analytic_account(osv.osv): account_analytic_account() -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: +# +# Tasks History, used for cumulative flow charts (Lean/Agile) +# + +class project_task_history(osv.osv): + _name = 'project.task.history' + _description = 'History of Tasks' + _rec_name = 'task_id' + _log_access = False + def _get_date(self, cr, uid, ids, name, arg, context=None): + result = {} + for history in self.browse(cr, uid, ids, context=context): + if history.state in ('done','cancelled'): + result[history.id] = history.date + continue + cr.execute('''select + date + from + project_task_history + where + task_id=%s and + id>%s + order by id limit 1''', (history.task_id.id, history.id)) + res = cr.fetchone() + result[history.id] = res and res[0] or False + return result + + def _get_related_date(self, cr, uid, ids, context=None): + result = [] + for history in self.browse(cr, uid, ids, context=context): + cr.execute('''select + id + from + project_task_history + where + task_id=%s and + id<%s + order by id desc limit 1''', (history.task_id.id, history.id)) + res = cr.fetchone() + if res: + result.append(res[0]) + return result + + _columns = { + 'task_id': fields.many2one('project.task', 'Task', ondelete='cascade', required=True, select=True), + 'type_id': fields.many2one('project.task.type', 'Stage'), + 'state': fields.selection([('draft', 'New'),('open', 'In Progress'),('pending', 'Pending'), ('done', 'Done'), ('cancelled', 'Cancelled')], 'State'), + 'kanban_state': fields.selection([('normal', 'Normal'),('blocked', 'Blocked'),('done', 'Ready To Pull')], 'Kanban State', required=False), + 'date': fields.date('Date', select=True), + 'end_date': fields.function(_get_date, string='End Date', type="date", store={ + 'project.task.history': (_get_related_date, None, 20) + }), + 'remaining_hours': fields.float('Remaining Hours', digits=(16,2)), + 'user_id': fields.many2one('res.users', 'Responsible'), + } + _defaults = { + 'date': lambda s,c,u,ctx: time.strftime('%Y-%m-%d') + } +project_task_history() + +class project_task_history_cumulative(osv.osv): + _name = 'project.task.history.cumulative' + _table = 'project_task_history_cumulative' + _inherit = 'project.task.history' + _auto = False + _columns = { + 'end_date': fields.date('End Date'), + 'project_id': fields.related('task_id', 'project_id', string='Project', type='many2one', relation='project.project') + } + def init(self, cr): + cr.execute(""" CREATE OR REPLACE VIEW project_task_history_cumulative AS ( + SELECT + history.date::varchar||'-'||history.history_id::varchar as id, + history.date as end_date, + * + FROM ( + SELECT + id as history_id, + date+generate_series(0, CAST((coalesce(end_date,DATE 'tomorrow')::date - date)AS integer)-1) as date, + task_id, type_id, user_id, kanban_state, state, + remaining_hours + FROM + project_task_history + ) as history + ) + """) +project_task_history_cumulative() + diff --git a/addons/project/report/project_cumulative.xml b/addons/project/report/project_cumulative.xml new file mode 100644 index 00000000000..aff90aea94e --- /dev/null +++ b/addons/project/report/project_cumulative.xml @@ -0,0 +1,81 @@ + + + + + + project.task.history.cumulative.tree + project.task.history.cumulative + tree + + + + + + + + + + + + + + + project.task.history.cumulative.graph + project.task.history.cumulative + graph + + + + + + + + + + + project.task.history.cumulative.search + project.task.history.cumulative + search + + + + + + + + + + + + + + + + + + + + + + + + + + + Cumulative Flow + project.task.history.cumulative + form + graph,tree + + {"search_default_open":1, "search_default_this_month": 1} + + + + + + diff --git a/addons/project/report/project_report_view.xml b/addons/project/report/project_report_view.xml index cfa667c7590..bf828d6b231 100644 --- a/addons/project/report/project_report_view.xml +++ b/addons/project/report/project_report_view.xml @@ -5,6 +5,8 @@ + report.project.task.user.tree @@ -152,7 +154,7 @@ This report allows you to analyse the performance of your projects and users. You can analyse the quantities of tasks, the hours spent compared to the planned hours, the average number of days to open or close a task, etc. - + diff --git a/addons/project/security/ir.model.access.csv b/addons/project/security/ir.model.access.csv index 659948bc4d0..955a6ef0c97 100644 --- a/addons/project/security/ir.model.access.csv +++ b/addons/project/security/ir.model.access.csv @@ -22,3 +22,5 @@ "access_project_task_sale_user","project.task salesman","model_project_task","base.group_sale_salesman",1,0,0,0 "access_project_project_sale_user","project.project salesman","model_project_project","base.group_sale_salesman",1,0,0,0 "access_account_analytic_line_project","account.analytic.line project","analytic.model_account_analytic_line","project.group_project_manager",1,1,1,1 +"access_project_task_history","project.task.history project","project.model_project_task_history","project.group_project_user",1,1,1,0 +"access_project_task_history_cumulative","project.task.history project","project.model_project_task_history_cumulative","project.group_project_manager",1,0,0,0 From 20c2ebf9cc1f4afc7d3e6494626f3fd82f6bd351 Mon Sep 17 00:00:00 2001 From: Launchpad Translations on behalf of openerp <> Date: Mon, 5 Dec 2011 05:44:44 +0000 Subject: [PATCH 36/59] Launchpad automatic translations update. bzr revid: launchpad_translations_on_behalf_of_openerp-20111203051322-9okh062mnsk6z7rl bzr revid: launchpad_translations_on_behalf_of_openerp-20111205052156-xdi2wl4c0i6c943y bzr revid: launchpad_translations_on_behalf_of_openerp-20111204044348-1h1ykzimferyb15x bzr revid: launchpad_translations_on_behalf_of_openerp-20111205052228-xpcasqkuz99hp3bx bzr revid: launchpad_translations_on_behalf_of_openerp-20111202052804-fp30z23u77bb8xsq bzr revid: launchpad_translations_on_behalf_of_openerp-20111203054648-32m102m6zeyp2w96 bzr revid: launchpad_translations_on_behalf_of_openerp-20111204050726-v3ccozl63rq6hwt3 bzr revid: launchpad_translations_on_behalf_of_openerp-20111205054444-8otpyzxplw2r1zo8 --- addons/account/i18n/ar.po | 669 ++++++++++++++-------------- addons/base_contact/i18n/ar.po | 189 ++++---- addons/web/po/de.po | 10 +- addons/web/po/nl.po | 694 ++++++++++++++++++++++++++++++ addons/web/po/zh_TW.po | 677 +++++++++++++++++++++++++++++ addons/web_calendar/po/nl.po | 22 + addons/web_calendar/po/ru.po | 22 + addons/web_dashboard/po/nl.po | 46 ++ addons/web_dashboard/po/ru.po | 46 ++ addons/web_default_home/po/nl.po | 38 ++ addons/web_default_home/po/ru.po | 38 ++ addons/web_diagram/po/de.po | 10 +- addons/web_diagram/po/ru.po | 54 +++ addons/web_hello/po/fr.po | 20 + addons/web_mobile/po/nl.po | 66 +++ addons/web_mobile/po/ru.po | 66 +++ openerp/addons/base/i18n/ar.po | 8 +- openerp/addons/base/i18n/en_GB.po | 162 ++++--- 18 files changed, 2348 insertions(+), 489 deletions(-) create mode 100644 addons/web/po/nl.po create mode 100644 addons/web/po/zh_TW.po create mode 100644 addons/web_calendar/po/nl.po create mode 100644 addons/web_calendar/po/ru.po create mode 100644 addons/web_dashboard/po/nl.po create mode 100644 addons/web_dashboard/po/ru.po create mode 100644 addons/web_default_home/po/nl.po create mode 100644 addons/web_default_home/po/ru.po create mode 100644 addons/web_diagram/po/ru.po create mode 100644 addons/web_hello/po/fr.po create mode 100644 addons/web_mobile/po/nl.po create mode 100644 addons/web_mobile/po/ru.po diff --git a/addons/account/i18n/ar.po b/addons/account/i18n/ar.po index 3b5edf1e87d..faecaa6fe04 100644 --- a/addons/account/i18n/ar.po +++ b/addons/account/i18n/ar.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2011-01-11 11:14+0000\n" -"PO-Revision-Date: 2011-11-15 03:49+0000\n" +"PO-Revision-Date: 2011-12-04 22:14+0000\n" "Last-Translator: kifcaliph \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-16 05:21+0000\n" -"X-Generator: Launchpad (build 14291)\n" +"X-Launchpad-Export-Date: 2011-12-05 05:22+0000\n" +"X-Generator: Launchpad (build 14418)\n" #. module: account #: model:process.transition,name:account.process_transition_supplierreconcilepaid0 @@ -24,7 +24,7 @@ msgstr "نظام الدفع" #. module: account #: view:account.journal:0 msgid "Other Configuration" -msgstr "تعديلات أخرى" +msgstr "إعدادات أخرى" #. module: account #: code:addons/account/wizard/account_open_closed_fiscalyear.py:40 @@ -193,7 +193,7 @@ msgstr "مصدر الحساب" #. module: account #: model:ir.actions.act_window,name:account.act_acc_analytic_acc_5_report_hr_timesheet_invoice_journal msgid "All Analytic Entries" -msgstr "كل السندات التحليلية" +msgstr "كل القيود التحليلية" #. module: account #: model:ir.actions.act_window,name:account.action_view_created_invoice_dashboard @@ -607,6 +607,8 @@ msgid "" "If you unreconciliate transactions, you must also verify all the actions " "that are linked to those transactions because they will not be disable" msgstr "" +"إذا قمت إلغاء تسوية العمليات، عليك أيضاً التحقق من كل الإجراءات المتعلقة لكل " +"هذه المعاملات لأنهم لن يتم إيقافها" #. module: account #: view:analytic.entries.report:0 @@ -631,12 +633,12 @@ msgstr "سجل مركزي" #. module: account #: sql_constraint:account.sequence.fiscalyear:0 msgid "Main Sequence must be different from current !" -msgstr "" +msgstr "المسلسل الرئيسي لابد أن يختلف من الحالي !" #. module: account #: field:account.invoice.tax,tax_amount:0 msgid "Tax Code Amount" -msgstr "" +msgstr "مبلغ رمز الضريبة" #. module: account #: code:addons/account/account.py:2779 @@ -648,7 +650,7 @@ msgstr "" #. module: account #: help:account.bank.statement,balance_end_real:0 msgid "closing balance entered by the cashbox verifier" -msgstr "" +msgstr "رصيد الإغلاق من محقق النقدية" #. module: account #: view:account.period:0 @@ -688,7 +690,7 @@ msgstr "الشركة يجب ان تكون واحدة لجميع المدخلات #: model:ir.actions.act_window,name:account.action_aged_receivable #, python-format msgid "Receivable Accounts" -msgstr "حسابات القبض" +msgstr "حسابات مدينة" #. module: account #: model:ir.model,name:account.model_account_report_general_ledger @@ -756,7 +758,7 @@ msgstr "نوع" #. module: account #: model:ir.model,name:account.model_account_subscription_line msgid "Account Subscription Line" -msgstr "" +msgstr "خط إشتراك الحساب" #. module: account #: help:account.invoice,reference:0 @@ -818,6 +820,8 @@ msgid "" "Can not %s invoice which is already reconciled, invoice should be " "unreconciled first. You can only Refund this invoice" msgstr "" +"لا يمكن لفاتورة %s حيث تمت تسويتها، يجب إلغاء التسوية أولاً. يمكنك رد " +"الفاتورة فقط." #. module: account #: model:ir.actions.act_window,name:account.action_subscription_form_new @@ -840,7 +844,7 @@ msgstr "الشريك التالي للموازنة" msgid "" "You can not do this modification on a confirmed entry ! Please note that you " "can just change some non important fields !" -msgstr "" +msgstr "لا يمكنك التعديلات لقيد مؤكد ! يمكنك تحرير بعض الحقول غير المهمة فقط" #. module: account #: view:account.invoice.report:0 @@ -937,7 +941,7 @@ msgstr "مشتريات" #. module: account #: field:account.model,lines_id:0 msgid "Model Entries" -msgstr "" +msgstr "نموذج للقيود" #. module: account #: field:account.account,code:0 @@ -985,7 +989,7 @@ msgstr "اسم الحساب" #: field:account.chart.template,property_reserve_and_surplus_account:0 #: field:res.company,property_reserve_and_surplus_account:0 msgid "Reserve and Profit/Loss Account" -msgstr "" +msgstr "حساب الإحتياطي و الربح و الخسارة" #. module: account #: field:report.account.receivable,name:0 @@ -1020,7 +1024,7 @@ msgstr "" #. module: account #: view:account.tax:0 msgid "Applicability Options" -msgstr "" +msgstr "خيارات التطابق" #. module: account #: report:account.partner.balance:0 @@ -1080,7 +1084,7 @@ msgstr "" #. module: account #: selection:account.move.line,centralisation:0 msgid "Credit Centralisation" -msgstr "" +msgstr "مركزية الدين" #. module: account #: model:ir.actions.act_window,help:account.action_invoice_tree2 @@ -1112,12 +1116,12 @@ msgstr "رمز الضرائب" #. module: account #: field:account.account,currency_mode:0 msgid "Outgoing Currencies Rate" -msgstr "" +msgstr "معدل العملات الصادرة" #. module: account #: help:account.move.line,move_id:0 msgid "The move of this entry line." -msgstr "" +msgstr "الحركة لخط هذا القيد" #. module: account #: field:account.move.line.reconcile,trans_nbr:0 @@ -1143,7 +1147,7 @@ msgstr "لا يمكنك تعديل/مسح يومية بقيود لهذه الف #: help:account.invoice,origin:0 #: help:account.invoice.line,origin:0 msgid "Reference of the document that produced this invoice." -msgstr "" +msgstr "مرجع المستند لهذه الفاتورة" #. module: account #: view:account.analytic.line:0 @@ -1253,7 +1257,7 @@ msgstr "رصيد أول المدة" #. module: account #: view:account.invoice:0 msgid "Reset to Draft" -msgstr "" +msgstr "إعادة التعيين لمسودة" #. module: account #: view:wizard.multi.charts.accounts:0 @@ -1335,7 +1339,7 @@ msgstr "بحث الضرائب" #. module: account #: model:ir.model,name:account.model_account_analytic_cost_ledger msgid "Account Analytic Cost Ledger" -msgstr "" +msgstr "حساب تحليل تكاليف الأستاذ" #. module: account #: view:account.model:0 @@ -1429,7 +1433,7 @@ msgstr "المحاسبة الإنجليزية" #: selection:account.fiscalyear,state:0 #: selection:account.period,state:0 msgid "Closed" -msgstr "" +msgstr "مغلق" #. module: account #: model:ir.ui.menu,name:account.menu_finance_recurrent_entries @@ -1485,7 +1489,7 @@ msgstr "ذهاب للشريك التالي" #. module: account #: view:account.bank.statement:0 msgid "Search Bank Statements" -msgstr "بحث كشوف حسابات المصرف" +msgstr "بحث كشوف حساب المصرف" #. module: account #: sql_constraint:account.model.line:0 @@ -1498,7 +1502,7 @@ msgstr "" #: view:account.chart.template:0 #: field:account.chart.template,property_account_payable:0 msgid "Payable Account" -msgstr "حساب الدائن" +msgstr "حساب الدائنون" #. module: account #: field:account.tax,account_paid_id:0 @@ -1554,7 +1558,7 @@ msgstr "فاتورة" #: model:process.node,note:account.process_node_analytic0 #: model:process.node,note:account.process_node_analyticcost0 msgid "Analytic costs to invoice" -msgstr "تحليل التكاليف للفاتورة" +msgstr "تكاليف تحليلية للفاتورة" #. module: account #: view:ir.sequence:0 @@ -1603,7 +1607,7 @@ msgstr "" #: field:account.partner.ledger,initial_balance:0 #: field:account.report.general.ledger,initial_balance:0 msgid "Include initial balances" -msgstr "" +msgstr "ضم الأرصدة المبدئية" #. module: account #: field:account.tax.code,sum:0 @@ -1618,7 +1622,7 @@ msgstr "" #. module: account #: view:account.change.currency:0 msgid "This wizard will change the currency of the invoice" -msgstr "" +msgstr "هذا المعالج لتغيير العملة للفاتورة" #. module: account #: model:ir.actions.act_window,help:account.action_account_chart @@ -1631,13 +1635,13 @@ msgstr "" #. module: account #: constraint:account.fiscalyear:0 msgid "Error! You cannot define overlapping fiscal years" -msgstr "" +msgstr "خطأ! لا يمكنك تعريف سنوات مالية متداخلة" #. module: account #: code:addons/account/account_move_line.py:808 #, python-format msgid "The account is not defined to be reconciled !" -msgstr "" +msgstr "لم يعرف الحساب لتسويته !" #. module: account #: field:account.cashbox.line,pieces:0 @@ -1649,7 +1653,7 @@ msgstr "قيم" msgid "" "If the active field is set to False, it will allow you to hide the journal " "period without removing it." -msgstr "" +msgstr "إذا كان الحقل" #. module: account #: view:res.partner:0 @@ -1706,7 +1710,7 @@ msgstr "مرجع العميل" #: code:addons/account/account_cash_statement.py:328 #, python-format msgid "User %s does not have rights to access %s journal !" -msgstr "" +msgstr "المستخدم %s ليس لديه صلاحيات الكتابة و التحرير ليومية %s!" #. module: account #: help:account.period,special:0 @@ -1727,7 +1731,7 @@ msgstr "" #: code:addons/account/account.py:499 #, python-format msgid "You cannot deactivate an account that contains account moves." -msgstr "" +msgstr "لا يمكنك إلغاء نشاط حساب إذا كان يحتوي علي حركات حساب." #. module: account #: field:account.move.line.reconcile,credit:0 @@ -1852,7 +1856,7 @@ msgstr "حساب الإحتياطي و الأرباح و الخسائر" #. module: account #: help:account.bank.statement,balance_end:0 msgid "Closing balance based on Starting Balance and Cash Transactions" -msgstr "" +msgstr "رصيد الإغلاق بناءاً علي رصيد أول المدة و معاملات النقدية" #. module: account #: model:process.node,note:account.process_node_reconciliation0 @@ -1937,7 +1941,7 @@ msgstr "إلغاء تسوية القيود" #. module: account #: field:account.move.reconcile,line_partial_ids:0 msgid "Partial Entry lines" -msgstr "" +msgstr "سطور لقيود جزئية" #. module: account #: view:account.fiscalyear:0 @@ -2287,7 +2291,7 @@ msgstr "تمركز المدين" #: view:account.invoice.confirm:0 #: model:ir.actions.act_window,name:account.action_account_invoice_confirm msgid "Confirm Draft Invoices" -msgstr "" +msgstr "تأكيد الفواتير المسودة" #. module: account #: field:account.entries.report,day:0 @@ -2481,7 +2485,7 @@ msgstr "" #: model:ir.actions.act_window,name:account.action_bank_statement_tree #: model:ir.ui.menu,name:account.menu_bank_statement_tree msgid "Bank Statements" -msgstr "كشوف حسابات البنك" +msgstr "كشوف حساب البنك" #. module: account #: selection:account.tax.template,applicable_type:0 @@ -2571,7 +2575,7 @@ msgstr "" #: code:addons/account/wizard/account_use_model.py:81 #, python-format msgid "You have to define an analytic journal on the '%s' journal!" -msgstr "" +msgstr "عليك بتعريف يومية تحليلية في يومية '%s' !" #. module: account #: view:account.invoice.tax:0 @@ -2863,7 +2867,7 @@ msgstr "" #. module: account #: field:account.move.line,analytic_lines:0 msgid "Analytic lines" -msgstr "" +msgstr "سطور تحليلية" #. module: account #: model:process.node,name:account.process_node_electronicfile0 @@ -2873,7 +2877,7 @@ msgstr "ملف إالكتروني" #. module: account #: view:res.partner:0 msgid "Customer Credit" -msgstr "" +msgstr "دين العميل" #. module: account #: model:ir.model,name:account.model_account_tax_code_template @@ -3000,7 +3004,7 @@ msgstr "الشركاء الباقيين" #: view:account.subscription:0 #: field:account.subscription,lines_id:0 msgid "Subscription Lines" -msgstr "" +msgstr "خطوط الإشتراك" #. module: account #: selection:account.analytic.journal,type:0 @@ -3274,7 +3278,7 @@ msgstr "شجرة الحسابات" #. module: account #: view:account.tax.chart:0 msgid "(If you do not select period it will take all open periods)" -msgstr "" +msgstr "( إذا لم تختار فترة فسيتم أخذ كل الفترات المفتوحة )" #. module: account #: field:account.journal,centralisation:0 @@ -3441,7 +3445,7 @@ msgstr "الكمية" #. module: account #: field:account.invoice.report,address_contact_id:0 msgid "Contact Address Name" -msgstr "" +msgstr "اسم عنوان جهة الإتصال" #. module: account #: field:account.move.line,blocked:0 @@ -3451,7 +3455,7 @@ msgstr "تقاضي" #. module: account #: view:account.analytic.line:0 msgid "Search Analytic Lines" -msgstr "" +msgstr "بحث الخطوط التحليلية" #. module: account #: field:res.partner,property_account_payable:0 @@ -3548,7 +3552,7 @@ msgstr "اسم" #. module: account #: model:ir.model,name:account.model_account_aged_trial_balance msgid "Account Aged Trial balance Report" -msgstr "" +msgstr "ميزان المراجعة للحسابات المعمرة" #. module: account #: field:account.move.line,date:0 @@ -3990,7 +3994,7 @@ msgstr "إحصائيات الفواتير" #. module: account #: model:process.transition,note:account.process_transition_paymentorderreconcilation0 msgid "Bank statements are entered in the system." -msgstr "" +msgstr "كشوف حسابات البنك تم إدخالها في النظام." #. module: account #: code:addons/account/wizard/account_reconcile.py:133 @@ -4034,7 +4038,7 @@ msgstr "طباعة الفاتورة" #. module: account #: view:account.tax.template:0 msgid "Credit Notes" -msgstr "" +msgstr "أوراق دائنة" #. module: account #: code:addons/account/account.py:2067 @@ -4136,7 +4140,7 @@ msgstr "" #. module: account #: help:account.partner.ledger,reconcil:0 msgid "Consider reconciled entries" -msgstr "" +msgstr "نظر القيود المسواه" #. module: account #: model:ir.actions.act_window,name:account.action_validate_account_move_line @@ -4162,7 +4166,7 @@ msgstr "" #: constraint:account.account:0 #: constraint:account.tax.code:0 msgid "Error ! You can not create recursive accounts." -msgstr "" +msgstr "خطأ ! لا يمكن إنشاء حسابات تكرارية." #. module: account #: constraint:account.account:0 @@ -4213,7 +4217,7 @@ msgstr "" #: code:addons/account/invoice.py:73 #, python-format msgid "You must define an analytic journal of type '%s' !" -msgstr "" +msgstr "عليك بتعريف يومية تحليلية في يومية '%s' !" #. module: account #: code:addons/account/account.py:1397 @@ -4245,7 +4249,7 @@ msgstr "" #. module: account #: report:account.account.balance.landscape:0 msgid "Account Balance -" -msgstr "" +msgstr "رصيد الحساب -" #. module: account #: field:account.automatic.reconcile,date1:0 @@ -4344,7 +4348,7 @@ msgstr "" #. module: account #: model:process.transition,note:account.process_transition_suppliercustomerinvoice0 msgid "Draft invoices are validated. " -msgstr "" +msgstr "تم التحقق للفواتير المؤقتة. " #. module: account #: view:account.bank.statement:0 @@ -4416,7 +4420,7 @@ msgstr "" #: code:addons/account/wizard/account_report_common.py:126 #, python-format msgid "Error" -msgstr "" +msgstr "خطأ" #. module: account #: field:account.analytic.Journal.report,date2:0 @@ -4510,7 +4514,7 @@ msgstr "" #: code:addons/account/account.py:940 #, python-format msgid "Start period should be smaller then End period" -msgstr "" +msgstr "بداية الفترة يجب أن تكون أقل من نهاية الفترة" #. module: account #: selection:account.automatic.reconcile,power:0 @@ -4629,7 +4633,7 @@ msgstr "" #: code:addons/account/account.py:1167 #, python-format msgid "Integrity Error !" -msgstr "" +msgstr "خطأ بالسلامة !" #. module: account #: field:account.tax.template,description:0 @@ -4815,12 +4819,12 @@ msgstr "" #. module: account #: view:account.move.line:0 msgid "Debit/Credit" -msgstr "" +msgstr "مدين / دائن" #. module: account #: view:report.hr.timesheet.invoice.journal:0 msgid "Analytic Entries Stats" -msgstr "" +msgstr "إحصائيات القيود التحليلية" #. module: account #: model:ir.actions.act_window,name:account.action_account_tax_code_template_form @@ -4939,7 +4943,7 @@ msgstr "" #: code:addons/account/wizard/account_move_journal.py:63 #, python-format msgid "Configuration Error !" -msgstr "" +msgstr "خطأ في الإعدادات!" #. module: account #: help:account.partner.reconcile.process,to_reconcile:0 @@ -4952,12 +4956,12 @@ msgstr "" #. module: account #: view:account.subscription.line:0 msgid "Subscription lines" -msgstr "" +msgstr "خطوط الإشتراك" #. module: account #: field:account.entries.report,quantity:0 msgid "Products Quantity" -msgstr "" +msgstr "كمية المنتجات" #. module: account #: view:account.entries.report:0 @@ -4966,14 +4970,14 @@ msgstr "" #: selection:account.move,state:0 #: view:account.move.line:0 msgid "Unposted" -msgstr "" +msgstr "غير مرحله" #. module: account #: view:account.change.currency:0 #: model:ir.actions.act_window,name:account.action_account_change_currency #: model:ir.model,name:account.model_account_change_currency msgid "Change Currency" -msgstr "" +msgstr "تغيير العملة" #. module: account #: model:process.node,note:account.process_node_accountingentries0 @@ -4984,7 +4988,7 @@ msgstr "" #. module: account #: view:account.invoice:0 msgid "Payment Date" -msgstr "" +msgstr "تاريخ الدفع" #. module: account #: selection:account.automatic.reconcile,power:0 @@ -4997,7 +5001,7 @@ msgstr "" #: model:ir.actions.act_window,name:account.action_analytic_open #: model:ir.ui.menu,name:account.account_analytic_def_account msgid "Analytic Accounts" -msgstr "" +msgstr "حسابات تحليلية" #. module: account #: help:account.account.type,report_type:0 @@ -5024,7 +5028,7 @@ msgstr "" #: field:account.model.line,amount_currency:0 #: field:account.move.line,amount_currency:0 msgid "Amount Currency" -msgstr "" +msgstr "مبلغ العملة" #. module: account #: code:addons/account/wizard/account_validate_account_move.py:39 @@ -5057,7 +5061,7 @@ msgstr "" #. module: account #: view:account.move.line:0 msgid "Number (Move)" -msgstr "" +msgstr "رقم (حركة)" #. module: account #: view:account.invoice.refund:0 @@ -5108,7 +5112,7 @@ msgstr "" #: field:account.print.journal,amount_currency:0 #: field:account.report.general.ledger,amount_currency:0 msgid "With Currency" -msgstr "" +msgstr "مع العملة" #. module: account #: view:account.bank.statement:0 @@ -5134,7 +5138,7 @@ msgstr "" #. module: account #: view:board.board:0 msgid "Aged Receivables" -msgstr "" +msgstr "الديون المشكوك في تحصيلها" #. module: account #: model:ir.actions.act_window,name:account.action_account_automatic_reconcile @@ -5186,7 +5190,7 @@ msgstr "" #: model:ir.actions.act_window,name:account.action_account_analytic_journal_form #: model:ir.ui.menu,name:account.account_def_analytic_journal msgid "Analytic Journals" -msgstr "" +msgstr "يوميات تحليلية" #. module: account #: field:account.account,child_id:0 @@ -5203,12 +5207,12 @@ msgstr "" #. module: account #: field:res.partner,debit:0 msgid "Total Payable" -msgstr "" +msgstr "إجمالي مستحق الدفع" #. module: account #: model:ir.actions.act_window,name:account.action_account_analytic_account_line_extended_form msgid "account.analytic.line.extended" -msgstr "" +msgstr "account.analytic.line.extended" #. module: account #: selection:account.bank.statement.line,type:0 @@ -5269,7 +5273,7 @@ msgstr "" #: model:ir.actions.act_window,name:account.action_account_state_open #: model:ir.model,name:account.model_account_state_open msgid "Account State Open" -msgstr "" +msgstr "فتح حالة الحساب" #. module: account #: report:account.analytic.account.quantity_cost_ledger:0 @@ -5323,7 +5327,7 @@ msgstr "" #: field:report.account.sales,period_id:0 #: field:report.account_type.sales,period_id:0 msgid "Force Period" -msgstr "" +msgstr "قوة الفترة" #. module: account #: view:account.invoice.report:0 @@ -5335,7 +5339,7 @@ msgstr "" #: code:addons/account/wizard/account_change_currency.py:60 #, python-format msgid "New currency is not confirured properly !" -msgstr "" +msgstr "العملة الجديدة لم يتم ضبطها بشكل صحيح !" #. module: account #: field:account.aged.trial.balance,filter:0 @@ -5354,7 +5358,7 @@ msgstr "" #: field:account.report.general.ledger,filter:0 #: field:account.vat.declaration,filter:0 msgid "Filter by" -msgstr "" +msgstr "ترشيح بـ" #. module: account #: code:addons/account/account_move_line.py:1131 @@ -5379,7 +5383,7 @@ msgstr "" #: model:ir.actions.act_window,name:account.action_account_general_journal #: model:ir.model,name:account.model_account_general_journal msgid "Account General Journal" -msgstr "" +msgstr "حساب اليومية العامة" #. module: account #: code:addons/account/report/common_report_header.py:100 @@ -5403,7 +5407,7 @@ msgstr "" #. module: account #: field:account.payment.term.line,days:0 msgid "Number of Days" -msgstr "" +msgstr "عدد الأيام" #. module: account #: selection:account.automatic.reconcile,power:0 @@ -5437,7 +5441,7 @@ msgstr "" #: report:account.analytic.account.cost_ledger:0 #: report:account.analytic.account.quantity_cost_ledger:0 msgid "Printing date" -msgstr "" +msgstr "تاريخ الطباعة" #. module: account #: selection:account.account.type,close_method:0 @@ -5455,7 +5459,7 @@ msgstr "" #: model:ir.actions.act_window,name:account.action_invoice_tree3 #: model:ir.ui.menu,name:account.menu_action_invoice_tree3 msgid "Customer Refunds" -msgstr "" +msgstr "رد للعملاء" #. module: account #: view:account.payment.term.line:0 @@ -5465,7 +5469,7 @@ msgstr "" #. module: account #: field:account.journal.period,name:0 msgid "Journal-Period Name" -msgstr "" +msgstr "اسم الفترة لليومية" #. module: account #: field:account.invoice.tax,factor_base:0 @@ -5501,7 +5505,7 @@ msgstr "" #: model:ir.actions.act_window,name:account.action_analytic_entries_report #: model:ir.ui.menu,name:account.menu_action_analytic_entries_report msgid "Analytic Entries Analysis" -msgstr "" +msgstr "تحليل القيود التحليلية" #. module: account #: selection:account.aged.trial.balance,direction_selection:0 @@ -5511,7 +5515,7 @@ msgstr "" #. module: account #: view:account.analytic.line:0 msgid "Analytic Entry" -msgstr "" +msgstr "قيد تحليلي" #. module: account #: view:res.company:0 @@ -5738,7 +5742,7 @@ msgstr "" #. module: account #: field:account.journal,default_credit_account_id:0 msgid "Default Credit Account" -msgstr "" +msgstr "حساب الدائنون الإفتراضي" #. module: account #: view:account.installer:0 @@ -5748,7 +5752,7 @@ msgstr "" #. module: account #: view:account.payment.term.line:0 msgid " number of days: 30" -msgstr "" +msgstr " عدد الأيام: 30" #. module: account #: help:account.analytic.line,currency_id:0 @@ -5793,18 +5797,18 @@ msgstr "" #. module: account #: view:project.account.analytic.line:0 msgid "View Account Analytic Lines" -msgstr "" +msgstr "عرض خطوط الحساب التحليلي" #. module: account #: selection:account.account.type,report_type:0 msgid "Balance Sheet (Liability Accounts)" -msgstr "" +msgstr "الميزانية (لحسابات الأصول)" #. module: account #: field:account.invoice,internal_number:0 #: field:report.invoice.created,number:0 msgid "Invoice Number" -msgstr "" +msgstr "رقم الفاتورة" #. module: account #: help:account.tax,include_base_amount:0 @@ -5822,7 +5826,7 @@ msgstr "" #: model:ir.actions.act_window,name:account.action_account_analytic_invert_balance #: model:ir.actions.report.xml,name:account.account_analytic_account_inverted_balance msgid "Inverted Analytic Balance" -msgstr "" +msgstr "الرصيد التحليلي المعكوس" #. module: account #: field:account.tax.template,applicable_type:0 @@ -5854,7 +5858,7 @@ msgstr "" #: model:ir.actions.act_window,name:account.action_account_analytic_journal_open_form #: model:ir.ui.menu,name:account.account_analytic_journal_entries msgid "Analytic Journal Items" -msgstr "" +msgstr "عناصر اليومية التحليلية" #. module: account #: view:account.fiscalyear.close:0 @@ -5900,7 +5904,7 @@ msgstr "" #: code:addons/account/wizard/account_report_aged_partner_balance.py:57 #, python-format msgid "Enter a Start date !" -msgstr "" +msgstr "أدخل تاريخ البدء !" #. module: account #: report:account.invoice:0 @@ -5918,7 +5922,7 @@ msgstr "" #. module: account #: field:account.bank.statement,move_line_ids:0 msgid "Entry lines" -msgstr "" +msgstr "سطور القيود" #. module: account #: field:account.move.line,centralisation:0 @@ -5988,7 +5992,7 @@ msgstr "" #: model:ir.actions.report.xml,name:account.analytic_journal_print #: model:ir.model,name:account.model_account_analytic_journal msgid "Analytic Journal" -msgstr "" +msgstr "يومية تحليلية" #. module: account #: view:account.entries.report:0 @@ -6037,7 +6041,7 @@ msgstr "" #. module: account #: model:ir.model,name:account.model_analytic_entries_report msgid "Analytic Entries Statistics" -msgstr "" +msgstr "إحصائيات القيود التحليلية" #. module: account #: code:addons/account/account_analytic_line.py:143 @@ -6049,7 +6053,7 @@ msgstr "" #. module: account #: view:account.use.model:0 msgid "Create manual recurring entries in a chosen journal." -msgstr "" +msgstr "إنشاء قيد يومية تكرارية يدوياً في يومية مختارة." #. module: account #: code:addons/account/account.py:1393 @@ -6087,7 +6091,7 @@ msgstr "" #: code:addons/account/account_move_line.py:1003 #, python-format msgid "Total debit" -msgstr "" +msgstr "إجمالي الخصم" #. module: account #: code:addons/account/account_move_line.py:781 @@ -6193,7 +6197,7 @@ msgstr "" #. module: account #: selection:account.journal.period,state:0 msgid "Printed" -msgstr "" +msgstr "مطبوع" #. module: account #: view:account.analytic.line:0 @@ -6290,7 +6294,7 @@ msgstr "" #: code:addons/account/wizard/account_change_currency.py:65 #, python-format msgid "Currnt currency is not confirured properly !" -msgstr "" +msgstr "العملة الجديدة لم يتم ضبطها بشكل صحيح !" #. module: account #: model:ir.model,name:account.model_account_move_reconcile @@ -6310,7 +6314,7 @@ msgstr "" #: model:ir.actions.report.xml,name:account.account_general_ledger #: model:ir.ui.menu,name:account.menu_general_ledger msgid "General Ledger" -msgstr "" +msgstr "الأستاذ العام" #. module: account #: model:process.transition,note:account.process_transition_paymentorderbank0 @@ -6358,7 +6362,7 @@ msgstr "" #: report:account.invoice:0 #: report:account.partner.balance:0 msgid "Total:" -msgstr "" +msgstr "الإجمالي:" #. module: account #: code:addons/account/account.py:2050 @@ -6401,7 +6405,7 @@ msgstr "" #: model:ir.actions.act_window,name:account.action_invoice_tree1 #: model:ir.ui.menu,name:account.menu_action_invoice_tree1 msgid "Customer Invoices" -msgstr "فواتير العميل" +msgstr "فواتير العملاء" #. module: account #: field:account.move.line.reconcile,writeoff:0 @@ -6411,7 +6415,7 @@ msgstr "" #. module: account #: view:account.analytic.line:0 msgid "Sales" -msgstr "" +msgstr "المبيعات" #. module: account #: view:account.journal.column:0 @@ -6460,7 +6464,7 @@ msgstr "" #. module: account #: model:ir.actions.act_window,name:account.act_account_acount_move_line_open_unreconciled msgid "Unreconciled Entries" -msgstr "" +msgstr "قيود غير مسواه" #. module: account #: model:ir.ui.menu,name:account.menu_menu_Bank_process @@ -6491,7 +6495,7 @@ msgstr "" #: view:analytic.entries.report:0 #: field:analytic.entries.report,product_uom_id:0 msgid "Product UOM" -msgstr "" +msgstr "وحدة قياس المنتج" #. module: account #: model:ir.actions.act_window,help:account.action_view_bank_statement_tree @@ -6528,7 +6532,7 @@ msgstr "" #: view:account.move:0 #: view:account.move.line:0 msgid "Analytic Lines" -msgstr "" +msgstr "سطور تحليلية" #. module: account #: model:ir.actions.act_window,help:account.action_account_analytic_account_tree2 @@ -6579,7 +6583,7 @@ msgstr "" #. module: account #: field:account.account.template,parent_id:0 msgid "Parent Account Template" -msgstr "" +msgstr "قالب حساب رئيسي" #. module: account #: view:account.bank.statement:0 @@ -6638,7 +6642,7 @@ msgstr "" #. module: account #: help:res.partner,credit:0 msgid "Total amount this customer owes you." -msgstr "" +msgstr "إجمالي المبلغ المدين لهذا العميل لك." #. module: account #: model:ir.model,name:account.model_ir_sequence @@ -6660,12 +6664,12 @@ msgstr "" #: code:addons/account/report/account_partner_balance.py:115 #, python-format msgid "Unknown Partner" -msgstr "" +msgstr "شريك مجهول" #. module: account #: view:account.bank.statement:0 msgid "Opening Balance" -msgstr "" +msgstr "رصيد أول المدة" #. module: account #: help:account.journal,centralisation:0 @@ -6678,7 +6682,7 @@ msgstr "" #. module: account #: field:account.bank.statement,closing_date:0 msgid "Closed On" -msgstr "" +msgstr "إقفال يوم" #. module: account #: model:ir.model,name:account.model_account_bank_statement_line @@ -6875,7 +6879,7 @@ msgstr "" #. module: account #: view:account.move.line:0 msgid "Optional Information" -msgstr "" +msgstr "معلومات خيارية" #. module: account #: view:account.analytic.line:0 @@ -6914,13 +6918,13 @@ msgstr "" #: code:addons/account/installer.py:432 #, python-format msgid "Sales Journal" -msgstr "" +msgstr "يومية المبيعات" #. module: account #: code:addons/account/wizard/account_move_journal.py:104 #, python-format msgid "Open Journal Items !" -msgstr "" +msgstr "فتح عناصر اليومية !" #. module: account #: model:ir.model,name:account.model_account_invoice_tax @@ -6937,7 +6941,7 @@ msgstr "" #: view:product.product:0 #: view:product.template:0 msgid "Sales Properties" -msgstr "" +msgstr "خصائص المبيعات" #. module: account #: model:ir.ui.menu,name:account.menu_manual_reconcile @@ -6947,7 +6951,7 @@ msgstr "" #. module: account #: report:account.overdue:0 msgid "Total amount due:" -msgstr "" +msgstr "إجمالي المبلغ المستحق:" #. module: account #: field:account.analytic.chart,to_date:0 @@ -6986,7 +6990,7 @@ msgstr "" #: code:addons/account/report/account_partner_balance.py:304 #, python-format msgid "Payable Accounts" -msgstr "" +msgstr "حسابات الدائنون" #. module: account #: model:ir.model,name:account.model_account_chart_template @@ -7044,7 +7048,7 @@ msgstr "" #. module: account #: model:ir.model,name:account.model_account_bs_report msgid "Account Balance Sheet Report" -msgstr "" +msgstr "تقرير الميزانية للحسابات" #. module: account #: help:account.tax,price_include:0 @@ -7062,7 +7066,7 @@ msgstr "" #. module: account #: view:report.account_type.sales:0 msgid "Sales by Account type" -msgstr "" +msgstr "المبيعات حسب نوع الحساب" #. module: account #: help:account.invoice,move_id:0 @@ -7087,7 +7091,7 @@ msgstr "" #. module: account #: view:account.payment.term.line:0 msgid " number of days: 14" -msgstr "" +msgstr " عدد الأيام: 14" #. module: account #: view:analytic.entries.report:0 @@ -7108,7 +7112,7 @@ msgstr "أصل" #. module: account #: field:account.installer.modules,account_analytic_plans:0 msgid "Multiple Analytic Plans" -msgstr "" +msgstr "خطط تحليلية متعددة" #. module: account #: help:account.payment.term.line,days2:0 @@ -7178,7 +7182,7 @@ msgstr "" #: code:addons/account/invoice.py:720 #, python-format msgid "Warning !" -msgstr "" +msgstr "تحذير !" #. module: account #: field:account.entries.report,move_line_state:0 @@ -7195,7 +7199,7 @@ msgstr "" #: view:account.subscription.generate:0 #: model:ir.model,name:account.model_account_subscription_generate msgid "Subscription Compute" -msgstr "" +msgstr "حساب الإشتراك" #. module: account #: report:account.move.voucher:0 @@ -7229,7 +7233,7 @@ msgstr "" #. module: account #: help:account.change.currency,currency_id:0 msgid "Select a currency to apply on the invoice" -msgstr "" +msgstr "اختر عملة للفاتورة" #. module: account #: code:addons/account/wizard/account_invoice_refund.py:100 @@ -7241,7 +7245,7 @@ msgstr "" #: code:addons/account/invoice.py:787 #, python-format msgid "No Invoice Lines !" -msgstr "" +msgstr "لا سطور للفاتورة !" #. module: account #: view:account.bank.statement:0 @@ -7261,7 +7265,7 @@ msgstr "" #: field:account.subscription,state:0 #: field:report.invoice.created,state:0 msgid "State" -msgstr "" +msgstr "الحالة" #. module: account #: help:account.open.closed.fiscalyear,fyear_id:0 @@ -7324,7 +7328,7 @@ msgstr "" #. module: account #: report:account.analytic.account.inverted.balance:0 msgid "Inverted Analytic Balance -" -msgstr "" +msgstr "رصيد تحليلي معكوس -" #. module: account #: view:account.move.bank.reconcile:0 @@ -7357,7 +7361,7 @@ msgstr "" #: view:account.invoice:0 #: field:account.invoice,comment:0 msgid "Additional Information" -msgstr "" +msgstr "معلومات أضافية" #. module: account #: view:account.installer:0 @@ -7368,7 +7372,7 @@ msgstr "" #: view:account.invoice.report:0 #: field:account.invoice.report,residual:0 msgid "Total Residual" -msgstr "" +msgstr "إجمالي المتبقي" #. module: account #: model:process.node,note:account.process_node_invoiceinvoice0 @@ -7480,7 +7484,7 @@ msgstr "" #. module: account #: report:account.invoice:0 msgid "Net Total:" -msgstr "" +msgstr "صافي الإجمالي:" #. module: account #: model:ir.ui.menu,name:account.menu_finance_generic_reporting @@ -7553,7 +7557,7 @@ msgstr "" #. module: account #: field:account.account,company_currency_id:0 msgid "Company Currency" -msgstr "" +msgstr "عملة الشركة" #. module: account #: model:process.node,name:account.process_node_paymententries0 @@ -7585,12 +7589,12 @@ msgstr "" #. module: account #: model:ir.model,name:account.model_account_analytic_inverted_balance msgid "Account Analytic Inverted Balance" -msgstr "" +msgstr "رصيد للحساب التحليلي المعكوس" #. module: account #: model:ir.model,name:account.model_account_common_report msgid "Account Common Report" -msgstr "" +msgstr "تقرير مشترك للحساب" #. module: account #: model:process.transition,name:account.process_transition_filestatement0 @@ -7612,13 +7616,13 @@ msgstr "" #: model:ir.actions.act_window,name:account.action_account_type_form #: model:ir.ui.menu,name:account.menu_action_account_type_form msgid "Account Types" -msgstr "" +msgstr "أنواع الحساب" #. module: account #: code:addons/account/invoice.py:897 #, python-format msgid "Cannot create invoice move on centralised journal" -msgstr "" +msgstr "لا يمكن إنشاء حركة فاتورة حيث اليومية مركزية" #. module: account #: field:account.account.type,report_type:0 @@ -7643,17 +7647,17 @@ msgstr "" #: view:account.chart.template:0 #: field:account.chart.template,property_account_receivable:0 msgid "Receivable Account" -msgstr "" +msgstr "حساب المدينون" #. module: account #: view:account.bank.statement:0 msgid "CashBox Balance" -msgstr "" +msgstr "رصيد صندوق النقدية" #. module: account #: model:ir.model,name:account.model_account_fiscalyear_close_state msgid "Fiscalyear Close state" -msgstr "" +msgstr "حالة إغلاق السنة المالية" #. module: account #: field:account.invoice.refund,journal_id:0 @@ -7673,7 +7677,7 @@ msgstr "" #: report:pl.account:0 #: report:pl.account.horizontal:0 msgid "Filter By" -msgstr "" +msgstr "ترشيح بـ" #. module: account #: model:ir.actions.act_window,help:account.action_invoice_tree1 @@ -7689,7 +7693,7 @@ msgstr "" #: view:board.board:0 #: model:ir.actions.act_window,name:account.action_company_analysis_tree msgid "Company Analysis" -msgstr "" +msgstr "تحليل الشركة" #. module: account #: help:account.invoice,account_id:0 @@ -7706,14 +7710,14 @@ msgstr "" #. module: account #: model:ir.model,name:account.model_account_payment_term_line msgid "Payment Term Line" -msgstr "" +msgstr "سطر شروط السداد" #. module: account #: code:addons/account/account.py:2794 #: code:addons/account/installer.py:452 #, python-format msgid "Purchase Journal" -msgstr "" +msgstr "يومية المشتريات" #. module: account #: view:account.invoice.refund:0 @@ -7723,17 +7727,17 @@ msgstr "" #. module: account #: field:account.invoice.line,price_subtotal:0 msgid "Subtotal" -msgstr "" +msgstr "المجموع الفرعي" #. module: account #: view:account.vat.declaration:0 msgid "Print Tax Statement" -msgstr "" +msgstr "طباعة كشف الضريبة" #. module: account #: view:account.model.line:0 msgid "Journal Entry Model Line" -msgstr "" +msgstr "خط نموذج قيد اليومية" #. module: account #: view:account.invoice:0 @@ -7742,7 +7746,7 @@ msgstr "" #: field:account.invoice.report,date_due:0 #: field:report.invoice.created,date_due:0 msgid "Due Date" -msgstr "" +msgstr "تاريخ الإستحقاق" #. module: account #: model:ir.ui.menu,name:account.menu_account_supplier @@ -7759,12 +7763,12 @@ msgstr "" #. module: account #: view:account.journal:0 msgid "Accounts Type Allowed (empty for no control)" -msgstr "" +msgstr "أنواع الحسابات المسموحة (فارغ للغير رقابية)" #. module: account #: view:res.partner:0 msgid "Supplier Accounting Properties" -msgstr "" +msgstr "خصائص محاسبة المورد" #. module: account #: help:account.move.line,amount_residual:0 @@ -7776,23 +7780,23 @@ msgstr "" #. module: account #: view:account.payment.term.line:0 msgid " valuation: balance" -msgstr "" +msgstr " التقييم: رصيد" #. module: account #: view:account.tax.code:0 msgid "Statistics" -msgstr "" +msgstr "إحصائيات" #. module: account #: field:account.analytic.chart,from_date:0 #: field:project.account.analytic.line,from_date:0 msgid "From" -msgstr "" +msgstr "من" #. module: account #: model:ir.model,name:account.model_account_fiscalyear_close msgid "Fiscalyear Close" -msgstr "" +msgstr "إغلاق السنة المالية" #. module: account #: sql_constraint:account.account:0 @@ -7802,18 +7806,18 @@ msgstr "" #. module: account #: model:ir.actions.act_window,name:account.act_account_journal_2_account_invoice_opened msgid "Unpaid Invoices" -msgstr "" +msgstr "فواتير غير مدفوعة" #. module: account #: field:account.move.line.reconcile,debit:0 msgid "Debit amount" -msgstr "" +msgstr "المبلغ المدين" #. module: account #: view:board.board:0 #: model:ir.actions.act_window,name:account.action_treasory_graph msgid "Treasury" -msgstr "" +msgstr "الخزينة" #. module: account #: view:account.aged.trial.balance:0 @@ -7824,7 +7828,7 @@ msgstr "" #: view:account.analytic.inverted.balance:0 #: view:account.common.report:0 msgid "Print" -msgstr "" +msgstr "طباعة" #. module: account #: view:account.journal:0 @@ -7836,30 +7840,30 @@ msgstr "" #: model:ir.actions.act_window,name:account.action_account_analytic_chart #: model:ir.ui.menu,name:account.menu_action_analytic_account_tree2 msgid "Chart of Analytic Accounts" -msgstr "" +msgstr "شجرة الحسابات التحليلية" #. module: account #: model:ir.ui.menu,name:account.menu_configuration_misc msgid "Miscellaneous" -msgstr "" +msgstr "متفرقات" #. module: account #: help:res.partner,debit:0 msgid "Total amount you have to pay to this supplier." -msgstr "" +msgstr "إجمالي المبلغ الواجب دفعه لهذا المورد." #. module: account #: model:process.node,name:account.process_node_analytic0 #: model:process.node,name:account.process_node_analyticcost0 msgid "Analytic Costs" -msgstr "" +msgstr "تكاليف تحليلية" #. module: account #: field:account.analytic.journal,name:0 #: report:account.general.journal:0 #: field:account.journal,name:0 msgid "Journal Name" -msgstr "" +msgstr "اسم اليومية" #. module: account #: help:account.invoice,internal_number:0 @@ -7880,12 +7884,12 @@ msgstr "" #: code:addons/account/account_move_line.py:1214 #, python-format msgid "Bad account!" -msgstr "" +msgstr "حساب سئ!" #. module: account #: help:account.chart,fiscalyear:0 msgid "Keep empty for all open fiscal years" -msgstr "" +msgstr "اتركه فارغ لكل السنوات المالية المفتوحة" #. module: account #: code:addons/account/account_move_line.py:1056 @@ -7926,7 +7930,7 @@ msgstr "" #: field:report.account_type.sales,currency_id:0 #: field:report.invoice.created,currency_id:0 msgid "Currency" -msgstr "" +msgstr "عملة" #. module: account #: help:account.bank.statement.line,sequence:0 @@ -7954,12 +7958,12 @@ msgstr "" #. module: account #: model:ir.actions.act_window,name:account.act_account_acount_move_line_reconcile_open msgid "Reconciled entries" -msgstr "" +msgstr "قيود مسواه" #. module: account #: field:account.invoice,address_contact_id:0 msgid "Contact Address" -msgstr "" +msgstr "عنوان جهة الإتصال" #. module: account #: help:account.invoice,state:0 @@ -7977,34 +7981,34 @@ msgstr "" #. module: account #: field:account.invoice.refund,period:0 msgid "Force period" -msgstr "" +msgstr "قوة الفترة" #. module: account #: model:ir.model,name:account.model_account_partner_balance msgid "Print Account Partner Balance" -msgstr "" +msgstr "طباعة رصيد حساب الشريك" #. module: account #: field:res.partner,contract_ids:0 msgid "Contracts" -msgstr "" +msgstr "عقود" #. module: account #: field:account.cashbox.line,ending_id:0 #: field:account.cashbox.line,starting_id:0 #: field:account.entries.report,reconcile_id:0 msgid "unknown" -msgstr "" +msgstr "مجهول" #. module: account #: field:account.fiscalyear.close,journal_id:0 msgid "Opening Entries Journal" -msgstr "" +msgstr "يومية القيود الإفتتاحية" #. module: account #: model:process.transition,note:account.process_transition_customerinvoice0 msgid "Draft invoices are checked, validated and printed." -msgstr "" +msgstr "تم التعليم و التحقق و طباعة الفواتير المؤقتة" #. module: account #: help:account.chart.template,property_reserve_and_surplus_account:0 @@ -8017,12 +8021,12 @@ msgstr "" #. module: account #: field:account.invoice,reference_type:0 msgid "Reference Type" -msgstr "" +msgstr "نوع المرجع" #. module: account #: view:account.analytic.cost.ledger.journal.report:0 msgid "Cost Ledger for period" -msgstr "" +msgstr "أستاذ التكاليف لفترة" #. module: account #: help:account.tax,child_depend:0 @@ -8035,12 +8039,12 @@ msgstr "" #. module: account #: selection:account.tax,applicable_type:0 msgid "Given by Python Code" -msgstr "" +msgstr "معطي بلغة البايثون" #. module: account #: field:account.analytic.journal,code:0 msgid "Journal Code" -msgstr "" +msgstr "رمز اليومية" #. module: account #: help:account.tax.code,sign:0 @@ -8055,19 +8059,19 @@ msgstr "" #: field:account.move.line,amount_residual:0 #: field:account.move.line,amount_residual_currency:0 msgid "Residual Amount" -msgstr "" +msgstr "المبلغ المتبقي" #. module: account #: field:account.invoice,move_lines:0 #: field:account.move.reconcile,line_id:0 msgid "Entry Lines" -msgstr "" +msgstr "سطور القيود" #. module: account #: model:ir.actions.act_window,name:account.action_open_journal_button #: model:ir.actions.act_window,name:account.action_validate_account_move msgid "Open Journal" -msgstr "" +msgstr "فتح اليومية" #. module: account #: report:account.analytic.account.journal:0 @@ -8079,14 +8083,14 @@ msgstr "" #: report:account.analytic.account.journal:0 #: report:account.analytic.account.quantity_cost_ledger:0 msgid "Period from" -msgstr "" +msgstr "من الفترة" #. module: account #: code:addons/account/account.py:2817 #: code:addons/account/installer.py:476 #, python-format msgid "Sales Refund Journal" -msgstr "" +msgstr "يومية رد المبيعات" #. module: account #: code:addons/account/account.py:927 @@ -8101,12 +8105,12 @@ msgstr "" #: view:account.move.line:0 #: view:account.payment.term:0 msgid "Information" -msgstr "" +msgstr "معلومات" #. module: account #: model:process.node,note:account.process_node_bankstatement0 msgid "Registered payment" -msgstr "" +msgstr "دفع مسجل" #. module: account #: view:account.fiscalyear.close.state:0 @@ -8116,7 +8120,7 @@ msgstr "" #. module: account #: view:account.analytic.line:0 msgid "Product Information" -msgstr "" +msgstr "معلومات المنتج" #. module: account #: report:account.analytic.account.journal:0 @@ -8124,34 +8128,34 @@ msgstr "" #: view:account.move.line:0 #: model:ir.ui.menu,name:account.next_id_40 msgid "Analytic" -msgstr "" +msgstr "تحليلي" #. module: account #: model:process.node,name:account.process_node_invoiceinvoice0 #: model:process.node,name:account.process_node_supplierinvoiceinvoice0 msgid "Create Invoice" -msgstr "" +msgstr "إنشاء فاتورة" #. module: account #: field:account.installer,purchase_tax:0 msgid "Purchase Tax(%)" -msgstr "" +msgstr "ضريبة المشتريات (%)" #. module: account #: code:addons/account/invoice.py:787 #, python-format msgid "Please create some invoice lines." -msgstr "" +msgstr "قم بإنشاء سطور للفاتورة." #. module: account #: report:account.overdue:0 msgid "Dear Sir/Madam," -msgstr "" +msgstr "عزيزي سيدي / سيدتي،" #. module: account #: view:account.installer.modules:0 msgid "Configure Your Accounting Application" -msgstr "" +msgstr "إعداد التطبيق المحاسبي الخاص بك" #. module: account #: code:addons/account/account.py:2820 @@ -8180,12 +8184,12 @@ msgstr "" #: field:account.period,date_stop:0 #: model:ir.ui.menu,name:account.menu_account_end_year_treatments msgid "End of Period" -msgstr "" +msgstr "نهاية الفترة" #. module: account #: field:account.installer.modules,account_followup:0 msgid "Followups Management" -msgstr "" +msgstr "إدارة المتابعة" #. module: account #: report:account.account.balance:0 @@ -8203,7 +8207,7 @@ msgstr "" #: report:pl.account:0 #: report:pl.account.horizontal:0 msgid "Start Period" -msgstr "" +msgstr "بداية الفترة" #. module: account #: code:addons/account/account.py:2333 @@ -8214,12 +8218,12 @@ msgstr "" #. module: account #: field:account.aged.trial.balance,direction_selection:0 msgid "Analysis Direction" -msgstr "" +msgstr "إتجاه التحليل" #. module: account #: field:res.partner,ref_companies:0 msgid "Companies that refers to partner" -msgstr "" +msgstr "شركات تشير إلي شركاء" #. module: account #: view:account.journal:0 @@ -8228,14 +8232,14 @@ msgstr "" #: field:account.journal.view,name:0 #: model:ir.model,name:account.model_account_journal_view msgid "Journal View" -msgstr "" +msgstr "عرض اليومية" #. module: account #: view:account.move.line:0 #: code:addons/account/account_move_line.py:1006 #, python-format msgid "Total credit" -msgstr "" +msgstr "إجمالي الإئتمان" #. module: account #: model:process.transition,note:account.process_transition_suppliervalidentries0 @@ -8253,17 +8257,17 @@ msgstr "" #. module: account #: report:account.overdue:0 msgid "Best regards." -msgstr "" +msgstr "مع خالص التحيات." #. module: account #: view:account.invoice:0 msgid "Unpaid" -msgstr "" +msgstr "غير مدفوعة" #. module: account #: report:account.overdue:0 msgid "Document: Customer account statement" -msgstr "" +msgstr "مستند: كشف حساب عميل" #. module: account #: constraint:account.move.line:0 @@ -8274,7 +8278,7 @@ msgstr "" #: code:addons/account/wizard/account_change_currency.py:71 #, python-format msgid "Current currency is not confirured properly !" -msgstr "" +msgstr "العملة الجديدة لم يتم ضبطها بشكل صحيح !" #. module: account #: model:ir.actions.act_window,help:account.action_invoice_tree4 @@ -8288,23 +8292,23 @@ msgstr "" #. module: account #: view:account.account.template:0 msgid "Receivale Accounts" -msgstr "" +msgstr "حسابات المدينون" #. module: account #: report:account.move.voucher:0 msgid "Particulars" -msgstr "" +msgstr "أفراد" #. module: account #: selection:account.account.type,report_type:0 msgid "Profit & Loss (Income Accounts)" -msgstr "" +msgstr "الأرباح و الخسائر (حسابات الدخل)" #. module: account #: view:account.tax:0 #: view:account.tax.template:0 msgid "Keep empty to use the income account" -msgstr "" +msgstr "لإستخدام حساب الدخل اتركه فارغ" #. module: account #: field:account.account,balance:0 @@ -8334,12 +8338,12 @@ msgstr "" #: field:report.account.receivable,balance:0 #: field:report.aged.receivable,balance:0 msgid "Balance" -msgstr "" +msgstr "الرصيد" #. module: account #: model:process.node,note:account.process_node_supplierbankstatement0 msgid "Manually or automatically entered in the system" -msgstr "" +msgstr "تم إدخاله يدوي أو تلقائي في النظام" #. module: account #: report:account.account.balance:0 @@ -8353,22 +8357,22 @@ msgstr "" #: report:pl.account:0 #: report:pl.account.horizontal:0 msgid "Display Account" -msgstr "" +msgstr "عرض الحساب" #. module: account #: report:account.tax.code.entries:0 msgid "(" -msgstr "" +msgstr "(" #. module: account #: selection:account.invoice.refund,filter_refund:0 msgid "Modify" -msgstr "" +msgstr "تعديل" #. module: account #: view:account.account.type:0 msgid "Closing Method" -msgstr "" +msgstr "إسلوب الإغلاق" #. module: account #: model:ir.actions.act_window,help:account.action_account_partner_balance @@ -8382,25 +8386,25 @@ msgstr "" #: selection:account.account.template,type:0 #: selection:account.entries.report,type:0 msgid "Payable" -msgstr "" +msgstr "مدفوعات" #. module: account #: view:report.account.sales:0 #: view:report.account_type.sales:0 #: view:report.hr.timesheet.invoice.journal:0 msgid "This Year" -msgstr "" +msgstr "هذا العام" #. module: account #: view:board.board:0 msgid "Account Board" -msgstr "" +msgstr "لوحة الحسابات" #. module: account #: view:account.model:0 #: field:account.model,legend:0 msgid "Legend" -msgstr "" +msgstr "الدليل" #. module: account #: model:ir.actions.act_window,help:account.action_account_moves_sale @@ -8416,23 +8420,23 @@ msgstr "" #: code:addons/account/account_bank_statement.py:391 #, python-format msgid "Cannot delete bank statement(s) which are already confirmed !" -msgstr "" +msgstr "لا يمكن حذف هذا كشف / كشوف حساب البنك التي تم تأكيدها" #. module: account #: code:addons/account/wizard/account_automatic_reconcile.py:152 #, python-format msgid "You must select accounts to reconcile" -msgstr "" +msgstr "يجب إختيار الحسابات للتسوية" #. module: account #: model:ir.actions.act_window,name:account.action_account_receivable_graph msgid "Balance by Type of Account" -msgstr "" +msgstr "الرصيد حسب نوع الحساب" #. module: account #: model:process.transition,note:account.process_transition_entriesreconcile0 msgid "Accounting entries are the first input of the reconciliation." -msgstr "" +msgstr "قيود المحاسبة هي أول المدخلات للتسوية." #. module: account #: model:ir.actions.act_window,help:account.action_account_period_form @@ -8448,7 +8452,7 @@ msgstr "" #. module: account #: report:account.move.voucher:0 msgid "Receiver's Signature" -msgstr "" +msgstr "إمضاء المستلم" #. module: account #: report:account.general.ledger:0 @@ -8456,13 +8460,13 @@ msgstr "" #: report:account.third_party_ledger:0 #: report:account.third_party_ledger_other:0 msgid "Filters By" -msgstr "" +msgstr "ترشيح بـ" #. module: account #: model:process.node,note:account.process_node_manually0 #: model:process.transition,name:account.process_transition_invoicemanually0 msgid "Manual entry" -msgstr "" +msgstr "قيد يدوي" #. module: account #: report:account.general.ledger:0 @@ -8470,7 +8474,7 @@ msgstr "" #: field:account.move.line,move_id:0 #: field:analytic.entries.report,move_id:0 msgid "Move" -msgstr "" +msgstr "نقل" #. module: account #: code:addons/account/account_move_line.py:1128 @@ -8486,7 +8490,7 @@ msgstr "" #. module: account #: model:ir.actions.act_window,name:account.act_account_journal_2_account_bank_statement msgid "Bank statements" -msgstr "" +msgstr "كشوف حساب البنك" #. module: account #: help:account.addtmpl.wizard,cparent_id:0 @@ -8497,7 +8501,7 @@ msgstr "" #. module: account #: selection:account.model.line,date_maturity:0 msgid "Date of the day" -msgstr "" +msgstr "تاريخ اليوم" #. module: account #: code:addons/account/wizard/account_move_bank_reconcile.py:49 @@ -8510,18 +8514,18 @@ msgstr "" #. module: account #: view:account.move.line.reconcile:0 msgid "Reconciliation transactions" -msgstr "" +msgstr "معاملات التسوية" #. module: account #: model:ir.actions.act_window,name:account.action_account_common_menu msgid "Common Report" -msgstr "" +msgstr "تقرير مشترك" #. module: account #: view:account.account:0 #: field:account.account,child_consol_ids:0 msgid "Consolidated Children" -msgstr "" +msgstr "فرعي موحد" #. module: account #: code:addons/account/wizard/account_fiscalyear_close.py:82 @@ -8536,7 +8540,7 @@ msgstr "" #: model:process.transition,name:account.process_transition_paymentorderbank0 #: model:process.transition,name:account.process_transition_paymentreconcile0 msgid "Payment entries" -msgstr "" +msgstr "قيود المدفوعات" #. module: account #: selection:account.entries.report,month:0 @@ -8545,22 +8549,22 @@ msgstr "" #: selection:report.account.sales,month:0 #: selection:report.account_type.sales,month:0 msgid "July" -msgstr "" +msgstr "يوليو/تموز" #. module: account #: view:account.account:0 msgid "Chart of accounts" -msgstr "" +msgstr "شجرة الحسابات" #. module: account #: field:account.subscription.line,subscription_id:0 msgid "Subscription" -msgstr "" +msgstr "الإشتراك" #. module: account #: model:ir.model,name:account.model_account_analytic_balance msgid "Account Analytic Balance" -msgstr "" +msgstr "رصيد الحساب التحليلي" #. module: account #: report:account.account.balance:0 @@ -8578,7 +8582,7 @@ msgstr "" #: report:pl.account:0 #: report:pl.account.horizontal:0 msgid "End Period" -msgstr "" +msgstr "نهاية الفترة" #. module: account #: field:account.aged.trial.balance,chart_account_id:0 @@ -8597,22 +8601,22 @@ msgstr "" #: field:account.report.general.ledger,chart_account_id:0 #: field:account.vat.declaration,chart_account_id:0 msgid "Chart of account" -msgstr "" +msgstr "شجرة الحساب" #. module: account #: field:account.move.line,date_maturity:0 msgid "Due date" -msgstr "" +msgstr "تاريخ الإستحقاق" #. module: account #: view:account.move.journal:0 msgid "Standard entries" -msgstr "" +msgstr "القيود المعيارية" #. module: account #: model:ir.model,name:account.model_account_subscription msgid "Account Subscription" -msgstr "" +msgstr "إشتراك الحساب" #. module: account #: code:addons/account/invoice.py:717 @@ -8625,7 +8629,7 @@ msgstr "" #. module: account #: view:account.subscription:0 msgid "Entry Subscription" -msgstr "" +msgstr "إشتراك القيد" #. module: account #: report:account.account.balance:0 @@ -8655,30 +8659,30 @@ msgstr "" #: report:account.third_party_ledger_other:0 #: field:account.vat.declaration,date_from:0 msgid "Start Date" -msgstr "" +msgstr "تاريخ البدء" #. module: account #: model:process.node,name:account.process_node_supplierdraftinvoices0 msgid "Draft Invoices" -msgstr "" +msgstr "فواتير مؤقتة" #. module: account #: selection:account.account.type,close_method:0 #: view:account.entries.report:0 #: view:account.move.line:0 msgid "Unreconciled" -msgstr "" +msgstr "غير مسوي" #. module: account #: code:addons/account/invoice.py:804 #, python-format msgid "Bad total !" -msgstr "" +msgstr "إجمالي سئ!" #. module: account #: field:account.journal,sequence_id:0 msgid "Entry Sequence" -msgstr "" +msgstr "مسلسل القيد" #. module: account #: model:ir.actions.act_window,help:account.action_account_period_tree @@ -8695,28 +8699,28 @@ msgstr "" #. module: account #: view:account.analytic.account:0 msgid "Pending" -msgstr "" +msgstr "معلّق" #. module: account #: model:process.transition,name:account.process_transition_analyticinvoice0 #: model:process.transition,name:account.process_transition_supplieranalyticcost0 msgid "From analytic accounts" -msgstr "" +msgstr "من الحسابات التحليلية" #. module: account #: field:account.installer.modules,account_payment:0 msgid "Suppliers Payment Management" -msgstr "" +msgstr "إدارة مدفوعات الموردين" #. module: account #: field:account.period,name:0 msgid "Period Name" -msgstr "" +msgstr "اسم الفترة" #. module: account #: report:account.analytic.account.quantity_cost_ledger:0 msgid "Code/Date" -msgstr "" +msgstr "رمز / تاريخ" #. module: account #: field:account.account,active:0 @@ -8725,13 +8729,13 @@ msgstr "" #: field:account.payment.term,active:0 #: field:account.tax,active:0 msgid "Active" -msgstr "" +msgstr "نشِط" #. module: account #: code:addons/account/invoice.py:354 #, python-format msgid "Unknown Error" -msgstr "" +msgstr "خطأ غير معروف" #. module: account #: code:addons/account/account.py:1167 @@ -8752,19 +8756,19 @@ msgstr "" #. module: account #: field:account.period,special:0 msgid "Opening/Closing Period" -msgstr "" +msgstr "فتح / إغلاق الفترة" #. module: account #: field:account.account,currency_id:0 #: field:account.account.template,currency_id:0 #: field:account.bank.accounts.wizard,currency_id:0 msgid "Secondary Currency" -msgstr "" +msgstr "عملة ثانية" #. module: account #: model:ir.model,name:account.model_validate_account_move msgid "Validate Account Move" -msgstr "" +msgstr "التحقق من حركة الحساب" #. module: account #: field:account.account,credit:0 @@ -8789,7 +8793,7 @@ msgstr "" #: report:account.vat.declaration:0 #: field:report.account.receivable,credit:0 msgid "Credit" -msgstr "" +msgstr "دائن" #. module: account #: help:account.invoice.refund,journal_id:0 @@ -8802,18 +8806,18 @@ msgstr "" #. module: account #: report:account.move.voucher:0 msgid "Through :" -msgstr "" +msgstr "خلال :" #. module: account #: view:account.general.journal:0 #: model:ir.ui.menu,name:account.menu_account_general_journal msgid "General Journals" -msgstr "" +msgstr "اليوميات العامة" #. module: account #: view:account.model:0 msgid "Journal Entry Model" -msgstr "" +msgstr "نموذج قيد اليومية" #. module: account #: code:addons/account/wizard/account_use_model.py:44 @@ -8829,7 +8833,7 @@ msgstr "" #: field:account.invoice,number:0 #: field:account.move,name:0 msgid "Number" -msgstr "" +msgstr "رقم" #. module: account #: report:account.analytic.account.journal:0 @@ -8837,7 +8841,7 @@ msgstr "" #: selection:account.bank.statement.line,type:0 #: selection:account.journal,type:0 msgid "General" -msgstr "" +msgstr "عام" #. module: account #: selection:account.aged.trial.balance,filter:0 @@ -8880,12 +8884,12 @@ msgstr "" #: model:ir.ui.menu,name:account.next_id_23 #, python-format msgid "Periods" -msgstr "" +msgstr "فترات" #. module: account #: field:account.invoice.report,currency_rate:0 msgid "Currency Rate" -msgstr "" +msgstr "معدل العملة" #. module: account #: help:account.payment.term.line,value_amount:0 @@ -8899,12 +8903,12 @@ msgstr "" #: selection:report.account.sales,month:0 #: selection:report.account_type.sales,month:0 msgid "April" -msgstr "" +msgstr "أبريل/ نيسان" #. module: account #: view:account.move.line.reconcile.select:0 msgid "Open for Reconciliation" -msgstr "" +msgstr "مفتوح للتسوية" #. module: account #: field:account.account,parent_left:0 @@ -8927,13 +8931,13 @@ msgstr "" #. module: account #: field:account.installer,sale_tax:0 msgid "Sale Tax(%)" -msgstr "" +msgstr "ضريبة المبيعات (%)" #. module: account #: model:ir.actions.act_window,name:account.action_invoice_tree2 #: model:ir.ui.menu,name:account.menu_action_invoice_tree2 msgid "Supplier Invoices" -msgstr "فواتير الموردون" +msgstr "فواتير الموردين" #. module: account #: view:account.analytic.line:0 @@ -8949,7 +8953,7 @@ msgstr "فواتير الموردون" #: field:report.account.sales,product_id:0 #: field:report.account_type.sales,product_id:0 msgid "Product" -msgstr "" +msgstr "منتج" #. module: account #: model:ir.actions.act_window,help:account.action_validate_account_move @@ -8962,17 +8966,17 @@ msgstr "" #. module: account #: report:account.tax.code.entries:0 msgid ")" -msgstr "" +msgstr ")" #. module: account #: model:ir.model,name:account.model_account_period msgid "Account period" -msgstr "" +msgstr "فترة الحساب" #. module: account #: view:account.subscription:0 msgid "Remove Lines" -msgstr "" +msgstr "إزالة الخطوط" #. module: account #: view:account.report.general.ledger:0 @@ -8986,7 +8990,7 @@ msgstr "" #: selection:account.account.template,type:0 #: selection:account.entries.report,type:0 msgid "Regular" -msgstr "" +msgstr "عادي" #. module: account #: view:account.account:0 @@ -8995,7 +8999,7 @@ msgstr "" #: field:account.account.template,type:0 #: field:account.entries.report,type:0 msgid "Internal Type" -msgstr "" +msgstr "النوع الداخلي" #. module: account #: report:account.move.voucher:0 @@ -9005,14 +9009,14 @@ msgstr "" #. module: account #: model:ir.actions.act_window,name:account.action_subscription_form_running msgid "Running Subscriptions" -msgstr "" +msgstr "إدارة الإشتراكات" #. module: account #: view:report.account.sales:0 #: view:report.account_type.sales:0 #: view:report.hr.timesheet.invoice.journal:0 msgid "This Month" -msgstr "" +msgstr "هذا الشهر" #. module: account #: view:account.analytic.Journal.report:0 @@ -9021,7 +9025,7 @@ msgstr "" #: view:account.analytic.inverted.balance:0 #: model:ir.actions.act_window,name:account.action_account_partner_ledger msgid "Select Period" -msgstr "" +msgstr "اختر فترة" #. module: account #: view:account.entries.report:0 @@ -9031,7 +9035,7 @@ msgstr "" #: view:account.move.line:0 #: report:account.move.voucher:0 msgid "Posted" -msgstr "" +msgstr "مرحَلة" #. module: account #: report:account.account.balance:0 @@ -9060,24 +9064,24 @@ msgstr "" #: report:account.third_party_ledger_other:0 #: field:account.vat.declaration,date_to:0 msgid "End Date" -msgstr "" +msgstr "تاريخ الإنتهاء" #. module: account #: model:ir.actions.act_window,name:account.action_account_open_closed_fiscalyear #: model:ir.ui.menu,name:account.menu_wizard_account_open_closed_fiscalyear msgid "Cancel Opening Entries" -msgstr "" +msgstr "إلغاء القيود المفتوحة" #. module: account #: field:account.payment.term.line,days2:0 msgid "Day of the Month" -msgstr "" +msgstr "يوم من الشهر" #. module: account #: field:account.fiscal.position.tax,tax_src_id:0 #: field:account.fiscal.position.tax.template,tax_src_id:0 msgid "Tax Source" -msgstr "" +msgstr "مصدر الضريبة" #. module: account #: report:account.balancesheet:0 @@ -9085,23 +9089,23 @@ msgstr "" #: report:pl.account:0 #: report:pl.account.horizontal:0 msgid "Net Profit" -msgstr "" +msgstr "صافي الربح" #. module: account #: view:ir.sequence:0 msgid "Fiscal Year Sequences" -msgstr "" +msgstr "مسلسل السنوات المالية" #. module: account #: help:account.model,name:0 msgid "This is a model for recurring accounting entries" -msgstr "" +msgstr "هذا نموذج لقيود حسابات تكرارية" #. module: account #: code:addons/account/account_analytic_line.py:100 #, python-format msgid "There is no income account defined for this product: \"%s\" (id:%d)" -msgstr "" +msgstr "لا يوجد حساب دخل معرّف لهذا المنتج: \"%s\" (id:%d)" #. module: account #: report:account.general.ledger:0 @@ -9113,7 +9117,7 @@ msgstr "" #. module: account #: view:account.payment.term.line:0 msgid " value amount: 0.02" -msgstr "" +msgstr " قيمة المبلغ: 0.02" #. module: account #: view:account.fiscalyear:0 @@ -9135,13 +9139,13 @@ msgstr "" #: field:report.account_type.sales,amount_total:0 #: field:report.invoice.created,amount_total:0 msgid "Total" -msgstr "" +msgstr "الإجمالي" #. module: account #: code:addons/account/wizard/account_move_journal.py:97 #, python-format msgid "Journal: All" -msgstr "" +msgstr "اليومية: الكل" #. module: account #: field:account.account,company_id:0 @@ -9171,22 +9175,22 @@ msgstr "" #: field:analytic.entries.report,company_id:0 #: field:wizard.multi.charts.accounts,company_id:0 msgid "Company" -msgstr "" +msgstr "شركة" #. module: account #: model:ir.ui.menu,name:account.menu_action_subscription_form msgid "Define Recurring Entries" -msgstr "" +msgstr "تعريف قيود تكرارية" #. module: account #: field:account.entries.report,date_maturity:0 msgid "Date Maturity" -msgstr "" +msgstr "تاريخ الإستحقاق" #. module: account #: help:account.bank.statement,total_entry_encoding:0 msgid "Total cash transactions" -msgstr "" +msgstr "إجمالي معاملات النقدية" #. module: account #: help:account.partner.reconcile.process,today_reconciled:0 @@ -9199,7 +9203,7 @@ msgstr "" #. module: account #: view:account.fiscalyear:0 msgid "Create Monthly Periods" -msgstr "" +msgstr "إنشاء فترات شهرية" #. module: account #: field:account.tax.code.template,sign:0 @@ -9209,12 +9213,12 @@ msgstr "" #. module: account #: model:ir.model,name:account.model_account_balance_report msgid "Trial Balance Report" -msgstr "" +msgstr "تقرير ميزان المراجعة" #. module: account #: model:ir.actions.act_window,name:account.action_bank_statement_draft_tree msgid "Draft statements" -msgstr "" +msgstr "قوائم مؤقتة" #. module: account #: model:process.transition,note:account.process_transition_statemententries0 @@ -9225,7 +9229,7 @@ msgstr "" #. module: account #: view:account.invoice:0 msgid "Invoice lines" -msgstr "" +msgstr "سطور الفاتورة" #. module: account #: field:account.aged.trial.balance,period_to:0 @@ -9245,7 +9249,7 @@ msgstr "" #: field:account.report.general.ledger,period_to:0 #: field:account.vat.declaration,period_to:0 msgid "End period" -msgstr "" +msgstr "نهاية الفترة" #. module: account #: code:addons/account/account_move_line.py:738 @@ -9258,7 +9262,7 @@ msgstr "" #: code:addons/account/wizard/account_validate_account_move.py:61 #, python-format msgid "Warning" -msgstr "" +msgstr "تحذير" #. module: account #: help:product.category,property_account_expense_categ:0 @@ -9271,7 +9275,7 @@ msgstr "" #. module: account #: report:account.move.voucher:0 msgid "On Account of :" -msgstr "" +msgstr "علي حساب الـ" #. module: account #: view:account.automatic.reconcile:0 @@ -9282,17 +9286,17 @@ msgstr "حركة الإعدام" #. module: account #: model:process.node,note:account.process_node_paidinvoice0 msgid "Invoice's state is Done" -msgstr "" +msgstr "حالة الفاتورة تمت" #. module: account #: model:ir.model,name:account.model_report_account_sales msgid "Report of the Sales by Account" -msgstr "" +msgstr "تقرير المبيعات بالحساب" #. module: account #: model:ir.model,name:account.model_account_fiscal_position_account msgid "Accounts Fiscal Position" -msgstr "" +msgstr "المركز السنوي للحسابات" #. module: account #: report:account.invoice:0 @@ -9302,7 +9306,7 @@ msgstr "" #: model:process.process,name:account.process_process_supplierinvoiceprocess0 #: selection:report.invoice.created,type:0 msgid "Supplier Invoice" -msgstr "" +msgstr "فاتورة المورد" #. module: account #: field:account.account,debit:0 @@ -9327,12 +9331,12 @@ msgstr "" #: report:account.vat.declaration:0 #: field:report.account.receivable,debit:0 msgid "Debit" -msgstr "" +msgstr "مدين" #. module: account #: field:account.invoice,invoice_line:0 msgid "Invoice Lines" -msgstr "" +msgstr "سطور الفاتورة" #. module: account #: constraint:account.account.template:0 @@ -9350,28 +9354,28 @@ msgstr "" #. module: account #: view:account.subscription:0 msgid "Recurring" -msgstr "" +msgstr "متكرّر" #. module: account #: code:addons/account/account_move_line.py:805 #, python-format msgid "Entry is already reconciled" -msgstr "" +msgstr "قيد اليومية مسوي بالفعل" #. module: account #: model:ir.model,name:account.model_report_account_receivable msgid "Receivable accounts" -msgstr "" +msgstr "حسابات مدينة" #. module: account #: selection:account.model.line,date_maturity:0 msgid "Partner Payment Term" -msgstr "" +msgstr "شروط السداد للشريك" #. module: account #: field:temp.range,name:0 msgid "Range" -msgstr "" +msgstr "مدى" #. module: account #: code:addons/account/account_move_line.py:1246 @@ -9400,12 +9404,12 @@ msgstr "" #: report:pl.account:0 #: report:pl.account.horizontal:0 msgid "With movements" -msgstr "" +msgstr "مع حركات" #. module: account #: view:account.analytic.account:0 msgid "Account Data" -msgstr "" +msgstr "بيانات الحساب" #. module: account #: view:account.tax.code.template:0 @@ -9415,7 +9419,7 @@ msgstr "" #. module: account #: model:process.node,name:account.process_node_manually0 msgid "Manually" -msgstr "" +msgstr "يدوي" #. module: account #: selection:account.entries.report,month:0 @@ -9424,13 +9428,13 @@ msgstr "" #: selection:report.account.sales,month:0 #: selection:report.account_type.sales,month:0 msgid "December" -msgstr "" +msgstr "ديسمبر/ كانون الأول" #. module: account #: model:ir.actions.act_window,name:account.action_account_analytic_journal_tree #: model:ir.ui.menu,name:account.account_analytic_journal_print msgid "Print Analytic Journals" -msgstr "" +msgstr "طباعة اليوميات التحليلية" #. module: account #: view:account.analytic.line:0 @@ -9441,18 +9445,18 @@ msgstr "" #: model:ir.actions.act_window,name:account.action_aged_receivable_graph #: view:report.aged.receivable:0 msgid "Aged Receivable" -msgstr "" +msgstr "الدين المشكوك في تحصيله" #. module: account #: field:account.tax,applicable_type:0 msgid "Applicability" -msgstr "" +msgstr "تطابق" #. module: account #: code:addons/account/wizard/account_move_journal.py:165 #, python-format msgid "This period is already closed !" -msgstr "" +msgstr "هذه الفترة مغلقة !" #. module: account #: help:account.move.line,currency_id:0 @@ -9468,12 +9472,12 @@ msgstr "" #. module: account #: model:ir.ui.menu,name:account.menu_finance_periodical_processing_billing msgid "Billing" -msgstr "" +msgstr "عمليات الفواتير" #. module: account #: view:account.account:0 msgid "Parent Account" -msgstr "" +msgstr "حساب رئيسي" #. module: account #: model:ir.actions.act_window,help:account.action_account_journal_form @@ -9489,24 +9493,24 @@ msgstr "" #. module: account #: model:ir.model,name:account.model_account_analytic_chart msgid "Account Analytic Chart" -msgstr "" +msgstr "حساب مخطط تحليلي" #. module: account #: help:account.invoice,residual:0 msgid "Remaining amount due." -msgstr "" +msgstr "المبلغ المتبقي المستحق" #. module: account #: model:ir.ui.menu,name:account.menu_finance_statistic_report_statement msgid "Statistic Reports" -msgstr "" +msgstr "تقارير إحصائية" #. module: account #: field:account.installer,progress:0 #: field:account.installer.modules,progress:0 #: field:wizard.multi.charts.accounts,progress:0 msgid "Configuration Progress" -msgstr "" +msgstr "سير الإعدادات" #. module: account #: view:account.fiscal.position.template:0 @@ -9517,7 +9521,7 @@ msgstr "" #: code:addons/account/invoice.py:346 #, python-format msgid "Invoice '%s' is waiting for validation." -msgstr "" +msgstr "الفاتورة '%s' منتظرة للتحقق." #. module: account #: selection:account.entries.report,month:0 @@ -9526,12 +9530,12 @@ msgstr "" #: selection:report.account.sales,month:0 #: selection:report.account_type.sales,month:0 msgid "November" -msgstr "" +msgstr "نوفمبر/تشرين الثاني" #. module: account #: model:ir.model,name:account.model_account_installer_modules msgid "account.installer.modules" -msgstr "" +msgstr "account.installer.modules" #. module: account #: help:account.invoice.line,account_id:0 @@ -9542,23 +9546,23 @@ msgstr "" #: code:addons/account/account_move_line.py:1117 #, python-format msgid "The date of your Journal Entry is not in the defined period!" -msgstr "" +msgstr "تاريخ قيد اليومية غير موجود بالفترة المعرفة!" #. module: account #: field:account.subscription,period_total:0 msgid "Number of Periods" -msgstr "" +msgstr "عدد الفترات" #. module: account #: report:account.general.journal:0 #: model:ir.actions.report.xml,name:account.account_general_journal msgid "General Journal" -msgstr "" +msgstr "اليومية العامة" #. module: account #: view:account.invoice:0 msgid "Search Invoice" -msgstr "" +msgstr "بحث الفواتير" #. module: account #: report:account.invoice:0 @@ -9597,7 +9601,7 @@ msgstr "مستندات المحاسبة" #. module: account #: model:ir.model,name:account.model_validate_account_move_lines msgid "Validate Account Move Lines" -msgstr "" +msgstr "خطوط التحقق من حركة الحساب" #. module: account #: model:ir.actions.act_window,name:account.action_account_analytic_cost_ledger_journal @@ -9857,10 +9861,6 @@ msgstr "خصوم" #~ msgid "Move line select" #~ msgstr "تحريك السطر المختار" -#, python-format -#~ msgid "The statement balance is incorrect !\n" -#~ msgstr "رصيد الكشف خطأ\n" - #~ msgid "Balance:" #~ msgstr "الرصيد:" @@ -9870,3 +9870,10 @@ msgstr "خصوم" #~ msgid "Balance Sheet (Assets Accounts)" #~ msgstr "الميزانية العمومية (حسابات الأصول)" + +#, python-format +#~ msgid "The statement balance is incorrect !\n" +#~ msgstr "رصيد الكشف خاطئ !\n" + +#~ msgid "Chart of Account" +#~ msgstr "شجرة الحساب" diff --git a/addons/base_contact/i18n/ar.po b/addons/base_contact/i18n/ar.po index 6264b1aa32d..e5610421181 100644 --- a/addons/base_contact/i18n/ar.po +++ b/addons/base_contact/i18n/ar.po @@ -7,104 +7,104 @@ msgstr "" "Project-Id-Version: OpenERP Server 5.0.4\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2011-01-11 11:14+0000\n" -"PO-Revision-Date: 2009-02-03 06:25+0000\n" -"Last-Translator: <>\n" +"PO-Revision-Date: 2011-12-03 15:19+0000\n" +"Last-Translator: kifcaliph \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-05 05:04+0000\n" -"X-Generator: Launchpad (build 14231)\n" +"X-Launchpad-Export-Date: 2011-12-04 04:43+0000\n" +"X-Generator: Launchpad (build 14418)\n" #. module: base_contact #: field:res.partner.contact,title:0 msgid "Title" -msgstr "" +msgstr "اللقب" #. module: base_contact #: view:res.partner.address:0 msgid "# of Contacts" -msgstr "" +msgstr "عدد جهات الاتصال" #. module: base_contact #: field:res.partner.job,fax:0 msgid "Fax" -msgstr "" +msgstr "فاكس" #. module: base_contact #: view:base.contact.installer:0 msgid "title" -msgstr "" +msgstr "الاسم" #. module: base_contact #: help:res.partner.job,date_start:0 msgid "Start date of job(Joining Date)" -msgstr "" +msgstr "تاريخ الالتحاق بالوظيفة" #. module: base_contact #: view:base.contact.installer:0 msgid "Select the Option for Addresses Migration" -msgstr "" +msgstr "حدد الخيار لنقل العناوين" #. module: base_contact #: help:res.partner.job,function:0 msgid "Function of this contact with this partner" -msgstr "" +msgstr "مهمة جهة الاتصال هذه عند هذا الشريك" #. module: base_contact #: help:res.partner.job,state:0 msgid "Status of Address" -msgstr "" +msgstr "حالة العنوان" #. module: base_contact #: help:res.partner.job,name:0 msgid "" "You may enter Address first,Partner will be linked " "automatically if any." -msgstr "" +msgstr "يمكنك إدخال العنوان أولاً، وسيتمّ ربط الشريك تلقائياً إن وُجِد." #. module: base_contact #: help:res.partner.job,fax:0 msgid "Job FAX no." -msgstr "" +msgstr "فاكس العمل" #. module: base_contact #: field:res.partner.contact,mobile:0 msgid "Mobile" -msgstr "" +msgstr "الجوال" #. module: base_contact #: view:res.partner.contact:0 #: field:res.partner.contact,comment:0 msgid "Notes" -msgstr "" +msgstr "ملاحظات" #. module: base_contact #: model:process.node,note:base_contact.process_node_contacts0 msgid "People you work with." -msgstr "" +msgstr "أشخاص تعمل معهم." #. module: base_contact #: model:process.transition,note:base_contact.process_transition_functiontoaddress0 msgid "Define functions and address." -msgstr "" +msgstr "تعريف المهام والعنوان" #. module: base_contact #: help:res.partner.job,date_stop:0 msgid "Last date of job" -msgstr "" +msgstr "تاريخ ترك الوظيفة" #. module: base_contact #: view:base.contact.installer:0 #: field:base.contact.installer,migrate:0 msgid "Migrate" -msgstr "" +msgstr "نقل" #. module: base_contact #: view:res.partner.contact:0 #: field:res.partner.job,name:0 msgid "Partner" -msgstr "" +msgstr "الشريك" #. module: base_contact #: model:process.node,note:base_contact.process_node_function0 @@ -114,12 +114,12 @@ msgstr "" #. module: base_contact #: model:process.node,name:base_contact.process_node_partners0 msgid "Partners" -msgstr "" +msgstr "الشركاء" #. module: base_contact #: field:res.partner.job,state:0 msgid "State" -msgstr "" +msgstr "المحافظة" #. module: base_contact #: help:res.partner.contact,active:0 @@ -151,27 +151,42 @@ msgid "" "an other object.\n" " " msgstr "" +"\n" +" تمكنك هذه الوحدة البرمجية من إدارة جهات الاتصال بشكل كامل.\n" +" فهي تسمح لك بـتعرف:\n" +" * جهات اتصال غير ذات صلة بشريك،\n" +" * جهات اتصال ذات عناوين عمل متعددة (ربما لارتباطها بشركاء مختلفين)،\n" +" * جهات اتصال ذات مهام مختلفة لكل عنوان من عناوين وظائفها\n" +"\n" +" كذلك تضيف هذه الوحدة البرمجية عناصر جديدة إلى القائمة تحت\n" +" الشركاء / جهات الاتصال\n" +" الشركاء / المهام\n" +"\n" +" تنبه إلى أن هذه الوحدة البرمجية تقوم بتحويل العناوين الموجودة مسبقاً إلى " +"\"عناوين\" و \"جهات اتصال\"، مما يعني أن بعض حقول العناوين سيتم حذفها (مثل " +"اسم جهة الاتصال) لأنه من المفترض أن يتم تعريفها في كائن آخر.\n" +" " #. module: base_contact #: model:ir.module.module,shortdesc:base_contact.module_meta_information #: model:process.process,name:base_contact.process_process_basecontactprocess0 msgid "Base Contact" -msgstr "" +msgstr "جهة الاتصال الأساسية" #. module: base_contact #: field:res.partner.job,date_stop:0 msgid "Date Stop" -msgstr "" +msgstr "تاريخ التوقف" #. module: base_contact #: model:ir.actions.act_window,name:base_contact.action_res_partner_job msgid "Contact's Jobs" -msgstr "" +msgstr "الوظائف" #. module: base_contact #: view:res.partner:0 msgid "Categories" -msgstr "" +msgstr "الفئات" #. module: base_contact #: help:res.partner.job,sequence_partner:0 @@ -179,70 +194,72 @@ msgid "" "Order of importance of this job title in the list of job " "title of the linked partner" msgstr "" +"ترتيب المسمى الوظيفي هذا حسب الأهمية بين المسميات الوظيغية المستخدمة لدى " +"الشريك" #. module: base_contact #: field:res.partner.job,extension:0 msgid "Extension" -msgstr "" +msgstr "الامتداد" #. module: base_contact #: help:res.partner.job,extension:0 msgid "Internal/External extension phone number" -msgstr "" +msgstr "امتداد رقم الهاتف الداخلي/الخارجي" #. module: base_contact #: help:res.partner.job,phone:0 msgid "Job Phone no." -msgstr "" +msgstr "هاتف العمل" #. module: base_contact #: view:res.partner.contact:0 #: field:res.partner.contact,job_ids:0 msgid "Functions and Addresses" -msgstr "" +msgstr "المهام والعناوين" #. module: base_contact #: model:ir.model,name:base_contact.model_res_partner_contact #: field:res.partner.job,contact_id:0 msgid "Contact" -msgstr "" +msgstr "جهة الاتصال" #. module: base_contact #: help:res.partner.job,email:0 msgid "Job E-Mail" -msgstr "" +msgstr "البريد الإلكتروني للعمل" #. module: base_contact #: field:res.partner.job,sequence_partner:0 msgid "Partner Seq." -msgstr "" +msgstr "رقم الشريك" #. module: base_contact #: model:process.transition,name:base_contact.process_transition_functiontoaddress0 msgid "Function to address" -msgstr "" +msgstr "مهمة إلى عنوان" #. module: base_contact #: field:base.contact.installer,progress:0 msgid "Configuration Progress" -msgstr "" +msgstr "سير الإعدادات" #. module: base_contact #: field:res.partner.contact,name:0 msgid "Last Name" -msgstr "" +msgstr "اسم العائلة" #. module: base_contact #: view:res.partner:0 #: view:res.partner.contact:0 msgid "Communication" -msgstr "" +msgstr "التواصل" #. module: base_contact #: field:base.contact.installer,config_logo:0 #: field:res.partner.contact,photo:0 msgid "Image" -msgstr "" +msgstr "صورة" #. module: base_contact #: selection:res.partner.job,state:0 @@ -252,7 +269,7 @@ msgstr "" #. module: base_contact #: model:ir.model,name:base_contact.model_res_partner_address msgid "Partner Addresses" -msgstr "" +msgstr "عناوين الشريك" #. module: base_contact #: view:base.contact.installer:0 @@ -262,12 +279,12 @@ msgstr "" #. module: base_contact #: field:res.partner.job,sequence_contact:0 msgid "Contact Seq." -msgstr "" +msgstr "رقم جهة الاتصال" #. module: base_contact #: view:res.partner.address:0 msgid "Search Contact" -msgstr "" +msgstr "بحث جهة الإتصال" #. module: base_contact #: model:ir.actions.act_window,name:base_contact.action_partner_contact_form @@ -277,7 +294,7 @@ msgstr "" #: view:res.partner:0 #: field:res.partner.address,job_ids:0 msgid "Contacts" -msgstr "" +msgstr "جهات الاتصال" #. module: base_contact #: view:base.contact.installer:0 @@ -289,58 +306,58 @@ msgstr "" #. module: base_contact #: model:process.node,note:base_contact.process_node_addresses0 msgid "Working and private addresses." -msgstr "" +msgstr "عناوين العمل والعناوين الخاصة" #. module: base_contact #: help:res.partner.job,address_id:0 msgid "Address which is linked to the Partner" -msgstr "" +msgstr "العنوان المرتبط بالشريك" #. module: base_contact #: field:res.partner.job,function:0 msgid "Partner Function" -msgstr "" +msgstr "مهمة الشريك" #. module: base_contact #: help:res.partner.job,other:0 msgid "Additional phone field" -msgstr "" +msgstr "حقل هاتف إضافي" #. module: base_contact #: field:res.partner.contact,website:0 msgid "Website" -msgstr "" +msgstr "الموقع الإلكتروني" #. module: base_contact #: view:base.contact.installer:0 msgid "Otherwise these details will not be visible from address/contact." -msgstr "" +msgstr "وإلا فلن تظهر هذه التفاصيل في العنوان/جهة الاتصال." #. module: base_contact #: view:base.contact.installer:0 msgid "Configure" -msgstr "" +msgstr "ضبط الإعدادات" #. module: base_contact #: field:res.partner.contact,email:0 #: field:res.partner.job,email:0 msgid "E-Mail" -msgstr "" +msgstr "البريد الإلكتروني" #. module: base_contact #: model:ir.model,name:base_contact.model_base_contact_installer msgid "base.contact.installer" -msgstr "" +msgstr "base.contact.installer" #. module: base_contact #: view:res.partner.job:0 msgid "Contact Functions" -msgstr "" +msgstr "مهام جهة الاتصال" #. module: base_contact #: field:res.partner.job,phone:0 msgid "Phone" -msgstr "" +msgstr "هاتف" #. module: base_contact #: view:base.contact.installer:0 @@ -350,164 +367,164 @@ msgstr "" #. module: base_contact #: field:res.partner.contact,active:0 msgid "Active" -msgstr "" +msgstr "نشِط" #. module: base_contact #: field:res.partner.contact,function:0 msgid "Main Function" -msgstr "" +msgstr "المهمة الرئيسية" #. module: base_contact #: model:process.transition,note:base_contact.process_transition_partnertoaddress0 msgid "Define partners and their addresses." -msgstr "" +msgstr "تعريف الشركاء وعناوينهم" #. module: base_contact #: view:res.partner.contact:0 msgid "Seq." -msgstr "" +msgstr "رقم" #. module: base_contact #: field:res.partner.contact,lang_id:0 msgid "Language" -msgstr "" +msgstr "اللغة" #. module: base_contact #: view:res.partner.contact:0 msgid "Extra Information" -msgstr "" +msgstr "معلومات إضافية" #. module: base_contact #: model:process.node,note:base_contact.process_node_partners0 msgid "Companies you work with." -msgstr "" +msgstr "الشركات التي تتعامل معها." #. module: base_contact #: view:res.partner.contact:0 msgid "Partner Contact" -msgstr "" +msgstr "جهة الاتصال بالشريك" #. module: base_contact #: view:res.partner.contact:0 msgid "General" -msgstr "" +msgstr "عام" #. module: base_contact #: view:res.partner.contact:0 msgid "Photo" -msgstr "" +msgstr "صورة" #. module: base_contact #: field:res.partner.contact,birthdate:0 msgid "Birth Date" -msgstr "" +msgstr "تاريخ الميلاد" #. module: base_contact #: help:base.contact.installer,migrate:0 msgid "If you select this, all addresses will be migrated." -msgstr "" +msgstr "إذا اخترت هذا الخيار، سيتم نقل جميع العناوين." #. module: base_contact #: selection:res.partner.job,state:0 msgid "Current" -msgstr "" +msgstr "الحالي" #. module: base_contact #: field:res.partner.contact,first_name:0 msgid "First Name" -msgstr "" +msgstr "الاسم الأول" #. module: base_contact #: model:ir.model,name:base_contact.model_res_partner_job msgid "Contact Partner Function" -msgstr "" +msgstr "مهمة الشريك" #. module: base_contact #: field:res.partner.job,other:0 msgid "Other" -msgstr "" +msgstr "غير ذلك" #. module: base_contact #: model:process.node,name:base_contact.process_node_function0 msgid "Function" -msgstr "" +msgstr "المهمة" #. module: base_contact #: field:res.partner.address,job_id:0 #: field:res.partner.contact,job_id:0 msgid "Main Job" -msgstr "" +msgstr "الوظيفة الرئيسية" #. module: base_contact #: model:process.transition,note:base_contact.process_transition_contacttofunction0 msgid "Defines contacts and functions." -msgstr "" +msgstr "تعريف جهات الاتصال والمهام." #. module: base_contact #: model:process.transition,name:base_contact.process_transition_contacttofunction0 msgid "Contact to function" -msgstr "" +msgstr "جهة اتصال إلى مهمة" #. module: base_contact #: view:res.partner:0 #: field:res.partner.job,address_id:0 msgid "Address" -msgstr "" +msgstr "العنوان" #. module: base_contact #: field:res.partner.contact,country_id:0 msgid "Nationality" -msgstr "" +msgstr "الجنسية" #. module: base_contact #: model:ir.actions.act_window,name:base_contact.act_res_partner_jobs msgid "Open Jobs" -msgstr "" +msgstr "الوظائف المفتوحة" #. module: base_contact #: field:base.contact.installer,name:0 msgid "Name" -msgstr "" +msgstr "الاسم" #. module: base_contact #: view:base.contact.installer:0 msgid "You can migrate Partner's current addresses to the contact." -msgstr "" +msgstr "يمكنك نقل العناوين الحالية للشريك إلى جهة الاتصال" #. module: base_contact #: field:res.partner.contact,partner_id:0 msgid "Main Employer" -msgstr "" +msgstr "صاحب العمل الرئيسي" #. module: base_contact #: model:ir.actions.act_window,name:base_contact.action_base_contact_installer msgid "Address Migration" -msgstr "" +msgstr "نقل العنوان" #. module: base_contact #: view:res.partner:0 msgid "Postal Address" -msgstr "" +msgstr "العنوان البريدي" #. module: base_contact #: model:process.node,name:base_contact.process_node_addresses0 #: view:res.partner:0 msgid "Addresses" -msgstr "" +msgstr "العناوين" #. module: base_contact #: model:process.transition,name:base_contact.process_transition_partnertoaddress0 msgid "Partner to address" -msgstr "" +msgstr "شريك إلى عنوان" #. module: base_contact #: field:res.partner.job,date_start:0 msgid "Date Start" -msgstr "" +msgstr "تاريخ البدء" #. module: base_contact #: help:res.partner.job,sequence_contact:0 msgid "" "Order of importance of this address in the list of " "addresses of the linked contact" -msgstr "" +msgstr "ترتيب هذا العنوان حسب الأهمية بين عناوين جهة الاتصال" diff --git a/addons/web/po/de.po b/addons/web/po/de.po index 72778500484..66d8d950384 100644 --- a/addons/web/po/de.po +++ b/addons/web/po/de.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openerp-web\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-10-07 10:38+0200\n" -"PO-Revision-Date: 2011-10-10 20:59+0000\n" -"Last-Translator: Felix Schubert \n" +"PO-Revision-Date: 2011-12-03 10:42+0000\n" +"Last-Translator: Ferdinand @ Camptocamp \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" -"X-Generator: Launchpad (build 14299)\n" +"X-Launchpad-Export-Date: 2011-12-04 05:07+0000\n" +"X-Generator: Launchpad (build 14418)\n" #: addons/web/static/src/js/view_form.js:355 msgid "" @@ -373,7 +373,7 @@ msgstr "Hinzufügen" #: addons/web/static/src/xml/base.xml:0 msgid "Unhandled widget" -msgstr "" +msgstr "unbekanntes Oberflächenelement" #: addons/web/static/src/xml/base.xml:0 msgid "?" diff --git a/addons/web/po/nl.po b/addons/web/po/nl.po new file mode 100644 index 00000000000..a365691f314 --- /dev/null +++ b/addons/web/po/nl.po @@ -0,0 +1,694 @@ +# Dutch translation for openerp-web +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-10-07 10:38+0200\n" +"PO-Revision-Date: 2011-12-01 13:56+0000\n" +"Last-Translator: Douwe Wullink (Dypalio) \n" +"Language-Team: Dutch \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-12-02 05:27+0000\n" +"X-Generator: Launchpad (build 14414)\n" + +#: addons/web/static/src/js/view_form.js:355 +msgid "" +"Warning, the record has been modified, your changes will be discarded." +msgstr "Letop: het record is gewijzigd; uw wijzigingen gaan verloren." + +#: addons/web/static/src/js/view_form.js:1659 +msgid "   Search More..." +msgstr "   Zoek verder..." + +#: addons/web/static/src/js/view_form.js:1672 +#, python-format +msgid "   Create \"%s\"" +msgstr "   Maak \"%s\"" + +#: addons/web/static/src/js/view_form.js:1678 +msgid "   Create and Edit..." +msgstr "   Maak en wijzig..." + +#: addons/web/static/src/js/views.js:568 +msgid "You must choose at least one record." +msgstr "U moet tenminste één record kiezen." + +#: addons/web/static/src/js/views.js:569 +msgid "Warning" +msgstr "Waarschuwing" + +#: addons/web/static/src/js/views.js:609 +msgid "Translations" +msgstr "Vertalingen" + +#: addons/web/static/src/js/views.js:614 addons/web/static/src/xml/base.xml:0 +msgid "Save" +msgstr "Opslaan" + +#: addons/web/static/src/js/views.js:615 +msgid "Close" +msgstr "Sluiten" + +#: addons/web/static/src/xml/base.xml:0 +msgid "x" +msgstr "x" + +#: addons/web/static/src/xml/base.xml:0 +msgid "#{title}" +msgstr "#{title}" + +#: addons/web/static/src/xml/base.xml:0 +msgid "#{text}" +msgstr "#{text}" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Powered by" +msgstr "Powered by" + +#: addons/web/static/src/xml/base.xml:0 +msgid "openerp.com" +msgstr "openerp.com" + +#: addons/web/static/src/xml/base.xml:0 +msgid "." +msgstr "." + +#: addons/web/static/src/xml/base.xml:0 +msgid "Loading..." +msgstr "Laden..." + +#: addons/web/static/src/xml/base.xml:0 +msgid "Create" +msgstr "Maken" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Drop" +msgstr "Verwijderen" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Backup" +msgstr "Backup" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Restore" +msgstr "Terugzetten" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Password" +msgstr "Wachtwoord" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Back to Login" +msgstr "Terug naar aanmelding" + +#: addons/web/static/src/xml/base.xml:0 +msgid "CREATE DATABASE" +msgstr "DATABASE MAKEN" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Master password:" +msgstr "Master wachtwoord:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "New database name:" +msgstr "Naam nieuwe database:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Load Demonstration data:" +msgstr "Demonstratiegegevens laden:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Default language:" +msgstr "Standaardtaal:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Admin password:" +msgstr "Admin wachtwoord:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Confirm password:" +msgstr "Bevestig wachtwoord:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "DROP DATABASE" +msgstr "DATABASE VERWIJDEREN" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Database:" +msgstr "Database:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Master Password:" +msgstr "Master wachtwoord:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "BACKUP DATABASE" +msgstr "DATABASE BACKUP" + +#: addons/web/static/src/xml/base.xml:0 +msgid "RESTORE DATABASE" +msgstr "DATABASE TERUGZETTEN" + +#: addons/web/static/src/xml/base.xml:0 +msgid "File:" +msgstr "Bestand:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "CHANGE MASTER PASSWORD" +msgstr "MASTER WACHTWOORD WIJZIGEN" + +#: addons/web/static/src/xml/base.xml:0 +msgid "New master password:" +msgstr "Nieuw master wachtwoord:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Confirm new master password:" +msgstr "Bevestig nieuw master wachtwoord:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "User:" +msgstr "Gebruiker:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Password:" +msgstr "Wachtwoord:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Database" +msgstr "Database" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Login" +msgstr "Aanmelden" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Bad username or password" +msgstr "Verkeerde gebruikersnaam of wachtwoord" + +#: addons/web/static/src/xml/base.xml:0 +msgid "" +"We think that daily job activities can be more intuitive, efficient, " +"automated, .. and even fun." +msgstr "" +"Wij denken dat dagelijks werk intuïtiever, efficiënter, automatischer kan " +"zijn, ...en zelfs leuk." + +#: addons/web/static/src/xml/base.xml:0 +msgid "OpenERP's vision to be:" +msgstr "OpenERP's visie is:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Full featured" +msgstr "Uitgebreide functionaliteit" + +#: addons/web/static/src/xml/base.xml:0 +msgid "" +"Today's enterprise challenges are multiple. We provide one module for each " +"need." +msgstr "" +"Bedrijven kennen vandaag de dag veel uitdagingen. We hebben een module voor " +"elke behoefte." + +#: addons/web/static/src/xml/base.xml:0 +msgid "Open Source" +msgstr "Open Source" + +#: addons/web/static/src/xml/base.xml:0 +msgid "" +"To Build a great product, we rely on the knowledge of thousands of " +"contributors." +msgstr "" +"Om een prima product te bouwen, rekenen we op de kennis van duizenden " +"bijdragers." + +#: addons/web/static/src/xml/base.xml:0 +msgid "User Friendly" +msgstr "Gebruikersvriendelijk" + +#: addons/web/static/src/xml/base.xml:0 +msgid "" +"In order to be productive, people need clean and easy to use interface." +msgstr "" +"Om productief te zijn hebben mensen een net en simpel gebruikersinterface " +"nodig." + +#: addons/web/static/src/xml/base.xml:0 +msgid "(" +msgstr "(" + +#: addons/web/static/src/xml/base.xml:0 +msgid ")" +msgstr ")" + +#: addons/web/static/src/xml/base.xml:0 +msgid "LOGOUT" +msgstr "AFMELDEN" + +#: addons/web/static/src/xml/base.xml:0 +msgid "«" +msgstr "«" + +#: addons/web/static/src/xml/base.xml:0 +msgid "»" +msgstr "»" + +#: addons/web/static/src/xml/base.xml:0 +msgid "oe_secondary_menu_item" +msgstr "oe_secondary_menu_item" + +#: addons/web/static/src/xml/base.xml:0 +msgid "oe_secondary_submenu_item" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Hide this tip" +msgstr "Verberg deze tip" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Disable all tips" +msgstr "Alle tips uitzetten" + +#: addons/web/static/src/xml/base.xml:0 +msgid "View#" +msgstr "View#" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Fields" +msgstr "Velden" + +#: addons/web/static/src/xml/base.xml:0 +msgid "View labels" +msgstr "Weergave labels" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Sidebar Relates" +msgstr "Sidebar koppelingen" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Field" +msgstr "Veld" + +#: addons/web/static/src/xml/base.xml:0 +msgid ":" +msgstr ":" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Translate view" +msgstr "Vertaal weergave" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Translate sidebar" +msgstr "Sidebar vertalen" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Delete" +msgstr "Verwijderen" + +#: addons/web/static/src/xml/base.xml:0 +msgid "First" +msgstr "Eerste" + +#: addons/web/static/src/xml/base.xml:0 +msgid "<" +msgstr "<" + +#: addons/web/static/src/xml/base.xml:0 +msgid ">" +msgstr ">" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Last" +msgstr "Laatste" + +#: addons/web/static/src/xml/base.xml:0 +msgid "♻" +msgstr "♻" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Save & Edit" +msgstr "Opslaan & Wijzigen" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Create & Edit" +msgstr "Maken & Wijzigen" + +#: addons/web/static/src/xml/base.xml:0 +msgid "New" +msgstr "Nieuw" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Duplicate" +msgstr "Dupliceren" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Readonly/Editable" +msgstr "Leesbaar/Wijzigbaar" + +#: addons/web/static/src/xml/base.xml:0 +msgid "<<" +msgstr "<<" + +#: addons/web/static/src/xml/base.xml:0 +msgid "0" +msgstr "0" + +#: addons/web/static/src/xml/base.xml:0 +msgid "/" +msgstr "/" + +#: addons/web/static/src/xml/base.xml:0 +msgid ">>" +msgstr ">>" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Add" +msgstr "Toevoegen" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Unhandled widget" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "?" +msgstr "?" + +#: addons/web/static/src/xml/base.xml:0 +msgid "#" +msgstr "#" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Done" +msgstr "Gereed" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Open..." +msgstr "Openen..." + +#: addons/web/static/src/xml/base.xml:0 +msgid "Create..." +msgstr "Aanmaken…" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Search..." +msgstr "Zoeken…" + +#: addons/web/static/src/xml/base.xml:0 +msgid "..." +msgstr "..." + +#: addons/web/static/src/xml/base.xml:0 +msgid "Uploading ..." +msgstr "Uploaden ..." + +#: addons/web/static/src/xml/base.xml:0 +msgid "Select" +msgstr "Selecteren" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Save As" +msgstr "Opslaan als" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Clear" +msgstr "Wissen" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Advanced Filter" +msgstr "Geavanceerd filter" + +#: addons/web/static/src/xml/base.xml:0 +msgid "-- Filters --" +msgstr "-- Filters --" + +#: addons/web/static/src/xml/base.xml:0 +msgid "-- Actions --" +msgstr "-- Acties --" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Save Filter" +msgstr "Filter opslaan" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Manage Filters" +msgstr "Filters beheren" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Filter Name:" +msgstr "Filternaam:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "(Any existing filter with the same name will be replaced)" +msgstr "(Een bestaand filter met dezelfde naam wordt vervangen)" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Any of the following conditions must match" +msgstr "Één van de volgende voorwaarden moet voldoen" + +#: addons/web/static/src/xml/base.xml:0 +msgid "All the following conditions must match" +msgstr "Alle volgende voorwaarden moeten voldoen" + +#: addons/web/static/src/xml/base.xml:0 +msgid "None of the following conditions must match" +msgstr "Geen van de volgende voorwaarden mag voldoen" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Add condition" +msgstr "Voorwaarde toevoegen" + +#: addons/web/static/src/xml/base.xml:0 +msgid "and" +msgstr "en" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Cancel" +msgstr "Annuleren" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Save & New" +msgstr "Opslaan & Nieuw" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Save & Close" +msgstr "Opslaan & Sluiten" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Export" +msgstr "Exporteren" + +#: addons/web/static/src/xml/base.xml:0 +msgid "" +"This wizard will export all data that matches the current search criteria to " +"a CSV file.\n" +" You can export all data or only the fields that can be " +"reimported after modification." +msgstr "" +"Deze assistent exporteert alle gegevens die aan de huidige zoekcriteria " +"voldoen naar een CSV bestand.\n" +" U kunt alle gegevens exporteren of alleen de velden die na " +"wijziging opnieuw kunnen worden geïmporteerd." + +#: addons/web/static/src/xml/base.xml:0 +msgid "Export Type:" +msgstr "Soort export:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Import Compatible Export" +msgstr "Import compatibele export" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Export all Data" +msgstr "Alle gegevens exporteren" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Export Formats" +msgstr "Export Formaten" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Available fields" +msgstr "Beschikbare velden" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Fields to export" +msgstr "Te exporteren velden" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Save fields list" +msgstr "Veldenlijst opslaan" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Remove" +msgstr "Verwijderen" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Remove All" +msgstr "Alles verwijderen" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Name" +msgstr "Naam" + +#: addons/web/static/src/xml/base.xml:0 +msgid " " +msgstr " " + +#: addons/web/static/src/xml/base.xml:0 +msgid "Save as:" +msgstr "Opslaan als:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Ok" +msgstr "Ok" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Saved exports:" +msgstr "Opgeslagen exports:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Old Password:" +msgstr "Oud wachtwoord:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "New Password:" +msgstr "Nieuw wachtwoord:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Confirm Password:" +msgstr "Bevestig wachtwoord:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Import" +msgstr "Importeren" + +#: addons/web/static/src/xml/base.xml:0 +msgid "1. Import a .CSV file" +msgstr "1. Importeer een .CSV bestand" + +#: addons/web/static/src/xml/base.xml:0 +msgid "" +"Select a .CSV file to import. If you need a sample of file to import,\n" +" you should use the export tool with the \"Import Compatible\" option." +msgstr "" +"Selecteer een .CSV bestand voor import. Voor een voorbeeld van een " +"importbestand,\n" +" kunt u de export tool gebruiken met de \"Import Compatibel\" optie." + +#: addons/web/static/src/xml/base.xml:0 +msgid "CSV File:" +msgstr "CSV bestand:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "2. Check your file format" +msgstr "2. Controleer uw bestandsformaat" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Import Options" +msgstr "Importeeropties" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Does your file have titles?" +msgstr "Heeft uw bestand titels?" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Separator:" +msgstr "Scheidingsteken:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Delimiter:" +msgstr "Veldscheidingsteken:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Encoding:" +msgstr "Codering:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "UTF-8" +msgstr "UTF-8" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Latin 1" +msgstr "Latin 1" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Lines to skip" +msgstr "Regels om over te slaan" + +#: addons/web/static/src/xml/base.xml:0 +msgid "The import failed due to:" +msgstr "Importeren mislukt wegens:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Here is a preview of the file we could not import:" +msgstr "Hier is een voorbeeld van het bestand dat we niet konden importeren:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "OpenERP Web" +msgstr "OpenERP Web" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Version" +msgstr "Versie" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Copyright © 2011-TODAY OpenERP SA. All Rights Reserved." +msgstr "Copyright © 2011-VANDAAG OpenERP SA. Alle rechten voorbehouden." + +#: addons/web/static/src/xml/base.xml:0 +msgid "OpenERP is a trademark of the" +msgstr "OpenERP is een handelsmerk van" + +#: addons/web/static/src/xml/base.xml:0 +msgid "OpenERP SA Company" +msgstr "OpenERP SA" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Licenced under the terms of" +msgstr "Gelicentieerd onder voorwaarden van" + +#: addons/web/static/src/xml/base.xml:0 +msgid "GNU Affero General Public License" +msgstr "GNU Affero General Public License" + +#: addons/web/static/src/xml/base.xml:0 +msgid "About OpenERP" +msgstr "Over OpenERP" + +#: addons/web/static/src/xml/base.xml:0 +msgid "OpenERP" +msgstr "OpenERP" + +#: addons/web/static/src/xml/base.xml:0 +msgid "" +"is a free enterprise-scale software system that is designed to boost\n" +" productivity and profit through data integration. It connects, " +"improves and\n" +" manages business processes in areas such as sales, finance, " +"supply chain,\n" +" project management, production, services, CRM, etc..." +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "" +"The system is platform-independent, and can be installed on Windows, Mac OS " +"X,\n" +" and various Linux and other Unix-based distributions. Its " +"architecture enables\n" +" new functionality to be rapidly created, modifications to be " +"made to a\n" +" production system and migration to a new version to be " +"straightforward." +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "" +"Depending on your needs, OpenERP is available through a web or application " +"client." +msgstr "" +"Naar behoefte is OpenERP als webapplicatie of als client-serverapplicatie " +"beschikbaar." diff --git a/addons/web/po/zh_TW.po b/addons/web/po/zh_TW.po new file mode 100644 index 00000000000..5f1d4123bb1 --- /dev/null +++ b/addons/web/po/zh_TW.po @@ -0,0 +1,677 @@ +# Chinese (Traditional) translation for openerp-web +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-10-07 10:38+0200\n" +"PO-Revision-Date: 2011-12-04 16:06+0000\n" +"Last-Translator: Walter Cheuk \n" +"Language-Team: Chinese (Traditional) \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-12-05 05:44+0000\n" +"X-Generator: Launchpad (build 14418)\n" + +#: addons/web/static/src/js/view_form.js:355 +msgid "" +"Warning, the record has been modified, your changes will be discarded." +msgstr "" + +#: addons/web/static/src/js/view_form.js:1659 +msgid "   Search More..." +msgstr "   搜尋更多..." + +#: addons/web/static/src/js/view_form.js:1672 +#, python-format +msgid "   Create \"%s\"" +msgstr "   建立「%s」" + +#: addons/web/static/src/js/view_form.js:1678 +msgid "   Create and Edit..." +msgstr "   建立並編輯..." + +#: addons/web/static/src/js/views.js:568 +msgid "You must choose at least one record." +msgstr "要選擇至少一個紀錄。" + +#: addons/web/static/src/js/views.js:569 +msgid "Warning" +msgstr "警告" + +#: addons/web/static/src/js/views.js:609 +msgid "Translations" +msgstr "翻譯" + +#: addons/web/static/src/js/views.js:614 addons/web/static/src/xml/base.xml:0 +msgid "Save" +msgstr "儲存" + +#: addons/web/static/src/js/views.js:615 +msgid "Close" +msgstr "關閉" + +#: addons/web/static/src/xml/base.xml:0 +msgid "x" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "#{title}" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "#{text}" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Powered by" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "openerp.com" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "." +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Loading..." +msgstr "載入..." + +#: addons/web/static/src/xml/base.xml:0 +msgid "Create" +msgstr "建立" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Drop" +msgstr "捨棄" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Backup" +msgstr "備份" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Restore" +msgstr "還原" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Password" +msgstr "密碼" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Back to Login" +msgstr "返回登入畫面" + +#: addons/web/static/src/xml/base.xml:0 +msgid "CREATE DATABASE" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Master password:" +msgstr "主密碼:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "New database name:" +msgstr "新資料庫名稱:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Load Demonstration data:" +msgstr "載入演示資料:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Default language:" +msgstr "預設語言:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Admin password:" +msgstr "管理員密碼:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Confirm password:" +msgstr "確認密碼:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "DROP DATABASE" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Database:" +msgstr "資料庫:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Master Password:" +msgstr "主密碼:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "BACKUP DATABASE" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "RESTORE DATABASE" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "File:" +msgstr "檔案:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "CHANGE MASTER PASSWORD" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "New master password:" +msgstr "新主密碼:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Confirm new master password:" +msgstr "確認新主密碼:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "User:" +msgstr "使用者:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Password:" +msgstr "密碼:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Database" +msgstr "資料庫" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Login" +msgstr "登入" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Bad username or password" +msgstr "使用者名稱或密碼不對" + +#: addons/web/static/src/xml/base.xml:0 +msgid "" +"We think that daily job activities can be more intuitive, efficient, " +"automated, .. and even fun." +msgstr "我們認為日常工作可以更直觀、更有效率、更自動化......以至更有趣。" + +#: addons/web/static/src/xml/base.xml:0 +msgid "OpenERP's vision to be:" +msgstr "OpenERP 的願景為:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Full featured" +msgstr "完整功能" + +#: addons/web/static/src/xml/base.xml:0 +msgid "" +"Today's enterprise challenges are multiple. We provide one module for each " +"need." +msgstr "今時今日企業面對的問題很多。我們為每件工作皆提供處理的模組。" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Open Source" +msgstr "開源碼" + +#: addons/web/static/src/xml/base.xml:0 +msgid "" +"To Build a great product, we rely on the knowledge of thousands of " +"contributors." +msgstr "要製作好用的產品,我們靠的是成千上萬的自願貢獻者。" + +#: addons/web/static/src/xml/base.xml:0 +msgid "User Friendly" +msgstr "易用" + +#: addons/web/static/src/xml/base.xml:0 +msgid "" +"In order to be productive, people need clean and easy to use interface." +msgstr "要工作更有效率,人們要更簡潔、更易用的介面。" + +#: addons/web/static/src/xml/base.xml:0 +msgid "(" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid ")" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "LOGOUT" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "«" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "»" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "oe_secondary_menu_item" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "oe_secondary_submenu_item" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Hide this tip" +msgstr "隱藏此提示" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Disable all tips" +msgstr "停用所有提示" + +#: addons/web/static/src/xml/base.xml:0 +msgid "View#" +msgstr "檢視#" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Fields" +msgstr "欄位" + +#: addons/web/static/src/xml/base.xml:0 +msgid "View labels" +msgstr "檢視標籤" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Sidebar Relates" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Field" +msgstr "欄位" + +#: addons/web/static/src/xml/base.xml:0 +msgid ":" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Translate view" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Translate sidebar" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Delete" +msgstr "刪除" + +#: addons/web/static/src/xml/base.xml:0 +msgid "First" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "<" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid ">" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Last" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "♻" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Save & Edit" +msgstr "儲存並編輯" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Create & Edit" +msgstr "建立並編輯" + +#: addons/web/static/src/xml/base.xml:0 +msgid "New" +msgstr "新增" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Duplicate" +msgstr "製作複本" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Readonly/Editable" +msgstr "唯讀/可編輯" + +#: addons/web/static/src/xml/base.xml:0 +msgid "<<" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "0" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "/" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid ">>" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Add" +msgstr "添加" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Unhandled widget" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "?" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "#" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Done" +msgstr "完成" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Open..." +msgstr "開啟..." + +#: addons/web/static/src/xml/base.xml:0 +msgid "Create..." +msgstr "建立..." + +#: addons/web/static/src/xml/base.xml:0 +msgid "Search..." +msgstr "搜尋..." + +#: addons/web/static/src/xml/base.xml:0 +msgid "..." +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Uploading ..." +msgstr "上載 ..." + +#: addons/web/static/src/xml/base.xml:0 +msgid "Select" +msgstr "選取" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Save As" +msgstr "另存為" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Clear" +msgstr "清除" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Advanced Filter" +msgstr "進階篩選" + +#: addons/web/static/src/xml/base.xml:0 +msgid "-- Filters --" +msgstr "-- 篩選 --" + +#: addons/web/static/src/xml/base.xml:0 +msgid "-- Actions --" +msgstr "-- 動作 --" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Save Filter" +msgstr "儲存篩選" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Manage Filters" +msgstr "管理篩選" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Filter Name:" +msgstr "篩選名稱:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "(Any existing filter with the same name will be replaced)" +msgstr "(會取代所有同名篩選)" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Any of the following conditions must match" +msgstr "以下任何條件都要符合" + +#: addons/web/static/src/xml/base.xml:0 +msgid "All the following conditions must match" +msgstr "以下所有條件都要符合" + +#: addons/web/static/src/xml/base.xml:0 +msgid "None of the following conditions must match" +msgstr "以下無一條件需要符合" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Add condition" +msgstr "添加條件" + +#: addons/web/static/src/xml/base.xml:0 +msgid "and" +msgstr "和" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Cancel" +msgstr "取消" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Save & New" +msgstr "儲存並新增" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Save & Close" +msgstr "儲存並關閉" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Export" +msgstr "匯出" + +#: addons/web/static/src/xml/base.xml:0 +msgid "" +"This wizard will export all data that matches the current search criteria to " +"a CSV file.\n" +" You can export all data or only the fields that can be " +"reimported after modification." +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Export Type:" +msgstr "匯出類型:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Import Compatible Export" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Export all Data" +msgstr "匯出所有資料" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Export Formats" +msgstr "匯出格式" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Available fields" +msgstr "可提供欄位" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Fields to export" +msgstr "要匯出欄位" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Save fields list" +msgstr "儲存欄位清單" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Remove" +msgstr "移除" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Remove All" +msgstr "全部移除" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Name" +msgstr "名稱" + +#: addons/web/static/src/xml/base.xml:0 +msgid " " +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Save as:" +msgstr "另存為:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Ok" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Saved exports:" +msgstr "已儲存匯出:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Old Password:" +msgstr "舊密碼:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "New Password:" +msgstr "新密碼:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Confirm Password:" +msgstr "確認密碼:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Import" +msgstr "匯入" + +#: addons/web/static/src/xml/base.xml:0 +msgid "1. Import a .CSV file" +msgstr "1. 匯入 .CSV 檔" + +#: addons/web/static/src/xml/base.xml:0 +msgid "" +"Select a .CSV file to import. If you need a sample of file to import,\n" +" you should use the export tool with the \"Import Compatible\" option." +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "CSV File:" +msgstr "CSV 檔:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "2. Check your file format" +msgstr "2. 檢查檔案格式" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Import Options" +msgstr "匯入選項" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Does your file have titles?" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Separator:" +msgstr "分隔符號:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Delimiter:" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Encoding:" +msgstr "編碼:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "UTF-8" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Latin 1" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Lines to skip" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "The import failed due to:" +msgstr "匯入失敗,原因為:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Here is a preview of the file we could not import:" +msgstr "無法匯入檔案的預覽:" + +#: addons/web/static/src/xml/base.xml:0 +msgid "OpenERP Web" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Version" +msgstr "版本" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Copyright © 2011-TODAY OpenERP SA. All Rights Reserved." +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "OpenERP is a trademark of the" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "OpenERP SA Company" +msgstr "OpenERP SA 公司" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Licenced under the terms of" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "GNU Affero General Public License" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "About OpenERP" +msgstr "有關 OpenERP" + +#: addons/web/static/src/xml/base.xml:0 +msgid "OpenERP" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "" +"is a free enterprise-scale software system that is designed to boost\n" +" productivity and profit through data integration. It connects, " +"improves and\n" +" manages business processes in areas such as sales, finance, " +"supply chain,\n" +" project management, production, services, CRM, etc..." +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "" +"The system is platform-independent, and can be installed on Windows, Mac OS " +"X,\n" +" and various Linux and other Unix-based distributions. Its " +"architecture enables\n" +" new functionality to be rapidly created, modifications to be " +"made to a\n" +" production system and migration to a new version to be " +"straightforward." +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "" +"Depending on your needs, OpenERP is available through a web or application " +"client." +msgstr "" diff --git a/addons/web_calendar/po/nl.po b/addons/web_calendar/po/nl.po new file mode 100644 index 00000000000..b3ee13bf096 --- /dev/null +++ b/addons/web_calendar/po/nl.po @@ -0,0 +1,22 @@ +# Dutch translation for openerp-web +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-10-07 10:38+0200\n" +"PO-Revision-Date: 2011-12-01 13:57+0000\n" +"Last-Translator: Douwe Wullink (Dypalio) \n" +"Language-Team: Dutch \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-12-02 05:28+0000\n" +"X-Generator: Launchpad (build 14414)\n" + +#: addons/web_calendar/static/src/xml/web_calendar.xml:0 +msgid " " +msgstr " " diff --git a/addons/web_calendar/po/ru.po b/addons/web_calendar/po/ru.po new file mode 100644 index 00000000000..e83a1e66d47 --- /dev/null +++ b/addons/web_calendar/po/ru.po @@ -0,0 +1,22 @@ +# Russian translation for openerp-web +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-10-07 10:38+0200\n" +"PO-Revision-Date: 2011-12-02 07:07+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Russian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-12-03 05:46+0000\n" +"X-Generator: Launchpad (build 14418)\n" + +#: addons/web_calendar/static/src/xml/web_calendar.xml:0 +msgid " " +msgstr "" diff --git a/addons/web_dashboard/po/nl.po b/addons/web_dashboard/po/nl.po new file mode 100644 index 00000000000..909cb924de4 --- /dev/null +++ b/addons/web_dashboard/po/nl.po @@ -0,0 +1,46 @@ +# Dutch translation for openerp-web +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-10-07 10:39+0200\n" +"PO-Revision-Date: 2011-12-01 13:58+0000\n" +"Last-Translator: Douwe Wullink (Dypalio) \n" +"Language-Team: Dutch \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-12-02 05:28+0000\n" +"X-Generator: Launchpad (build 14414)\n" + +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 +msgid "Reset" +msgstr "Reset" + +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 +msgid "Undo" +msgstr "Ongedaan maken" + +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 +msgid "Add Widget" +msgstr "Widget toevoegen" + +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 +msgid "Change layout" +msgstr "Layout wijzigen" + +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 +msgid "Choose dashboard layout" +msgstr "Kies dashboard layout" + +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 +msgid "progress:" +msgstr "voortgang:" + +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 +msgid "%" +msgstr "%" diff --git a/addons/web_dashboard/po/ru.po b/addons/web_dashboard/po/ru.po new file mode 100644 index 00000000000..018ada93a30 --- /dev/null +++ b/addons/web_dashboard/po/ru.po @@ -0,0 +1,46 @@ +# Russian translation for openerp-web +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-10-07 10:39+0200\n" +"PO-Revision-Date: 2011-12-02 07:09+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Russian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-12-03 05:46+0000\n" +"X-Generator: Launchpad (build 14418)\n" + +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 +msgid "Reset" +msgstr "" + +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 +msgid "Undo" +msgstr "" + +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 +msgid "Add Widget" +msgstr "" + +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 +msgid "Change layout" +msgstr "" + +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 +msgid "Choose dashboard layout" +msgstr "" + +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 +msgid "progress:" +msgstr "" + +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 +msgid "%" +msgstr "" diff --git a/addons/web_default_home/po/nl.po b/addons/web_default_home/po/nl.po new file mode 100644 index 00000000000..188d729df02 --- /dev/null +++ b/addons/web_default_home/po/nl.po @@ -0,0 +1,38 @@ +# Dutch translation for openerp-web +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-10-07 10:39+0200\n" +"PO-Revision-Date: 2011-12-01 14:00+0000\n" +"Last-Translator: Douwe Wullink (Dypalio) \n" +"Language-Team: Dutch \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-12-02 05:28+0000\n" +"X-Generator: Launchpad (build 14414)\n" + +#: addons/web_default_home/static/src/xml/web_default_home.xml:0 +msgid "Welcome to your new OpenERP instance." +msgstr "Welkom bij uw nieuwe OpenERP versie." + +#: addons/web_default_home/static/src/xml/web_default_home.xml:0 +msgid "Remember to bookmark this page." +msgstr "Vergeet niet een bladwijzer te maken van deze pagina" + +#: addons/web_default_home/static/src/xml/web_default_home.xml:0 +msgid "Remember your login:" +msgstr "" + +#: addons/web_default_home/static/src/xml/web_default_home.xml:0 +msgid "Choose the first OpenERP Application you want to install.." +msgstr "Kies de eerste OpenERP applicatie die u wilt installeren.." + +#: addons/web_default_home/static/src/xml/web_default_home.xml:0 +msgid "Install" +msgstr "Installeren" diff --git a/addons/web_default_home/po/ru.po b/addons/web_default_home/po/ru.po new file mode 100644 index 00000000000..8cd2177a7fd --- /dev/null +++ b/addons/web_default_home/po/ru.po @@ -0,0 +1,38 @@ +# Russian translation for openerp-web +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-10-07 10:39+0200\n" +"PO-Revision-Date: 2011-12-02 07:13+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Russian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-12-03 05:46+0000\n" +"X-Generator: Launchpad (build 14418)\n" + +#: addons/web_default_home/static/src/xml/web_default_home.xml:0 +msgid "Welcome to your new OpenERP instance." +msgstr "" + +#: addons/web_default_home/static/src/xml/web_default_home.xml:0 +msgid "Remember to bookmark this page." +msgstr "" + +#: addons/web_default_home/static/src/xml/web_default_home.xml:0 +msgid "Remember your login:" +msgstr "" + +#: addons/web_default_home/static/src/xml/web_default_home.xml:0 +msgid "Choose the first OpenERP Application you want to install.." +msgstr "" + +#: addons/web_default_home/static/src/xml/web_default_home.xml:0 +msgid "Install" +msgstr "" diff --git a/addons/web_diagram/po/de.po b/addons/web_diagram/po/de.po index 9b7a9c30e89..d26b9578211 100644 --- a/addons/web_diagram/po/de.po +++ b/addons/web_diagram/po/de.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openerp-web\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-10-07 10:39+0200\n" -"PO-Revision-Date: 2011-10-10 12:41+0000\n" -"Last-Translator: Felix Schubert \n" +"PO-Revision-Date: 2011-12-03 10:46+0000\n" +"Last-Translator: Ferdinand @ Camptocamp \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" -"X-Generator: Launchpad (build 14299)\n" +"X-Launchpad-Export-Date: 2011-12-04 05:07+0000\n" +"X-Generator: Launchpad (build 14418)\n" #: addons/web_diagram/static/src/xml/base_diagram.xml:0 msgid "New Node" @@ -27,7 +27,7 @@ msgstr "" #: addons/web_diagram/static/src/xml/base_diagram.xml:0 msgid "Show Grid:" -msgstr "" +msgstr "Raster anzeigen" #: addons/web_diagram/static/src/xml/base_diagram.xml:0 msgid "First" diff --git a/addons/web_diagram/po/ru.po b/addons/web_diagram/po/ru.po new file mode 100644 index 00000000000..87ac8623dfd --- /dev/null +++ b/addons/web_diagram/po/ru.po @@ -0,0 +1,54 @@ +# Russian translation for openerp-web +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-10-07 10:39+0200\n" +"PO-Revision-Date: 2011-12-02 07:14+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Russian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-12-03 05:46+0000\n" +"X-Generator: Launchpad (build 14418)\n" + +#: addons/web_diagram/static/src/xml/base_diagram.xml:0 +msgid "New Node" +msgstr "" + +#: addons/web_diagram/static/src/xml/base_diagram.xml:0 +msgid "New Edge" +msgstr "" + +#: addons/web_diagram/static/src/xml/base_diagram.xml:0 +msgid "Show Grid:" +msgstr "" + +#: addons/web_diagram/static/src/xml/base_diagram.xml:0 +msgid "First" +msgstr "" + +#: addons/web_diagram/static/src/xml/base_diagram.xml:0 +msgid "<<" +msgstr "" + +#: addons/web_diagram/static/src/xml/base_diagram.xml:0 +msgid "0" +msgstr "" + +#: addons/web_diagram/static/src/xml/base_diagram.xml:0 +msgid "/" +msgstr "" + +#: addons/web_diagram/static/src/xml/base_diagram.xml:0 +msgid ">>" +msgstr "" + +#: addons/web_diagram/static/src/xml/base_diagram.xml:0 +msgid "Last" +msgstr "" diff --git a/addons/web_hello/po/fr.po b/addons/web_hello/po/fr.po new file mode 100644 index 00000000000..844dabf38ab --- /dev/null +++ b/addons/web_hello/po/fr.po @@ -0,0 +1,20 @@ +# French translation for openerp-web +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-10-07 10:39+0200\n" +"PO-Revision-Date: 2011-12-03 02:20+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: French \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-12-04 05:07+0000\n" +"X-Generator: Launchpad (build 14418)\n" + + diff --git a/addons/web_mobile/po/nl.po b/addons/web_mobile/po/nl.po new file mode 100644 index 00000000000..5b9799ab09c --- /dev/null +++ b/addons/web_mobile/po/nl.po @@ -0,0 +1,66 @@ +# Dutch translation for openerp-web +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-10-07 10:39+0200\n" +"PO-Revision-Date: 2011-12-01 14:02+0000\n" +"Last-Translator: Douwe Wullink (Dypalio) \n" +"Language-Team: Dutch \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-12-02 05:28+0000\n" +"X-Generator: Launchpad (build 14414)\n" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "OpenERP" +msgstr "OpenERP" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Database:" +msgstr "Database:" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Login:" +msgstr "Inlognaam:" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Password:" +msgstr "Wachtwoord:" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Login" +msgstr "Aanmelden" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Bad username or password" +msgstr "Verkeerde gebruikersnaam of wachtwoord" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Favourite" +msgstr "Favoriet" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Preference" +msgstr "Voorkeur" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Applications" +msgstr "Toepassingen" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Options" +msgstr "Opties" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Logout" +msgstr "Afmelden" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid ":" +msgstr ":" diff --git a/addons/web_mobile/po/ru.po b/addons/web_mobile/po/ru.po new file mode 100644 index 00000000000..a7235fe09e2 --- /dev/null +++ b/addons/web_mobile/po/ru.po @@ -0,0 +1,66 @@ +# Russian translation for openerp-web +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-10-07 10:39+0200\n" +"PO-Revision-Date: 2011-12-02 07:20+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Russian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-12-03 05:46+0000\n" +"X-Generator: Launchpad (build 14418)\n" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "OpenERP" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Database:" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Login:" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Password:" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Login" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Bad username or password" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Favourite" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Preference" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Applications" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Options" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Logout" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid ":" +msgstr "" diff --git a/openerp/addons/base/i18n/ar.po b/openerp/addons/base/i18n/ar.po index 42f5f757988..dd0faf0f0cd 100644 --- a/openerp/addons/base/i18n/ar.po +++ b/openerp/addons/base/i18n/ar.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 5.0.4\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2011-01-11 11:14+0000\n" -"PO-Revision-Date: 2011-11-21 12:13+0000\n" +"PO-Revision-Date: 2011-12-04 16:26+0000\n" "Last-Translator: kifcaliph \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-22 05:00+0000\n" -"X-Generator: Launchpad (build 14299)\n" +"X-Launchpad-Export-Date: 2011-12-05 05:21+0000\n" +"X-Generator: Launchpad (build 14418)\n" #. module: base #: view:ir.filters:0 @@ -874,7 +874,7 @@ msgstr "حرف" #: model:ir.actions.act_window,name:base.action_publisher_warranty_contract_form #: model:ir.ui.menu,name:base.menu_publisher_warranty_contract msgid "Contracts" -msgstr "المتعاقدون" +msgstr "عقود" #. module: base #: selection:base.language.install,lang:0 diff --git a/openerp/addons/base/i18n/en_GB.po b/openerp/addons/base/i18n/en_GB.po index 1fc909a83f4..ecfc4f378ea 100644 --- a/openerp/addons/base/i18n/en_GB.po +++ b/openerp/addons/base/i18n/en_GB.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-server\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-01-11 11:14+0000\n" -"PO-Revision-Date: 2011-09-30 20:48+0000\n" -"Last-Translator: Antony Lesuisse (OpenERP) \n" +"PO-Revision-Date: 2011-12-02 12:19+0000\n" +"Last-Translator: John Bradshaw \n" "Language-Team: English (United Kingdom) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-04 04:54+0000\n" -"X-Generator: Launchpad (build 14231)\n" +"X-Launchpad-Export-Date: 2011-12-03 05:13+0000\n" +"X-Generator: Launchpad (build 14418)\n" #. module: base #: view:ir.filters:0 @@ -6118,7 +6118,7 @@ msgstr "Base" #. module: base #: selection:base.language.install,lang:0 msgid "Telugu / తెలుగు" -msgstr "" +msgstr "Telugu / తెలుగు" #. module: base #: model:res.country,name:base.lr @@ -7226,7 +7226,7 @@ msgstr "Customer" #. module: base #: selection:base.language.install,lang:0 msgid "Spanish (NI) / Español (NI)" -msgstr "" +msgstr "Spanish (NI) / Español (NI)" #. module: base #: field:ir.module.module,shortdesc:0 @@ -7247,7 +7247,7 @@ msgstr "Hour 00->24: %(h24)s" #. module: base #: field:ir.cron,nextcall:0 msgid "Next Execution Date" -msgstr "" +msgstr "Next Execution Date" #. module: base #: help:multi_company.default,field_id:0 @@ -7311,12 +7311,12 @@ msgstr "Cancel Install" #. module: base #: field:ir.model.fields,selection:0 msgid "Selection Options" -msgstr "" +msgstr "Selection Options" #. module: base #: field:res.partner.category,parent_right:0 msgid "Right parent" -msgstr "" +msgstr "Right parent" #. module: base #: view:res.lang:0 @@ -7334,6 +7334,7 @@ msgstr "Copy Object" msgid "" "Group(s) cannot be deleted, because some user(s) still belong to them: %s !" msgstr "" +"Group(s) cannot be deleted, because some user(s) still belong to them: %s !" #. module: base #: model:ir.actions.act_window,name:base.action_country_state @@ -7388,6 +7389,9 @@ msgid "" "\n" "[object with reference: %s - %s]" msgstr "" +"\n" +"\n" +"[object with reference: %s - %s]" #. module: base #: model:ir.model,name:base.model_ir_default @@ -7427,6 +7431,8 @@ msgid "" "Changing the type of a column is not yet supported. Please drop it and " "create it again!" msgstr "" +"Changing the type of a column is not yet supported. Please drop it and " +"create it again!" #. module: base #: field:ir.ui.view_sc,user_id:0 @@ -7458,7 +7464,7 @@ msgstr "Configuration" #. module: base #: model:ir.model,name:base.model_publisher_warranty_contract_wizard msgid "publisher_warranty.contract.wizard" -msgstr "" +msgstr "publisher_warranty.contract.wizard" #. module: base #: field:ir.actions.server,expression:0 @@ -7552,7 +7558,7 @@ msgstr "Load an Official Translation" #. module: base #: view:res.currency:0 msgid "Miscelleanous" -msgstr "" +msgstr "Miscellaneous" #. module: base #: model:res.partner.category,name:base.res_partner_category_10 @@ -7602,7 +7608,7 @@ msgstr "" #. module: base #: view:base.language.import:0 msgid "- type,name,res_id,src,value" -msgstr "" +msgstr "- type,name,res_id,src,value" #. module: base #: model:res.country,name:base.hm @@ -7644,6 +7650,8 @@ msgid "" "You try to install module '%s' that depends on module '%s'.\n" "But the latter module is not available in your system." msgstr "" +"You try to install module '%s' that depends on module '%s'.\n" +"But the latter module is not available in your system." #. module: base #: view:base.language.import:0 @@ -7753,7 +7761,7 @@ msgstr "undefined get method !" #. module: base #: selection:base.language.install,lang:0 msgid "Norwegian Bokmål / Norsk bokmål" -msgstr "" +msgstr "Norwegian Bokmål / Norsk bokmål" #. module: base #: help:res.config.users,new_password:0 @@ -7762,6 +7770,8 @@ msgid "" "Only specify a value if you want to change the user password. This user will " "have to logout and login again!" msgstr "" +"Only specify a value if you want to change the user password. This user will " +"have to logout and login again!" #. module: base #: model:res.partner.title,name:base.res_partner_title_madam @@ -7781,7 +7791,7 @@ msgstr "Dashboards" #. module: base #: help:ir.attachment,type:0 msgid "Binary File or external URL" -msgstr "" +msgstr "Binary File or external URL" #. module: base #: field:res.config.users,new_password:0 @@ -7898,7 +7908,7 @@ msgstr "Croatian / hrvatski jezik" #. module: base #: field:base.language.install,overwrite:0 msgid "Overwrite Existing Terms" -msgstr "" +msgstr "Overwrite Existing Terms" #. module: base #: help:ir.actions.server,code:0 @@ -7929,7 +7939,7 @@ msgstr "Trigger" #. module: base #: model:ir.model,name:base.model_base_module_update msgid "Update Module" -msgstr "" +msgstr "Update Module" #. module: base #: view:ir.model.fields:0 @@ -7960,6 +7970,9 @@ msgid "" "defining a list of (key, label) pairs. For example: " "[('blue','Blue'),('yellow','Yellow')]" msgstr "" +"List of options for a selection field, specified as a Python expression " +"defining a list of (key, label) pairs. For example: " +"[('blue','Blue'),('yellow','Yellow')]" #. module: base #: selection:base.language.export,state:0 @@ -7972,6 +7985,8 @@ msgid "" "Indicates whether this object model lives in memory only, i.e. is not " "persisted (osv.osv_memory)" msgstr "" +"Indicates whether this object model lives in memory only, i.e. is not " +"persisted (osv.osv_memory)" #. module: base #: field:res.partner,child_ids:0 @@ -8089,6 +8104,8 @@ msgid "" "Name of the method to be called on the object when this scheduler is " "executed." msgstr "" +"Name of the method to be called on the object when this scheduler is " +"executed." #. module: base #: code:addons/base/ir/ir_model.py:219 @@ -8097,6 +8114,8 @@ msgid "" "The Selection Options expression is must be in the [('key','Label'), ...] " "format!" msgstr "" +"The Selection Options expression is must be in the [('key','Label'), ...] " +"format!" #. module: base #: view:ir.actions.report.xml:0 @@ -8115,6 +8134,8 @@ msgid "" "--\n" "%(name)s %(email)s\n" msgstr "" +"--\n" +"%(name)s %(email)s\n" #. module: base #: model:res.country,name:base.eh @@ -8157,6 +8178,8 @@ msgid "" "Expression, must be True to match\n" "use context.get or user (browse)" msgstr "" +"Expression, must be True to match\n" +"use context.get or user (browse)" #. module: base #: model:res.country,name:base.bg @@ -8222,7 +8245,7 @@ msgstr "Administration" #. module: base #: view:base.module.update:0 msgid "Click on Update below to start the process..." -msgstr "" +msgstr "Click on Update below to start the process..." #. module: base #: model:res.country,name:base.ir @@ -8233,12 +8256,12 @@ msgstr "Iran" #: model:ir.actions.act_window,name:base.res_widget_user_act_window #: model:ir.ui.menu,name:base.menu_res_widget_user_act_window msgid "Widgets per User" -msgstr "" +msgstr "Widgets per User" #. module: base #: selection:base.language.install,lang:0 msgid "Slovak / Slovenský jazyk" -msgstr "" +msgstr "Slovak / Slovenský jazyk" #. module: base #: field:base.language.export,state:0 @@ -8256,7 +8279,7 @@ msgstr "Symbol" #: help:res.config.users,login:0 #: help:res.users,login:0 msgid "Used to log into the system" -msgstr "" +msgstr "Used to log into the system" #. module: base #: view:base.update.translations:0 @@ -8308,13 +8331,13 @@ msgstr "CSV File" #. module: base #: field:res.company,account_no:0 msgid "Account No." -msgstr "" +msgstr "Account No." #. module: base #: code:addons/base/res/res_lang.py:157 #, python-format msgid "Base Language 'en_US' can not be deleted !" -msgstr "" +msgstr "Base Language 'en_US' can not be deleted !" #. module: base #: selection:ir.model,state:0 @@ -8353,6 +8376,8 @@ msgid "" "Operation prohibited by access rules, or performed on an already deleted " "document (Operation: %s, Document type: %s)." msgstr "" +"Operation prohibited by access rules, or performed on an already deleted " +"document (Operation: %s, Document type: %s)." #. module: base #: model:res.country,name:base.zr @@ -8376,12 +8401,12 @@ msgstr "Information" #. module: base #: view:res.widget.user:0 msgid "User Widgets" -msgstr "" +msgstr "User Widgets" #. module: base #: view:base.module.update:0 msgid "Update Module List" -msgstr "" +msgstr "Update Module List" #. module: base #: selection:res.partner.address,type:0 @@ -8415,7 +8440,7 @@ msgstr "Auto-Refresh" #: code:addons/base/ir/ir_model.py:62 #, python-format msgid "The osv_memory field can only be compared with = and != operator." -msgstr "" +msgstr "The osv_memory field can only be compared with = and != operator." #. module: base #: selection:ir.ui.view,type:0 @@ -8425,7 +8450,7 @@ msgstr "Diagram" #. module: base #: help:multi_company.default,name:0 msgid "Name it to easily find a record" -msgstr "" +msgstr "Name it to easily find a record" #. module: base #: model:ir.actions.act_window,name:base.grant_menu_access @@ -8436,13 +8461,13 @@ msgstr "Menu Items" #. module: base #: constraint:ir.rule:0 msgid "Rules are not supported for osv_memory objects !" -msgstr "" +msgstr "Rules are not supported for osv_memory objects !" #. module: base #: model:ir.ui.menu,name:base.menu_event_association #: model:ir.ui.menu,name:base.menu_event_main msgid "Events Organisation" -msgstr "" +msgstr "Events Organisation" #. module: base #: model:ir.actions.act_window,name:base.ir_sequence_actions @@ -8523,7 +8548,7 @@ msgstr "Add or not the coporate RML header" #. module: base #: help:workflow.transition,act_to:0 msgid "The destination activity." -msgstr "" +msgstr "The destination activity." #. module: base #: view:base.module.update:0 @@ -8549,7 +8574,7 @@ msgstr "Danish / Dansk" #. module: base #: selection:ir.model.fields,select_level:0 msgid "Advanced Search (deprecated)" -msgstr "" +msgstr "Advanced Search (deprecated)" #. module: base #: model:res.country,name:base.cx @@ -8583,7 +8608,7 @@ msgstr "Extra Info" #: model:ir.actions.act_window,name:base.act_values_form_action #: model:ir.ui.menu,name:base.menu_values_form_action msgid "Client Events" -msgstr "" +msgstr "Client Events" #. module: base #: view:ir.module.module:0 @@ -8604,7 +8629,7 @@ msgstr "You can not have two users with the same login !" #. module: base #: model:ir.model,name:base.model_multi_company_default msgid "Default multi company" -msgstr "" +msgstr "Default multi company" #. module: base #: view:res.request:0 @@ -8615,7 +8640,7 @@ msgstr "Send" #: field:res.config.users,menu_tips:0 #: field:res.users,menu_tips:0 msgid "Menu Tips" -msgstr "" +msgstr "Menu Tips" #. module: base #: field:ir.translation,src:0 @@ -8677,7 +8702,7 @@ msgstr "Dominican Republic" #. module: base #: selection:base.language.install,lang:0 msgid "Serbian (Cyrillic) / српски" -msgstr "" +msgstr "Serbian (Cyrillic) / српски" #. module: base #: code:addons/orm.py:2161 @@ -8686,6 +8711,8 @@ msgid "" "Invalid group_by specification: \"%s\".\n" "A group_by specification must be a list of valid fields." msgstr "" +"Invalid group_by specification: \"%s\".\n" +"A group_by specification must be a list of valid fields." #. module: base #: model:res.country,name:base.sa @@ -8709,13 +8736,13 @@ msgstr "Relation Field" #. module: base #: view:res.partner.event:0 msgid "Event Logs" -msgstr "" +msgstr "Event Logs" #. module: base #: code:addons/base/module/wizard/base_module_configuration.py:37 #, python-format msgid "System Configuration done" -msgstr "" +msgstr "System Configuration done" #. module: base #: field:workflow.triggers,instance_id:0 @@ -8741,7 +8768,7 @@ msgstr "XML path" #. module: base #: selection:ir.actions.todo,restart:0 msgid "On Skip" -msgstr "" +msgstr "On Skip" #. module: base #: model:res.country,name:base.gn @@ -8764,14 +8791,14 @@ msgstr "" #: code:addons/base/ir/ir_ui_menu.py:285 #, python-format msgid "Error ! You can not create recursive Menu." -msgstr "" +msgstr "Error ! You can not create recursive Menu." #. module: base #: model:ir.actions.act_window,name:base.action_publisher_warranty_contract_add_wizard #: model:ir.ui.menu,name:base.menu_publisher_warranty_contract_add #: view:publisher_warranty.contract.wizard:0 msgid "Register a Contract" -msgstr "" +msgstr "Register a Contract" #. module: base #: view:ir.rule:0 @@ -8779,12 +8806,14 @@ msgid "" "3. If user belongs to several groups, the results from step 2 are combined " "with logical OR operator" msgstr "" +"3. If user belongs to several groups, the results from step 2 are combined " +"with logical OR operator" #. module: base #: code:addons/base/publisher_warranty/publisher_warranty.py:145 #, python-format msgid "Please check your publisher warranty contract name and validity." -msgstr "" +msgstr "Please check your publisher warranty contract name and validity." #. module: base #: model:res.country,name:base.sv @@ -8829,7 +8858,7 @@ msgstr "Leads & Opportunities" #. module: base #: selection:base.language.install,lang:0 msgid "Romanian / română" -msgstr "" +msgstr "Romanian / română" #. module: base #: view:res.log:0 @@ -8867,7 +8896,7 @@ msgstr "ir.actions.act_window" #. module: base #: field:ir.rule,perm_create:0 msgid "Apply For Create" -msgstr "" +msgstr "Apply For Create" #. module: base #: model:res.country,name:base.vi @@ -8893,6 +8922,11 @@ msgid "" "be assigned to specific groups in order to make them accessible to some " "users within the system." msgstr "" +"Manage and customize the items available and displayed in your OpenERP " +"system menu. You can delete an item by clicking on the box at the beginning " +"of each line and then delete it through the button that appears. Items can " +"be assigned to specific groups to make them accessible to some users within " +"the system." #. module: base #: field:ir.ui.view,field_parent:0 @@ -8933,7 +8967,7 @@ msgstr "View Auto-Load" #: code:addons/base/ir/ir_model.py:232 #, python-format msgid "You cannot remove the field '%s' !" -msgstr "" +msgstr "You cannot remove the field '%s' !" #. module: base #: field:ir.exports,resource:0 @@ -8945,23 +8979,23 @@ msgstr "Resource" #. module: base #: field:ir.ui.menu,web_icon:0 msgid "Web Icon File" -msgstr "" +msgstr "Web Icon File" #. module: base #: selection:base.language.install,lang:0 msgid "Persian / فارس" -msgstr "" +msgstr "Persian / فارس" #. module: base #: view:ir.actions.act_window:0 msgid "View Ordering" -msgstr "" +msgstr "View Ordering" #. module: base #: code:addons/base/module/wizard/base_module_upgrade.py:95 #, python-format msgid "Unmet dependency !" -msgstr "" +msgstr "Unmet dependency !" #. module: base #: view:base.language.import:0 @@ -8969,6 +9003,8 @@ msgid "" "Supported file formats: *.csv (Comma-separated values) or *.po (GetText " "Portable Objects)" msgstr "" +"Supported file formats: *.csv (Comma-separated values) or *.po (GetText " +"Portable Objects)" #. module: base #: code:addons/base/ir/ir_model.py:487 @@ -8977,11 +9013,13 @@ msgid "" "You can not delete this document (%s) ! Be sure your user belongs to one of " "these groups: %s." msgstr "" +"You can not delete this document (%s) ! Be sure your user belongs to one of " +"these groups: %s." #. module: base #: model:ir.model,name:base.model_base_module_configuration msgid "base.module.configuration" -msgstr "" +msgstr "base.module.configuration" #. module: base #: field:base.language.export,name:0 @@ -9060,7 +9098,7 @@ msgstr "Publisher Warranty Contract" #. module: base #: selection:base.language.install,lang:0 msgid "Bulgarian / български език" -msgstr "" +msgstr "Bulgarian / български език" #. module: base #: model:ir.ui.menu,name:base.menu_aftersale @@ -9145,6 +9183,10 @@ msgid "" "uncheck the 'Suppliers' filter button in order to search in all your " "partners, including customers and prospects." msgstr "" +"You can access all information regarding your suppliers from the supplier " +"form: accounting data, history of emails, meetings, purchases, etc. You can " +"uncheck the 'Suppliers' filter button in order to search in all your " +"partners, including customers and prospects." #. module: base #: model:res.country,name:base.rw @@ -9226,6 +9268,8 @@ msgid "" "1. Global rules are combined together with a logical AND operator, and with " "the result of the following steps" msgstr "" +"1. Global rules are combined together with a logical AND operator, and with " +"the result of the following steps" #. module: base #: field:res.partner.category,name:0 @@ -9250,7 +9294,7 @@ msgstr "%X - Appropriate time representation." #. module: base #: selection:base.language.install,lang:0 msgid "Spanish (SV) / Español (SV)" -msgstr "" +msgstr "Spanish (SV) / Español (SV)" #. module: base #: help:res.lang,grouping:0 @@ -9284,7 +9328,7 @@ msgstr "Wizard Button" #. module: base #: selection:ir.translation,type:0 msgid "Report/Template" -msgstr "" +msgstr "Report/Template" #. module: base #: selection:ir.actions.act_window.view,view_mode:0 @@ -9328,7 +9372,7 @@ msgstr "Split Mode" #. module: base #: view:base.module.upgrade:0 msgid "Note that this operation might take a few minutes." -msgstr "" +msgstr "Note that this operation might take a few minutes." #. module: base #: model:ir.ui.menu,name:base.menu_localisation @@ -9377,11 +9421,13 @@ msgid "" "Only one client action will be executed, last client action will be " "considered in case of multiple client actions." msgstr "" +"Only one client action will be executed, last client action will be " +"considered in case of multiple client actions." #. module: base #: view:res.lang:0 msgid "%j - Day of the year [001,366]." -msgstr "" +msgstr "%j - Day of the year [001,366]." #. module: base #: field:ir.actions.server,mobile:0 @@ -9410,7 +9456,7 @@ msgstr "Wizard Field" #. module: base #: help:ir.sequence,prefix:0 msgid "Prefix value of the record for the sequence" -msgstr "" +msgstr "Prefix value of the record for the sequence" #. module: base #: model:res.country,name:base.sc @@ -9448,12 +9494,12 @@ msgstr "Account Owner" #: code:addons/base/res/res_user.py:256 #, python-format msgid "Company Switch Warning" -msgstr "" +msgstr "Company Switch Warning" #. module: base #: model:ir.actions.act_window,name:base.action_res_widget_wizard msgid "Homepage Widgets Management" -msgstr "" +msgstr "Homepage Widgets Management" #. module: base #: field:workflow,osv:0 @@ -9464,7 +9510,7 @@ msgstr "Resource Object" #. module: base #: help:ir.sequence,number_increment:0 msgid "The next number of the sequence will be incremented by this number" -msgstr "" +msgstr "The next number of the sequence will be incremented by this number" #. module: base #: field:ir.cron,function:0 @@ -9476,7 +9522,7 @@ msgstr "Function" #. module: base #: view:res.widget:0 msgid "Search Widget" -msgstr "" +msgstr "Search Widget" #. module: base #: selection:ir.actions.todo,restart:0 From 8aadbe52880d54baae03f41c1f277c28119833d4 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Mon, 5 Dec 2011 10:48:38 +0100 Subject: [PATCH 37/59] [IMP] Disable dirty form check until page view and buttons refactoring is done bzr revid: fme@openerp.com-20111205094838-lddbf0tv64e8rxn1 --- addons/web/static/src/js/view_form.js | 1 + 1 file changed, 1 insertion(+) diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index fecfbf8a58b..e24455917d9 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -445,6 +445,7 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView# return def.promise(); }, can_be_discarded: function() { + return true; // Disabled until the page view and button refactoring is done return !this.is_dirty() || confirm(_t("Warning, the record has been modified, your changes will be discarded.")); }, /** From d7cab2845528e99e9cd4bf72ca2998b4116ba9cb Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Mon, 5 Dec 2011 10:58:43 +0100 Subject: [PATCH 38/59] [IMP] Calendar: No need to do default_get by hand The form will already do a default_get on do_show() when index is null bzr revid: fme@openerp.com-20111205095843-7ll9yna17dnltx6v --- addons/web_calendar/static/src/js/calendar.js | 29 +++++++++---------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/addons/web_calendar/static/src/js/calendar.js b/addons/web_calendar/static/src/js/calendar.js index ab81c16c586..75b168ccf5a 100644 --- a/addons/web_calendar/static/src/js/calendar.js +++ b/addons/web_calendar/static/src/js/calendar.js @@ -263,24 +263,21 @@ openerp.web_calendar.CalendarView = openerp.web.View.extend({ data = this.get_event_data(event_obj), form = self.form_dialog.form, fields_to_fetch = _(form.fields_view.fields).keys(); + this.dataset.index = null; self.creating_event_id = event_id; - self.dataset.default_get(fields_to_fetch, function(default_values) { - form.on_record_loaded(default_values).then(function() { - form.show_invalid = false; - _.each(['date_start', 'date_stop', 'date_delay'], function(field) { - var field_name = self[field]; - if (field_name) { - field = form.fields[field_name]; - field.set_value(data[field_name]); - field.dirty = true; - form.do_onchange(field); - } - }); - form.show_invalid = true; - form.do_show().then(function() { - self.form_dialog.open(); - }); + this.form_dialog.form.do_show().then(function() { + form.show_invalid = false; + _.each(['date_start', 'date_stop', 'date_delay'], function(field) { + var field_name = self[field]; + if (field_name) { + field = form.fields[field_name]; + field.set_value(data[field_name]); + field.dirty = true; + form.do_onchange(field); + } }); + form.show_invalid = true; + self.form_dialog.open(); }); }, do_save_event: function(event_id, event_obj) { From 8e6a398e206604537cb9fb8e7a2a4d15b79f60b9 Mon Sep 17 00:00:00 2001 From: Fabien Pinckaers Date: Mon, 5 Dec 2011 11:27:29 +0100 Subject: [PATCH 39/59] [FIX] select address on SO bzr revid: fp@tinyerp.com-20111205102729-30rk5kphl1it1xk2 --- addons/sale/sale.py | 10 ++++++++++ addons/sale/sale_view.xml | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/addons/sale/sale.py b/addons/sale/sale.py index 2188f6dee5f..48e51059cff 100644 --- a/addons/sale/sale.py +++ b/addons/sale/sale.py @@ -333,6 +333,16 @@ class sale_order(osv.osv): } return {'warning': warning} + def onchange_partner_order_id(self, cr, uid, ids, order_id, invoice_id=False, shipping_id=False, context={}): + if not order_id: + return {} + val = {} + if not invoice_id: + val['partner_invoice_id'] = order_id + if not shipping_id: + val['partner_shipping_id'] = order_id + return {'value': val} + def onchange_partner_id(self, cr, uid, ids, part): if not part: return {'value': {'partner_invoice_id': False, 'partner_shipping_id': False, 'partner_order_id': False, 'payment_term': False, 'fiscal_position': False}} diff --git a/addons/sale/sale_view.xml b/addons/sale/sale_view.xml index 72c231071ca..3610d2d5e9e 100644 --- a/addons/sale/sale_view.xml +++ b/addons/sale/sale_view.xml @@ -113,7 +113,7 @@ - + From 31098bc872f56bbd0c38240ff32bc7dffce09d2e Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Mon, 5 Dec 2011 11:50:28 +0100 Subject: [PATCH 40/59] [FIX] npybabel shebang line bzr revid: xmo@openerp.com-20111205105028-50o1m1lt2p3qvvkb --- npybabel.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/npybabel.py b/npybabel.py index 1b2e80a7a67..81cd6abf60a 100755 --- a/npybabel.py +++ b/npybabel.py @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/env python # EASY-INSTALL-ENTRY-SCRIPT: 'Babel==0.9.6','console_scripts','pybabel' __requires__ = 'Babel==0.9.6' import sys From ab2d749dd6a0ed6a2bbc4c4569d939eb555a578b Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Mon, 5 Dec 2011 11:51:01 +0100 Subject: [PATCH 41/59] [EXT] extract POT files bzr revid: xmo@openerp.com-20111205105101-ondavioyfv87xldl --- addons/web/po/web.pot | 402 ++++++++++++++++++---- addons/web_calendar/po/web_calendar.pot | 10 +- addons/web_chat/po/web_chat.pot | 2 +- addons/web_dashboard/po/web_dashboard.pot | 32 +- addons/web_diagram/po/web_diagram.pot | 10 +- addons/web_gantt/po/web_gantt.pot | 2 +- addons/web_graph/po/web_graph.pot | 2 +- addons/web_hello/po/web_hello.pot | 2 +- addons/web_mobile/po/web_mobile.pot | 26 +- addons/web_rpc/po/web_rpc.pot | 2 +- 10 files changed, 390 insertions(+), 100 deletions(-) diff --git a/addons/web/po/web.pot b/addons/web/po/web.pot index adfa15066fd..8ca40ae555e 100644 --- a/addons/web/po/web.pot +++ b/addons/web/po/web.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2011-10-07 10:38+0200\n" +"POT-Creation-Date: 2011-12-05 11:50+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,43 +17,259 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 0.9.6\n" -#: addons/web/static/src/js/view_form.js:355 +#: addons/web/static/src/js/data_import.js:73 +#: addons/web/static/src/js/view_form.js:2799 +#: addons/web/static/src/js/views.js:743 +msgid "Close" +msgstr "" + +#: addons/web/static/src/js/data_import.js:74 +msgid "Import File" +msgstr "" + +#: addons/web/static/src/js/data_import.js:109 +msgid "External ID" +msgstr "" + +#: addons/web/static/src/js/search.js:231 +msgid "Filter Entry" +msgstr "" + +#: addons/web/static/src/js/search.js:233 +#: addons/web/static/src/js/search.js:274 addons/web/static/src/xml/base.xml:0 +msgid "Cancel" +msgstr "" + +#: addons/web/static/src/js/search.js:236 +#: addons/web/static/src/js/search.js:277 +msgid "OK" +msgstr "" + +#: addons/web/static/src/js/search.js:272 addons/web/static/src/xml/base.xml:0 +msgid "Add to Dashboard" +msgstr "" + +#: addons/web/static/src/js/search.js:401 +msgid "Invalid Search" +msgstr "" + +#: addons/web/static/src/js/search.js:401 +msgid "triggered from search view" +msgstr "" + +#: addons/web/static/src/js/search.js:483 +#, python-format +msgid "Incorrect value for field %(fieldname)s: [%(value)s] is %(message)s" +msgstr "" + +#: addons/web/static/src/js/search.js:804 +msgid "not a valid integer" +msgstr "" + +#: addons/web/static/src/js/search.js:818 +msgid "not a valid number" +msgstr "" + +#: addons/web/static/src/js/search.js:1234 +msgid "contains" +msgstr "" + +#: addons/web/static/src/js/search.js:1235 +msgid "doesn't contain" +msgstr "" + +#: addons/web/static/src/js/search.js:1236 +#: addons/web/static/src/js/search.js:1251 +#: addons/web/static/src/js/search.js:1271 +#: addons/web/static/src/js/search.js:1291 +#: addons/web/static/src/js/search.js:1313 +msgid "is equal to" +msgstr "" + +#: addons/web/static/src/js/search.js:1237 +#: addons/web/static/src/js/search.js:1252 +#: addons/web/static/src/js/search.js:1272 +#: addons/web/static/src/js/search.js:1292 +#: addons/web/static/src/js/search.js:1314 +msgid "is not equal to" +msgstr "" + +#: addons/web/static/src/js/search.js:1238 +#: addons/web/static/src/js/search.js:1253 +#: addons/web/static/src/js/search.js:1273 +#: addons/web/static/src/js/search.js:1293 +#: addons/web/static/src/js/search.js:1315 +msgid "greater than" +msgstr "" + +#: addons/web/static/src/js/search.js:1239 +#: addons/web/static/src/js/search.js:1254 +#: addons/web/static/src/js/search.js:1274 +#: addons/web/static/src/js/search.js:1294 +#: addons/web/static/src/js/search.js:1316 +msgid "less than" +msgstr "" + +#: addons/web/static/src/js/search.js:1240 +#: addons/web/static/src/js/search.js:1255 +#: addons/web/static/src/js/search.js:1275 +#: addons/web/static/src/js/search.js:1295 +#: addons/web/static/src/js/search.js:1317 +msgid "greater or equal than" +msgstr "" + +#: addons/web/static/src/js/search.js:1241 +#: addons/web/static/src/js/search.js:1256 +#: addons/web/static/src/js/search.js:1276 +#: addons/web/static/src/js/search.js:1296 +#: addons/web/static/src/js/search.js:1318 +msgid "less or equal than" +msgstr "" + +#: addons/web/static/src/js/search.js:1307 +#: addons/web/static/src/js/search.js:1332 +msgid "is" +msgstr "" + +#: addons/web/static/src/js/search.js:1333 +msgid "is not" +msgstr "" + +#: addons/web/static/src/js/search.js:1346 +msgid "is true" +msgstr "" + +#: addons/web/static/src/js/search.js:1347 +msgid "is false" +msgstr "" + +#: addons/web/static/src/js/view_editor.js:182 +msgid "Do you really want to remove this view?" +msgstr "" + +#: addons/web/static/src/js/view_editor.js:454 +msgid "Do you really want to remove this node?" +msgstr "" + +#: addons/web/static/src/js/view_form.js:433 +msgid "Do you really want to delete this record?" +msgstr "" + +#: addons/web/static/src/js/view_form.js:448 msgid "Warning, the record has been modified, your changes will be discarded." msgstr "" -#: addons/web/static/src/js/view_form.js:1659 +#: addons/web/static/src/js/view_form.js:656 +msgid "Attachments" +msgstr "" + +#: addons/web/static/src/js/view_form.js:1880 msgid "   Search More..." msgstr "" -#: addons/web/static/src/js/view_form.js:1672 +#: addons/web/static/src/js/view_form.js:1893 #, python-format msgid "   Create \"%s\"" msgstr "" -#: addons/web/static/src/js/view_form.js:1678 +#: addons/web/static/src/js/view_form.js:1899 msgid "   Create and Edit..." msgstr "" -#: addons/web/static/src/js/views.js:568 +#: addons/web/static/src/js/view_list.js:14 +#: addons/web/static/src/xml/base.xml:0 +msgid "Create" +msgstr "" + +#: addons/web/static/src/js/view_list.js:263 +msgid "Unlimited" +msgstr "" + +#: addons/web/static/src/js/view_list.js:483 +msgid "Do you really want to remove these records?" +msgstr "" + +#: addons/web/static/src/js/view_list.js:1159 +msgid "Undefined" +msgstr "" + +#: addons/web/static/src/js/views.js:482 +msgid "Search: " +msgstr "" + +#: addons/web/static/src/js/views.js:581 +msgid "Customize" +msgstr "" + +#: addons/web/static/src/js/views.js:584 +msgid "Manage Views" +msgstr "" + +#: addons/web/static/src/js/views.js:586 addons/web/static/src/js/views.js:590 +#: addons/web/static/src/js/views.js:595 +msgid "Manage views of the current object" +msgstr "" + +#: addons/web/static/src/js/views.js:588 +msgid "Edit Workflow" +msgstr "" + +#: addons/web/static/src/js/views.js:593 +msgid "Customize Object" +msgstr "" + +#: addons/web/static/src/js/views.js:597 +msgid "Translate" +msgstr "" + +#: addons/web/static/src/js/views.js:599 +msgid "Technical translation" +msgstr "" + +#: addons/web/static/src/js/views.js:604 +msgid "Other Options" +msgstr "" + +#: addons/web/static/src/js/views.js:607 addons/web/static/src/xml/base.xml:0 +msgid "Import" +msgstr "" + +#: addons/web/static/src/js/views.js:610 addons/web/static/src/xml/base.xml:0 +msgid "Export" +msgstr "" + +#: addons/web/static/src/js/views.js:613 +msgid "View Log" +msgstr "" + +#: addons/web/static/src/js/views.js:622 +msgid "Reports" +msgstr "" + +#: addons/web/static/src/js/views.js:622 +msgid "Actions" +msgstr "" + +#: addons/web/static/src/js/views.js:622 +msgid "Links" +msgstr "" + +#: addons/web/static/src/js/views.js:702 msgid "You must choose at least one record." msgstr "" -#: addons/web/static/src/js/views.js:569 +#: addons/web/static/src/js/views.js:703 msgid "Warning" msgstr "" -#: addons/web/static/src/js/views.js:609 +#: addons/web/static/src/js/views.js:737 msgid "Translations" msgstr "" -#: addons/web/static/src/js/views.js:614 addons/web/static/src/xml/base.xml:0 +#: addons/web/static/src/js/views.js:742 addons/web/static/src/xml/base.xml:0 msgid "Save" msgstr "" -#: addons/web/static/src/js/views.js:615 -msgid "Close" -msgstr "" - #: addons/web/static/src/xml/base.xml:0 msgid "x" msgstr "" @@ -82,10 +298,6 @@ msgstr "" msgid "Loading..." msgstr "" -#: addons/web/static/src/xml/base.xml:0 -msgid "Create" -msgstr "" - #: addons/web/static/src/xml/base.xml:0 msgid "Drop" msgstr "" @@ -269,15 +481,7 @@ msgid "View#" msgstr "" #: addons/web/static/src/xml/base.xml:0 -msgid "Fields" -msgstr "" - -#: addons/web/static/src/xml/base.xml:0 -msgid "View labels" -msgstr "" - -#: addons/web/static/src/xml/base.xml:0 -msgid "Sidebar Relates" +msgid "More…" msgstr "" #: addons/web/static/src/xml/base.xml:0 @@ -288,14 +492,6 @@ msgstr "" msgid ":" msgstr "" -#: addons/web/static/src/xml/base.xml:0 -msgid "Translate view" -msgstr "" - -#: addons/web/static/src/xml/base.xml:0 -msgid "Translate sidebar" -msgstr "" - #: addons/web/static/src/xml/base.xml:0 msgid "Delete" msgstr "" @@ -317,29 +513,13 @@ msgid "Last" msgstr "" #: addons/web/static/src/xml/base.xml:0 -msgid "♻" -msgstr "" - -#: addons/web/static/src/xml/base.xml:0 -msgid "Save & Edit" -msgstr "" - -#: addons/web/static/src/xml/base.xml:0 -msgid "Create & Edit" -msgstr "" - -#: addons/web/static/src/xml/base.xml:0 -msgid "New" +msgid "Edit" msgstr "" #: addons/web/static/src/xml/base.xml:0 msgid "Duplicate" msgstr "" -#: addons/web/static/src/xml/base.xml:0 -msgid "Readonly/Editable" -msgstr "" - #: addons/web/static/src/xml/base.xml:0 msgid "<<" msgstr "" @@ -364,16 +544,80 @@ msgstr "" msgid "Unhandled widget" msgstr "" +#: addons/web/static/src/xml/base.xml:0 +msgid "Notebook Page \"" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "\"" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Modifiers:" +msgstr "" + #: addons/web/static/src/xml/base.xml:0 msgid "?" msgstr "" #: addons/web/static/src/xml/base.xml:0 -msgid "#" +msgid "(nolabel)" msgstr "" #: addons/web/static/src/xml/base.xml:0 -msgid "Done" +msgid "Field:" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Object:" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Type:" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Widget:" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Size:" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Context:" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Domain:" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "On change:" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Relation:" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Selection:" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "[" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "]" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "-" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "#" msgstr "" #: addons/web/static/src/xml/base.xml:0 @@ -408,18 +652,34 @@ msgstr "" msgid "Clear" msgstr "" +#: addons/web/static/src/xml/base.xml:0 +msgid "Button" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "(no string)" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Special:" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Button Type:" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Method:" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Action ID:" +msgstr "" + #: addons/web/static/src/xml/base.xml:0 msgid "Advanced Filter" msgstr "" -#: addons/web/static/src/xml/base.xml:0 -msgid "-- Filters --" -msgstr "" - -#: addons/web/static/src/xml/base.xml:0 -msgid "-- Actions --" -msgstr "" - #: addons/web/static/src/xml/base.xml:0 msgid "Save Filter" msgstr "" @@ -436,6 +696,14 @@ msgstr "" msgid "(Any existing filter with the same name will be replaced)" msgstr "" +#: addons/web/static/src/xml/base.xml:0 +msgid "Select Dashboard to add this filter to:" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "Title of new Dashboard item:" +msgstr "" + #: addons/web/static/src/xml/base.xml:0 msgid "Any of the following conditions must match" msgstr "" @@ -456,10 +724,6 @@ msgstr "" msgid "and" msgstr "" -#: addons/web/static/src/xml/base.xml:0 -msgid "Cancel" -msgstr "" - #: addons/web/static/src/xml/base.xml:0 msgid "Save & New" msgstr "" @@ -468,10 +732,6 @@ msgstr "" msgid "Save & Close" msgstr "" -#: addons/web/static/src/xml/base.xml:0 -msgid "Export" -msgstr "" - #: addons/web/static/src/xml/base.xml:0 msgid "" "This wizard will export all data that matches the current search criteria" @@ -548,10 +808,6 @@ msgstr "" msgid "Confirm Password:" msgstr "" -#: addons/web/static/src/xml/base.xml:0 -msgid "Import" -msgstr "" - #: addons/web/static/src/xml/base.xml:0 msgid "1. Import a .CSV file" msgstr "" diff --git a/addons/web_calendar/po/web_calendar.pot b/addons/web_calendar/po/web_calendar.pot index 9974931bcd3..1e431ffe6e9 100644 --- a/addons/web_calendar/po/web_calendar.pot +++ b/addons/web_calendar/po/web_calendar.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2011-10-07 10:38+0200\n" +"POT-Creation-Date: 2011-12-05 11:50+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,6 +17,14 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 0.9.6\n" +#: addons/web_calendar/static/src/js/calendar.js:409 +msgid "Responsible" +msgstr "" + +#: addons/web_calendar/static/src/js/calendar.js:438 +msgid "Navigator" +msgstr "" + #: addons/web_calendar/static/src/xml/web_calendar.xml:0 msgid " " msgstr "" diff --git a/addons/web_chat/po/web_chat.pot b/addons/web_chat/po/web_chat.pot index 48ad2bfed89..b5b0239b506 100644 --- a/addons/web_chat/po/web_chat.pot +++ b/addons/web_chat/po/web_chat.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2011-10-07 10:39+0200\n" +"POT-Creation-Date: 2011-12-05 11:50+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/addons/web_dashboard/po/web_dashboard.pot b/addons/web_dashboard/po/web_dashboard.pot index 1c6f145c71c..7b02d91af36 100644 --- a/addons/web_dashboard/po/web_dashboard.pot +++ b/addons/web_dashboard/po/web_dashboard.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2011-10-07 10:39+0200\n" +"POT-Creation-Date: 2011-12-05 11:50+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -26,11 +26,11 @@ msgid "Undo" msgstr "" #: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 -msgid "Add Widget" +msgid "Change layout" msgstr "" #: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 -msgid "Change layout" +msgid " " msgstr "" #: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 @@ -45,3 +45,29 @@ msgstr "" msgid "%" msgstr "" +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 +msgid "" +"Click on the functionalites listed below to launch them and configure " +"your system" +msgstr "" + +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 +msgid "Welcome to your new OpenERP instance." +msgstr "" + +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 +msgid "Remember to bookmark this page." +msgstr "" + +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 +msgid "Remember your login:" +msgstr "" + +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 +msgid "Choose the first OpenERP Application you want to install.." +msgstr "" + +#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 +msgid "Install" +msgstr "" + diff --git a/addons/web_diagram/po/web_diagram.pot b/addons/web_diagram/po/web_diagram.pot index 29ffd195f30..e6e33177d21 100644 --- a/addons/web_diagram/po/web_diagram.pot +++ b/addons/web_diagram/po/web_diagram.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2011-10-07 10:39+0200\n" +"POT-Creation-Date: 2011-12-05 11:50+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -21,14 +21,6 @@ msgstr "" msgid "New Node" msgstr "" -#: addons/web_diagram/static/src/xml/base_diagram.xml:0 -msgid "New Edge" -msgstr "" - -#: addons/web_diagram/static/src/xml/base_diagram.xml:0 -msgid "Show Grid:" -msgstr "" - #: addons/web_diagram/static/src/xml/base_diagram.xml:0 msgid "First" msgstr "" diff --git a/addons/web_gantt/po/web_gantt.pot b/addons/web_gantt/po/web_gantt.pot index 48ad2bfed89..b5b0239b506 100644 --- a/addons/web_gantt/po/web_gantt.pot +++ b/addons/web_gantt/po/web_gantt.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2011-10-07 10:39+0200\n" +"POT-Creation-Date: 2011-12-05 11:50+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/addons/web_graph/po/web_graph.pot b/addons/web_graph/po/web_graph.pot index 48ad2bfed89..b5b0239b506 100644 --- a/addons/web_graph/po/web_graph.pot +++ b/addons/web_graph/po/web_graph.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2011-10-07 10:39+0200\n" +"POT-Creation-Date: 2011-12-05 11:50+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/addons/web_hello/po/web_hello.pot b/addons/web_hello/po/web_hello.pot index 48ad2bfed89..b5b0239b506 100644 --- a/addons/web_hello/po/web_hello.pot +++ b/addons/web_hello/po/web_hello.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2011-10-07 10:39+0200\n" +"POT-Creation-Date: 2011-12-05 11:50+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/addons/web_mobile/po/web_mobile.pot b/addons/web_mobile/po/web_mobile.pot index 9380d0a2911..5f4ed88d94e 100644 --- a/addons/web_mobile/po/web_mobile.pot +++ b/addons/web_mobile/po/web_mobile.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2011-10-07 10:39+0200\n" +"POT-Creation-Date: 2011-12-05 11:50+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -41,6 +41,10 @@ msgstr "" msgid "Bad username or password" msgstr "" +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Powered by openerp.com" +msgstr "" + #: addons/web_mobile/static/src/xml/web_mobile.xml:0 msgid "Favourite" msgstr "" @@ -49,19 +53,23 @@ msgstr "" msgid "Preference" msgstr "" -#: addons/web_mobile/static/src/xml/web_mobile.xml:0 -msgid "Applications" -msgstr "" - -#: addons/web_mobile/static/src/xml/web_mobile.xml:0 -msgid "Options" -msgstr "" - #: addons/web_mobile/static/src/xml/web_mobile.xml:0 msgid "Logout" msgstr "" +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "There is no records to show." +msgstr "" + #: addons/web_mobile/static/src/xml/web_mobile.xml:0 msgid ":" msgstr "" +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "On" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Off" +msgstr "" + diff --git a/addons/web_rpc/po/web_rpc.pot b/addons/web_rpc/po/web_rpc.pot index 48ad2bfed89..b5b0239b506 100644 --- a/addons/web_rpc/po/web_rpc.pot +++ b/addons/web_rpc/po/web_rpc.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2011-10-07 10:39+0200\n" +"POT-Creation-Date: 2011-12-05 11:50+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" From dc5f0401152498653056c11b558d13fefe163f20 Mon Sep 17 00:00:00 2001 From: Fabien Pinckaers Date: Mon, 5 Dec 2011 11:53:28 +0100 Subject: [PATCH 42/59] [IMP] Point of Sale - Split of menu bzr revid: fp@tinyerp.com-20111205105328-bftjmsom7z3y1tga --- addons/point_of_sale/point_of_sale_view.xml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/addons/point_of_sale/point_of_sale_view.xml b/addons/point_of_sale/point_of_sale_view.xml index 1c3dceedc68..bb885000301 100644 --- a/addons/point_of_sale/point_of_sale_view.xml +++ b/addons/point_of_sale/point_of_sale_view.xml @@ -1,9 +1,9 @@ - @@ -797,12 +797,12 @@ Start Point of Sale pos.ui + - - Start Point of Sale - - - - From 34b8c8f4a60555a6a49c6b26ac0f2ccc8f3db994 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Mon, 5 Dec 2011 12:06:47 +0100 Subject: [PATCH 43/59] [FIX] right-align number columns in group headers lp bug: https://launchpad.net/bugs/900204 fixed bzr revid: xmo@openerp.com-20111205110647-jnzk2hppavgbhpa0 --- addons/web/static/src/js/view_list.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/web/static/src/js/view_list.js b/addons/web/static/src/js/view_list.js index 8f8215d0768..a9b4f1014b1 100644 --- a/addons/web/static/src/js/view_list.js +++ b/addons/web/static/src/js/view_list.js @@ -1192,7 +1192,7 @@ openerp.web.ListView.Groups = openerp.web.Class.extend( /** @lends openerp.web.L } else if (column.type === 'float') { format = "%.2f"; } - $('') + $('') .text(_.str.sprintf(format, value)) .appendTo($row); } else { From 1f1fa7fe81034b21911a20863a06de8fc1680253 Mon Sep 17 00:00:00 2001 From: Fabien Pinckaers Date: Mon, 5 Dec 2011 12:10:09 +0100 Subject: [PATCH 44/59] [FIX] pos bzr revid: fp@tinyerp.com-20111205111009-u7xwifu0ozktimq7 --- addons/point_of_sale/point_of_sale_view.xml | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/addons/point_of_sale/point_of_sale_view.xml b/addons/point_of_sale/point_of_sale_view.xml index bb885000301..b1e3e6a6d00 100644 --- a/addons/point_of_sale/point_of_sale_view.xml +++ b/addons/point_of_sale/point_of_sale_view.xml @@ -797,12 +797,14 @@ Start Point of Sale pos.ui - + + Point of Sale + + images/pos.png + images/pos-hover.png + + + From 199e42c673cd3c0c886ac50752f00d3e234d93b8 Mon Sep 17 00:00:00 2001 From: Christophe Simonis Date: Mon, 5 Dec 2011 12:20:03 +0100 Subject: [PATCH 45/59] [FIX] by popular demand, warnings are not sticky anymore bzr revid: chs@openerp.com-20111205112003-3j6fbtvgcuhhf7jg --- addons/web/static/src/js/chrome.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index f10ee9376f6..a74de46b7c4 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -30,8 +30,6 @@ openerp.web.Notification = openerp.web.Widget.extend(/** @lends openerp.web.Not this.$element.notify('create', 'oe_notification_alert', { title: title, text: text - }, { - expires: false }); } From aa0a6afcb5a79e3a563db7ad4c85998baff2e0ac Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Mon, 5 Dec 2011 12:57:46 +0100 Subject: [PATCH 46/59] [IMP] Do not display title on dashboards Process view should be fixed in order to honor flags.display_title bzr revid: fme@openerp.com-20111205115746-mnqteouxby3ig827 --- addons/web/static/src/js/views.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js index e8af1290e48..244ec4f5df6 100644 --- a/addons/web/static/src/js/views.js +++ b/addons/web/static/src/js/views.js @@ -380,7 +380,7 @@ session.web.ViewManagerAction = session.web.ViewManager.extend(/** @lends oepner if (action.res_model == 'board.board' && action.views.length == 1 && action.views) { // Not elegant but allows to avoid form chrome (pager, save/new // buttons, sidebar, ...) displaying - this.flags.search_view = this.flags.pager = this.flags.sidebar = this.flags.action_buttons = false; + this.flags.display_title = this.flags.search_view = this.flags.pager = this.flags.sidebar = this.flags.action_buttons = false; } // setup storage for session-wise menu hiding From 7f1e33e16f3df390c4b8deb7c61cd715bf0066ca Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Mon, 5 Dec 2011 13:00:21 +0100 Subject: [PATCH 47/59] [REM] Removed 'Undo' feature from dashboards Requested by fp bzr revid: fme@openerp.com-20111205120021-9qh22ppya3tewz8f --- addons/web_dashboard/static/src/js/dashboard.js | 8 +------- addons/web_dashboard/static/src/xml/web_dashboard.xml | 4 ---- 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/addons/web_dashboard/static/src/js/dashboard.js b/addons/web_dashboard/static/src/js/dashboard.js index 5d9c82af027..ff2783cdcaf 100644 --- a/addons/web_dashboard/static/src/js/dashboard.js +++ b/addons/web_dashboard/static/src/js/dashboard.js @@ -24,7 +24,6 @@ openerp.web.form.DashBoard = openerp.web.form.Widget.extend({ }).disableSelection().bind('sortstop', self.do_save_dashboard); // Events - this.$element.find('.oe-dashboard-link-undo').click(this.on_undo); this.$element.find('.oe-dashboard-link-reset').click(this.on_reset); this.$element.find('.oe-dashboard-link-change_layout').click(this.on_change_layout); @@ -47,11 +46,6 @@ openerp.web.form.DashBoard = openerp.web.form.Widget.extend({ }); }); }, - on_undo: function() { - this.rpc('/web/view/undo_custom', { - view_id: this.view.fields_view.view_id - }, this.do_reload); - }, on_reset: function() { this.rpc('/web/view/undo_custom', { view_id: this.view.fields_view.view_id, @@ -145,7 +139,7 @@ openerp.web.form.DashBoard = openerp.web.form.Widget.extend({ view_id: this.view.fields_view.view_id, arch: arch }, function() { - self.$element.find('.oe-dashboard-link-undo, .oe-dashboard-link-reset').show(); + self.$element.find('.oe-dashboard-link-reset').show(); }); }, on_load_action: function(result, index) { diff --git a/addons/web_dashboard/static/src/xml/web_dashboard.xml b/addons/web_dashboard/static/src/xml/web_dashboard.xml index 085c331b4fc..462334d2b83 100644 --- a/addons/web_dashboard/static/src/xml/web_dashboard.xml +++ b/addons/web_dashboard/static/src/xml/web_dashboard.xml @@ -5,10 +5,6 @@ Reset -