diff --git a/project_status_report/README.rst b/project_status_report/README.rst deleted file mode 100644 index 48270d109..000000000 --- a/project_status_report/README.rst +++ /dev/null @@ -1,35 +0,0 @@ -Project Status Report v8 -======================== -This module helps to analyse project from various aspects. The excel report will -contain complete project status report with budget, -task analysis, gantt chart and project breakdown charter. - -Features -======== -* Graphical analysis of overall task. -* Comparison of actual and planned time for the project. -* Comparison of actual and planned budget amount. -* Gantt chart view of task. - -Installation -============ -To install this module, the libraries called python-xlsxwriter and base64 need to be installed in the system. -You need also the **report_xlsx** -module located in: https://github.com/OCA/reporting-engine/ - -Configuration -============= -To configure timesheet for task, -Go to Settings --> Invoicing --> Accounting & Finance --> Features --> Check Analytic accounting -Go to Settings --> Project --> Project management --> Task --> Check Record timesheet lines per tasks - -To print project status report, -* Select any project -* Go to print action menu and select project status report. -* specify the date range -* Click on Generate button and download the file - -Credits -======= -Developer: Mufeeda C K @ cybrosys -Guidance: Nilmar Shereef @ cybrosys, shereef@cybrosys.in diff --git a/project_status_report/__openerp__.py b/project_status_report/__openerp__.py deleted file mode 100644 index 394d30336..000000000 --- a/project_status_report/__openerp__.py +++ /dev/null @@ -1,45 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# Cybrosys Technologies Pvt. Ltd. -# Copyright (C) 2008-TODAY Cybrosys Technologies(). -# Author: Nilmar Shereef() -# you can modify it under the terms of the GNU LESSER -# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. -# -# It is forbidden to publish, distribute, sublicense, or sell copies -# of the Software or modified copies of the Software. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. -# -# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE -# GENERAL PUBLIC LICENSE (LGPL v3) along with this program. -# If not, see . -# -############################################################################## -{ - 'name': "Project Status Report", - 'summary': """ - Detailed Project Analysis with XLS Diagrams""", - 'description': """ - Graphical information of Project from various aspects. Project Task list, Comparison of planned and - actual budget and time duration for the project. - """, - 'author': "Cybrosys Techno Solutions", - 'company': "Cybrosys Techno Solutions", - 'website': "http://www.cybrosys.com", - 'category': 'Project', - 'version': '1.0', - 'depends': ['base', 'sale', 'project', 'report_xlsx', 'hr_timesheet', 'analytic', 'hr_timesheet_sheet'], - 'data': [ - 'views/status_wizard_view.xml', - 'views/report.xml' - ], - 'license': 'AGPL-3', - 'images': ['static/description/banner.jpg'], - 'installable': True, - 'auto_install': False, -} \ No newline at end of file diff --git a/project_status_report/models/status_report_wizard.py b/project_status_report/models/status_report_wizard.py deleted file mode 100644 index 13114bebf..000000000 --- a/project_status_report/models/status_report_wizard.py +++ /dev/null @@ -1,44 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# Cybrosys Technologies Pvt. Ltd. -# Copyright (C) 2008-TODAY Cybrosys Technologies(). -# Author: Nilmar Shereef() -# you can modify it under the terms of the GNU LESSER -# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. -# -# It is forbidden to publish, distribute, sublicense, or sell copies -# of the Software or modified copies of the Software. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. -# -# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE -# GENERAL PUBLIC LICENSE (LGPL v3) along with this program. -# If not, see . -# -############################################################################## -from openerp import models, fields, api - - -class StatusReportWizard(models.Model): - _name = 'project.status_report' - - date_from = fields.Datetime('Start Date') - date_to = fields.Datetime('End Date') - - @api.multi - def print_report_xls(self): - context = self._context - datas = {'ids': context.get('active_ids', [])} - datas['model'] = 'project.project' - datas['form'] = self.read()[0] - for field in datas['form'].keys(): - if isinstance(datas['form'][field], tuple): - datas['form'][field] = datas['form'][field][0] - return {'type': 'ir.actions.report.xml', - 'report_name': 'project_status_report', - 'datas': datas, - } diff --git a/project_status_report/models/status_report_xls.py b/project_status_report/models/status_report_xls.py deleted file mode 100644 index f28a7945b..000000000 --- a/project_status_report/models/status_report_xls.py +++ /dev/null @@ -1,323 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# Cybrosys Technologies Pvt. Ltd. -# Copyright (C) 2008-TODAY Cybrosys Technologies(). -# Author: Nilmar Shereef() -# you can modify it under the terms of the GNU LESSER -# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. -# -# It is forbidden to publish, distribute, sublicense, or sell copies -# of the Software or modified copies of the Software. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. -# -# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE -# GENERAL PUBLIC LICENSE (LGPL v3) along with this program. -# If not, see . -# -############################################################################## -from openerp import fields -from openerp.exceptions import except_orm -import datetime -from dateutil.relativedelta import relativedelta -try: - from openerp.addons.report_xlsx.report.report_xlsx import ReportXlsx -except ImportError: - class ReportXlsx(object): - def __init__(self, *args, **kwargs): - pass - - -class ProjectReportXlsx(ReportXlsx): - - def generate_xlsx_report(self, workbook, data, objects): - sheet1 = "Project plan" - sheet2 = "Notes" - worksheet1 = workbook.add_worksheet(sheet1) - worksheet2 = workbook.add_worksheet(sheet2) - worksheet3 = workbook.add_worksheet() - format_main_header = workbook.add_format({'font_size': 14, 'bg_color': 'silver', 'bold': 1, 'border': 1, - 'align': 'center', 'valign': 'vcenter'}) - format_header = workbook.add_format({'bold': 1, 'border': 1, 'align': 'center', - 'valign': 'vcenter', 'bg_color': 'silver'}) - header = workbook.add_format({'bold': 1, 'border': 1, 'align': 'center', - 'valign': 'vcenter', 'bg_color': 'silver'}) - left_header = workbook.add_format({'bold': 1, 'border': 1, 'align': 'center', - 'valign': 'vcenter'}) - format_cell = workbook.add_format({'border': 1, 'align': 'center'}) - - # ---------------------Project details-------------------------- # - if ValueError: - raise except_orm('Warning', 'Select exactly one project') - - report_date = datetime.datetime.now().strftime("%m/%d/%Y") - if objects.effective_hours and objects.planned_hours: - completed = str(int((objects.effective_hours * 100) / objects.planned_hours)) + " %" - else: - completed = "Unknown" - row = col = 0 - worksheet1.merge_range(row, col, row + 1, col + 25, "Project Plan", format_main_header) - row += 4 - worksheet1.merge_range(row, col, row, col + 6, self.env.user.company_id.name, left_header) - row += 2 - worksheet1.merge_range(row, col, row, col + 2, "Project Name", left_header) - col += 3 - worksheet1.merge_range(row, col, row, col + 3, objects.name, format_cell) - col = 0 - row += 1 - worksheet1.merge_range(row, col, row, col + 2, "Report Date", left_header) - col += 3 - worksheet1.merge_range(row, col, row, col + 3, report_date, format_cell) - col = 0 - row += 1 - worksheet1.merge_range(row, col, row, col + 2, "Project Status", left_header) - col += 3 - worksheet1.merge_range(row, col, row, col + 3, objects.state, format_cell) - col = 0 - row += 1 - worksheet1.merge_range(row, col, row, col + 2, "Completed", left_header) - col += 3 - worksheet1.merge_range(row, col, row, col + 3, completed, format_cell) - row += 1 - - date_from = data['form']['date_from'] - date_to = data['form']['date_to'] - tasks = self.env['project.task'].search([]) - if date_from and not date_to: - task = tasks.search([('date_start', '>=', date_from)]) - elif date_to and not date_from: - task = tasks.search([('date_start', '<=', date_to)]) - elif date_from and date_to: - task = tasks.search([('date_start', '<=', date_to), ('date_start', '>=', date_from)]) - else: - task = tasks.search([]) - if task: - - # ---------------------Pie chart for overall task status-------------------------- # - stage_obj = self.env['project.task.type'].search([]) - stages_all = {} - for obj in stage_obj: - stages_all[obj.name] = 0 - for data in task: - if objects.name == data.project_id.name: - stages_all[data.stage_id.name] += 1 - stages = stages_all.keys() - count = stages_all.values() - percentage = [] - total = sum(count) - for item in range(len(count)): - percentage.append((float(count[item]) / total) * 100) - row = 0 - col = 0 - worksheet2.merge_range(row, col, row + 1, col + 3, "Percentage of Task complete", header) - row += 2 - for item in range(len(stages)): - worksheet2.merge_range(row, col, row, col + 1, stages[item], format_cell) - col += 2 - worksheet2.merge_range(row, col, row, col + 1, int(percentage[item]), format_cell) - col = 0 - row += 1 - chart_pie = workbook.add_chart({'type': 'pie'}) - chart_pie.add_series({ - 'categories': '=' + sheet2 + '!$A$3:$A$10', - 'values': '=' + sheet2 + '!$C$3:$C$10', - 'points': [], - }) - chart_pie.set_title({'name': 'Overall Task Status'}) - worksheet1.insert_chart('A13', chart_pie) - - # ---------------------Bar chart for Time duration-------------------------- # - chart_bar_t = workbook.add_chart({'type': 'bar'}) - planned_time = objects.planned_hours - actual_time = objects.effective_hours - data_bar_t = [ - ['Planned time', 'Actual time'], - [planned_time, actual_time], - ] - col = 6 - row = 0 - worksheet2.merge_range(row, col, row + 1, col + 3, "Time Duration(Hours)", header) - row += 2 - for item in range(2): - worksheet2.merge_range(row, col, row, col + 1, data_bar_t[0][item], format_cell) - col += 2 - worksheet2.merge_range(row, col, row, col + 1, data_bar_t[1][item], format_cell) - col = 6 - row += 1 - chart_bar_t.add_series({'name': 'Time', - 'categories': '=' + sheet2 + '!$G$3:$G$4', - 'values': '=' + sheet2 + '!$I$3:$I$4', - }) - chart_bar_t.set_title({'name': 'Time Duration'}) - worksheet1.insert_chart('I13', chart_bar_t) - - # ---------------------Bar chart for Budget-------------------------- # - chart_bar_b = workbook.add_chart({'type': 'bar'}) - actual_amount = 0 - get_product = self.env['product.product'].browse(1) - cost_price = get_product.standard_price - planned_amount = cost_price * objects.planned_hours - account_obj = self.env['hr.analytic.timesheet'].search([]) - for acc in account_obj: - if acc.account_id == objects.analytic_account_id: - actual_amount += acc.amount - data_bar_b = [ - ['Planned', 'Actual'], - [planned_amount, abs(actual_amount)], - ] - col = 6 - row = 6 - worksheet2.merge_range(row, col, row + 1, col + 3, "Budget", header) - row += 2 - for item in range(2): - worksheet2.merge_range(row, col, row, col + 1, data_bar_b[0][item], format_cell) - col += 2 - worksheet2.merge_range(row, col, row, col + 1, data_bar_b[1][item], format_cell) - col = 6 - row += 1 - chart_bar_b.add_series({'name': 'Amount', - 'categories': '=' + sheet2 + '!$G$9:$G$10', - 'values': '=' + sheet2 + '!$I$9:$I$10', - }) - chart_bar_b.set_title({'name': 'Budget'}) - worksheet1.insert_chart('Q13', chart_bar_b) - - # ---------------------Task description table 1-------------------------- # - row = 31 - col = 0 - worksheet1.merge_range(row, col, row, col + 3, "Task", format_header) - col += 4 - worksheet1.merge_range(row, col, row, col + 1, "Assigned to", format_header) - col += 2 - worksheet1.write(row, col, "Priority", format_header) - col += 1 - worksheet1.merge_range(row, col, row, col + 1, "Status", format_header) - col += 2 - row += 1 - for data in task: - if objects.name == data.project_id.name: - col = 0 - worksheet1.merge_range(row, col, row, col + 3, data.name, format_cell) - col += 4 - worksheet1.merge_range(row, col, row, col + 1, data.user_id.name, format_cell) - col += 2 - priority = "" - for i in range(int(data.priority)): - priority += "*" - worksheet1.write(row, col, priority, format_cell) - col += 1 - worksheet1.merge_range(row, col, row, col + 1, data.stage_id.name, format_cell) - row += 1 - - # ---------------------Task description table 2-------------------------- # - row = 14 - col = 0 - worksheet2.merge_range(row, col, row, col + 3, "Task", format_header) - col += 4 - worksheet2.merge_range(row, col, row, col + 1, "Assigned to", format_header) - col += 2 - worksheet2.merge_range(row, col, row, col + 1, "Start", format_header) - col += 2 - worksheet2.merge_range(row, col, row, col + 1, "End", format_header) - col += 2 - worksheet2.write(row, col, "Days", format_header) - col += 1 - worksheet2.merge_range(row, col, row, col + 1, "Status", format_header) - row += 1 - col = 0 - for data in task: - start_date = fields.Datetime.from_string(data.date_start) - start_date1 = start_date.strftime("%m-%d-%Y") - print "start_date: ", datetime.datetime.date(start_date).toordinal() - if data.date_end and data.date_end > data.date_start: - end_date = fields.Datetime.from_string(data.date_end) - date_difference = relativedelta(end_date, start_date).days - end_date1 = end_date.strftime("%m-%d-%Y") - else: - date_difference = "-" - end_date1 = "-" - if objects.name == data.project_id.name: - worksheet2.merge_range(row, col, row, col + 3, data.name, format_cell) - col += 4 - worksheet2.merge_range(row, col, row, col + 1, data.user_id.name, format_cell) - col += 2 - worksheet2.merge_range(row, col, row, col + 1, start_date1, format_cell) - col += 2 - worksheet2.merge_range(row, col, row, col + 1, end_date1, format_cell) - col += 2 - worksheet2.write(row, col, date_difference, format_cell) - col += 1 - worksheet2.merge_range(row, col, row, col + 1, data.stage_id.name, format_cell) - col = 0 - row += 1 - - # ---------------------Gantt chart view-------------------------- # - if objects.date_start: - project_start = datetime.datetime.date(fields.Datetime.from_string(objects.date_start)) - else: - project_start = datetime.datetime.date(fields.Datetime.from_string(objects.create_date)) - start_list = [] - days_list = [] - task_list = [] - task_item = 0 - project_end = datetime.datetime.date(datetime.datetime.now()) - for data in task: - if objects.name == data.project_id.name: - if objects.date: - project_end = datetime.datetime.date(fields.Datetime.from_string(objects.date)) - else: - if data.date_end: - date_end_fmt = datetime.datetime.date(fields.Datetime.from_string(data.date_end)) - if date_end_fmt > project_end: - project_end = date_end_fmt - task_item += 1 - start_date = fields.Datetime.from_string(data.date_start) - start_date1 = datetime.datetime.date(start_date) - if data.date_end and data.date_end > data.date_start: - end_date = fields.Datetime.from_string(data.date_end) - else: - end_date = datetime.datetime.today() - days = relativedelta(end_date, start_date).days - task_list.append(data.name) - start_list.append(start_date1) - days_list.append(days) - headings = ['Number', 'Start date', 'Days'] - data = [ - task_list, - start_list, - days_list, - ] - worksheet3.write_row('A1', headings) - worksheet3.write_column('A2', data[0]) - worksheet3.write_column('B2', data[1]) - worksheet3.write_column('C2', data[2]) - chart2 = workbook.add_chart({'type': 'bar', 'subtype': 'stacked'}) - start = 2 - end = start + task_item - 1 - chart2.add_series({ - 'name': '=Sheet3!$B$1', - 'categories': '=Sheet3!$A$' + str(start) + ':$A$' + str(end), - 'fill': {'none': True}, - 'values': '=Sheet3!$B$' + str(start) + ':$B$' + str(end), - }) - chart2.add_series({ - 'name': '=Sheet3!$C$1', - 'categories': '=Sheet3!$A$' + str(start) + ':$A$' + str(end), - 'fill': {'color': '#4E73B7'}, - 'values': '=Sheet3!$C$' + str(start) + ':$C$' + str(end), - }) - chart2.set_title({'none': True}) - chart2.set_x_axis({'date_axis': True, 'min': project_start, 'max': project_end, - 'minor_unit': 2, 'minor_unit_type': 'days', 'major_unit': 1, - 'major_unit_type': 'days', 'num_format': 'dd/mm/yyyy'}) - chart2.set_y_axis({'none': True}) - chart2.set_legend({'none': True}) - worksheet1.insert_chart('K31', chart2, {'x_scale': 2, 'y_scale': 1}) - worksheet3.hide() - - -ProjectReportXlsx('report.project_status_report', 'project.project') diff --git a/project_status_report/static/description/banner.jpg b/project_status_report/static/description/banner.jpg deleted file mode 100644 index affb94c51..000000000 Binary files a/project_status_report/static/description/banner.jpg and /dev/null differ diff --git a/project_status_report/static/description/bar_chart_budget.png b/project_status_report/static/description/bar_chart_budget.png deleted file mode 100644 index 0494739c5..000000000 Binary files a/project_status_report/static/description/bar_chart_budget.png and /dev/null differ diff --git a/project_status_report/static/description/bar_chart_time.png b/project_status_report/static/description/bar_chart_time.png deleted file mode 100644 index 44741942d..000000000 Binary files a/project_status_report/static/description/bar_chart_time.png and /dev/null differ diff --git a/project_status_report/static/description/disply.png b/project_status_report/static/description/disply.png deleted file mode 100644 index c449a5900..000000000 Binary files a/project_status_report/static/description/disply.png and /dev/null differ diff --git a/project_status_report/static/description/gantt_chart_task.png b/project_status_report/static/description/gantt_chart_task.png deleted file mode 100644 index b7c2c58f0..000000000 Binary files a/project_status_report/static/description/gantt_chart_task.png and /dev/null differ diff --git a/project_status_report/static/description/icon.png b/project_status_report/static/description/icon.png deleted file mode 100644 index c998e3812..000000000 Binary files a/project_status_report/static/description/icon.png and /dev/null differ diff --git a/project_status_report/static/description/index.html b/project_status_report/static/description/index.html deleted file mode 100644 index 8623e2c34..000000000 --- a/project_status_report/static/description/index.html +++ /dev/null @@ -1,136 +0,0 @@ -
-
-

