73 lines
3.2 KiB
Python
73 lines
3.2 KiB
Python
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo.addons.survey.tests.common import TestSurveyCommon
|
|
from odoo.addons.documents_spreadsheet.tests.common import SpreadsheetTestCommon
|
|
|
|
import json
|
|
|
|
|
|
class DocumentSpreadsheetSurveyAction(TestSurveyCommon, SpreadsheetTestCommon):
|
|
|
|
def test_action_survey_open_linked_spreadsheet(self):
|
|
test_survey = self.env["survey.survey"].create({"title": "Test Survey"})
|
|
self.assertFalse(test_survey.spreadsheet_document_id)
|
|
|
|
action = test_survey.action_survey_open_linked_spreadsheet()
|
|
linked_spreadsheet = test_survey.spreadsheet_document_id
|
|
self.assertEqual(action, {
|
|
"type": "ir.actions.client",
|
|
"tag": "action_open_spreadsheet",
|
|
"params": {
|
|
"spreadsheet_id": linked_spreadsheet.id,
|
|
}
|
|
})
|
|
self.assertEqual(linked_spreadsheet.name, "Test Survey (#%s)" % test_survey.id)
|
|
|
|
# Re-calling the action should return the same spreadsheet
|
|
action = test_survey.action_survey_open_linked_spreadsheet()
|
|
self.assertEqual(action["params"], {
|
|
"spreadsheet_id": linked_spreadsheet.id,
|
|
})
|
|
|
|
def test_action_survey_open_linked_spreadsheet_initial_data(self):
|
|
test_survey = self.env["survey.survey"].create({"title": "Test Survey"})
|
|
question_0 = self._add_question(None, "What is your age", "numerical_box", survey_id=test_survey.id, sequence=1)
|
|
answer_0 = self._add_answer(test_survey, self.customer)
|
|
self._add_answer_line(question_0, answer_0, 25)
|
|
|
|
test_survey.action_survey_open_linked_spreadsheet()
|
|
binary_data = test_survey.spreadsheet_document_id.spreadsheet_data
|
|
data = json.loads(binary_data)
|
|
|
|
self.assertEqual(data["version"], "18.4.2")
|
|
self.assertEqual(len(data["sheets"]), 1)
|
|
sheet = data["sheets"][0]
|
|
self.assertEqual(sheet["name"], "Test Survey (#%s)" % test_survey.id)
|
|
self.assertEqual(sheet["cells"]["A1"], "=ODOO.SURVEY(%s)" % test_survey.id)
|
|
self.assertEqual(sheet["cols"]["0"]["size"], 150)
|
|
self.assertEqual(sheet["cols"]["1"]["size"], 150)
|
|
self.assertEqual(sheet["panes"]["ySplit"], 1)
|
|
|
|
def test_archived_linked_spreadsheet(self):
|
|
test_survey = self.env["survey.survey"].create({"title": "Test Survey"})
|
|
|
|
# Spreadsheet is restored when opening the action again
|
|
test_survey.spreadsheet_document_id.action_archive()
|
|
self.assertFalse(test_survey.spreadsheet_document_id.active)
|
|
|
|
test_survey.action_survey_open_linked_spreadsheet()
|
|
self.assertTrue(test_survey.spreadsheet_document_id.active)
|
|
|
|
# Survey folder is restored as well
|
|
folder_id = self.env["ir.config_parameter"].sudo().get_param('documents_spreadsheet_survey.survey_folder', False)
|
|
folder = self.env["documents.document"].browse(int(folder_id))
|
|
|
|
folder.action_archive()
|
|
test_survey.spreadsheet_document_id.action_archive()
|
|
self.assertFalse(test_survey.spreadsheet_document_id.active)
|
|
self.assertFalse(folder.active)
|
|
|
|
test_survey.action_survey_open_linked_spreadsheet()
|
|
self.assertTrue(test_survey.spreadsheet_document_id.active)
|
|
self.assertTrue(folder.active)
|