Project Status Report

-

Graphical information of Project from various aspects.

-

Cybrosys Technologies , www.cybrosys.com

- -
- - - - - - - -
- -
-
-
- ☀ This Module Helps to Analyse Project in Various Aspects.
- ☀ Complete Project Status XLS Report with Budget Analysis.
- ☀ Tasks, Gantt chart XLS Analysis.
- ☀ Project Breakdown Charter Analysis.
-
-
-
- -
-
-
-
- - -
-
-
-
-

Menu View

- -
-
-
-
-

Wizard View

- -
-
-
-
-
-

Project Graphical Overview

-
- -
-
-
-

Project Information

-
- -
-
-
-
-

Pie Chart for Task Status

-
-
- -
-
-
-

- ☛ The Pie Chart of Overall Task Status. -

-
-
-
-
-
-

Bar Chart for Time Comparison

-
-

- ☛ End User Can Easily Compare the Actual & Planned Time of the Project. -

-
-
-
- -
-
-
-
-
-
-

Bar Chart for Budget

-
-
- -
-
-
-

- ☛ To compare the Actual & Planned Budget of the Project. -

-
-
-
-
-
-

Project Task Bar Chart

-
-

- ☛ Project Task Information & Bar Charts are there. End User Can Easily Analyse the Tasks. -

-
-
-
- -
-
-
-
-
-

Need Any Help.?

- - -
diff --git a/project_status_report/static/description/pie_chart_task.png b/project_status_report/static/description/pie_chart_task.png deleted file mode 100644 index 1d611368b..000000000 Binary files a/project_status_report/static/description/pie_chart_task.png and /dev/null differ diff --git a/project_status_report/static/description/project_menu_view.png b/project_status_report/static/description/project_menu_view.png deleted file mode 100644 index e74e4e5f2..000000000 Binary files a/project_status_report/static/description/project_menu_view.png and /dev/null differ diff --git a/project_status_report/static/description/project_wizard.png b/project_status_report/static/description/project_wizard.png deleted file mode 100644 index 966f89d6a..000000000 Binary files a/project_status_report/static/description/project_wizard.png and /dev/null differ diff --git a/project_status_report/static/description/sheet_1.png b/project_status_report/static/description/sheet_1.png deleted file mode 100644 index c55385050..000000000 Binary files a/project_status_report/static/description/sheet_1.png and /dev/null differ diff --git a/project_status_report/static/description/sheet_2.png b/project_status_report/static/description/sheet_2.png deleted file mode 100644 index ead63f6a1..000000000 Binary files a/project_status_report/static/description/sheet_2.png and /dev/null differ diff --git a/project_status_report/views/report.xml b/project_status_report/views/report.xml deleted file mode 100644 index e61eee122..000000000 --- a/project_status_report/views/report.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - diff --git a/project_status_report/views/status_wizard_view.xml b/project_status_report/views/status_wizard_view.xml deleted file mode 100644 index 83f8d2e27..000000000 --- a/project_status_report/views/status_wizard_view.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - project.status.report - project.status_report - -
- - - - - - -
-
-
-
-
- - - Project Status Report - project.status_report - form - - new - {} - - - - project.status_report - xls report - client_print_multi - - action - project.project - -
-
\ No newline at end of file diff --git a/project_status_report/__init__.py b/sent_mails/__init__.py similarity index 92% rename from project_status_report/__init__.py rename to sent_mails/__init__.py index 73235f8a0..b8b509efd 100644 --- a/project_status_report/__init__.py +++ b/sent_mails/__init__.py @@ -2,7 +2,7 @@ ############################################################################## # # Cybrosys Technologies Pvt. Ltd. -# Copyright (C) 2008-TODAY Cybrosys Technologies(). +# Copyright (C) 2009-TODAY Cybrosys Technologies(). # Author: Nilmar Shereef() # you can modify it under the terms of the GNU LESSER # GENERAL PUBLIC LICENSE (LGPL v3), Version 3. @@ -20,4 +20,3 @@ # If not, see . # ############################################################################## -import models diff --git a/project_status_report/models/__init__.py b/sent_mails/__openerp__.py similarity index 69% rename from project_status_report/models/__init__.py rename to sent_mails/__openerp__.py index 228145fe9..594908374 100644 --- a/project_status_report/models/__init__.py +++ b/sent_mails/__openerp__.py @@ -2,7 +2,7 @@ ############################################################################## # # Cybrosys Technologies Pvt. Ltd. -# Copyright (C) 2008-TODAY Cybrosys Technologies(). +# Copyright (C) 2009-TODAY Cybrosys Technologies(). # Author: Nilmar Shereef() # you can modify it under the terms of the GNU LESSER # GENERAL PUBLIC LICENSE (LGPL v3), Version 3. @@ -20,5 +20,18 @@ # If not, see . # ############################################################################## -import status_report_wizard -import status_report_xls +{ + 'name': 'Sent Mails', + 'version': '1.0', + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'website': 'http://www.cybrosys.com', + "category": "Discuss", + 'depends': ['base', 'mail'], + 'license': 'AGPL-3', + 'data': [ + 'views/get_sent_mails.xml', + ], + 'installable': True, + 'auto_install': False +} diff --git a/project_status_report/static/description/cybro_logo.png b/sent_mails/static/description/cybro_logo.png similarity index 100% rename from project_status_report/static/description/cybro_logo.png rename to sent_mails/static/description/cybro_logo.png diff --git a/sent_mails/static/description/icon.png b/sent_mails/static/description/icon.png new file mode 100644 index 000000000..b34677ee0 Binary files /dev/null and b/sent_mails/static/description/icon.png differ diff --git a/sent_mails/static/description/index.html b/sent_mails/static/description/index.html new file mode 100644 index 000000000..82e31b9f3 --- /dev/null +++ b/sent_mails/static/description/index.html @@ -0,0 +1,45 @@ +
+
+

Show sent mails

+

Shows the mails or discussions sent by current user

+

Author : Cybrosys Techno Solutions, www.cybrosys.com

+
+ +
+
+

+ ☛This module enables the feature to display the mails and discussions done by current user +

+
+
+
+
+
+ +
+
+

Sent Mail Menu Under Discuss

+
+
+ +
+
+ +
+
+ +
+

Need Any Help?

+ + +
diff --git a/sent_mails/static/description/sent_mails_demo.png b/sent_mails/static/description/sent_mails_demo.png new file mode 100644 index 000000000..a6a3f866d Binary files /dev/null and b/sent_mails/static/description/sent_mails_demo.png differ diff --git a/sent_mails/views/get_sent_mails.xml b/sent_mails/views/get_sent_mails.xml new file mode 100644 index 000000000..f8240183f --- /dev/null +++ b/sent_mails/views/get_sent_mails.xml @@ -0,0 +1,39 @@ + + + + + + Inbox + mail.wall + mail.message + { + 'default_model': 'res.users', + 'default_res_id': uid, + 'thread_model': 'res.partner', + 'needaction_menu_ref': ['mail.mail_tomefeeds', 'mail.mail_starfeeds'] + } + + +

+ Good Job! Your inbox is empty. +

+ Your inbox contains private messages or emails sent to you + as well as information related to documents or people you + follow. +

+
+
+ + + +
+