diff --git a/.requirements.txt b/.requirements.txt index fbcc3d6..b7119dd 100644 --- a/.requirements.txt +++ b/.requirements.txt @@ -1,2 +1,3 @@ odoorpc -bs4 \ No newline at end of file +bs4 +html \ No newline at end of file diff --git a/__pycache__/data_filter.cpython-312.pyc b/__pycache__/data_filter.cpython-312.pyc index 5101f40..5232154 100644 Binary files a/__pycache__/data_filter.cpython-312.pyc and b/__pycache__/data_filter.cpython-312.pyc differ diff --git a/__pycache__/menu_handlers.cpython-312.pyc b/__pycache__/menu_handlers.cpython-312.pyc index 656b46b..d818076 100644 Binary files a/__pycache__/menu_handlers.cpython-312.pyc and b/__pycache__/menu_handlers.cpython-312.pyc differ diff --git a/__pycache__/menu_principal.cpython-312.pyc b/__pycache__/menu_principal.cpython-312.pyc index 393aa6a..317cab9 100644 Binary files a/__pycache__/menu_principal.cpython-312.pyc and b/__pycache__/menu_principal.cpython-312.pyc differ diff --git a/__pycache__/utils.cpython-312.pyc b/__pycache__/utils.cpython-312.pyc index 94730fb..1a6f66d 100644 Binary files a/__pycache__/utils.cpython-312.pyc and b/__pycache__/utils.cpython-312.pyc differ diff --git a/data_filter.py b/data_filter.py index e69de29..115e0b6 100644 --- a/data_filter.py +++ b/data_filter.py @@ -0,0 +1,260 @@ +import os +import json +import re +from bs4 import BeautifulSoup +import html +import shutil +from typing import Dict, List, Any, Optional, Tuple, Union + + +def clean_html(html_content: str) -> str: + """ + Nettoie le contenu HTML en supprimant toutes les balises mais en préservant le texte. + + Args: + html_content: Contenu HTML à nettoyer + + Returns: + Texte nettoyé sans balises HTML + """ + if not html_content: + return "" + + # Utiliser BeautifulSoup pour extraire le texte + soup = BeautifulSoup(html_content, 'html.parser') + + # Récupérer le texte sans balises HTML + text = soup.get_text(separator=' ', strip=True) + + # Décodage des entités HTML spéciales + text = html.unescape(text) + + # Nettoyer les espaces multiples + text = re.sub(r'\s+', ' ', text) + + # Nettoyer les lignes vides multiples + text = re.sub(r'\n\s*\n', '\n\n', text) + + return text.strip() + + +def process_message_file(message_file_path: str, output_dir: str) -> None: + """ + Traite un fichier de message en nettoyant le contenu HTML des messages. + + Args: + message_file_path: Chemin du fichier de message à traiter + output_dir: Répertoire de sortie pour le fichier traité + """ + try: + with open(message_file_path, 'r', encoding='utf-8') as f: + message_data = json.load(f) + + # Vérifier si le message contient un corps HTML + if 'body' in message_data and message_data['body']: + # Remplacer le contenu HTML par le texte filtré + message_data['body'] = clean_html(message_data['body']) + + # Écrire le message filtré + output_file_path = os.path.join(output_dir, os.path.basename(message_file_path)) + with open(output_file_path, 'w', encoding='utf-8') as f: + json.dump(message_data, f, indent=4, ensure_ascii=False) + + print(f"Message traité: {os.path.basename(message_file_path)}") + + except Exception as e: + print(f"Erreur lors du traitement du fichier {message_file_path}: {e}") + + +def process_messages_threads(threads_file_path: str, output_dir: str) -> None: + """ + Traite un fichier de threads de messages en nettoyant le contenu HTML. + + Args: + threads_file_path: Chemin du fichier de threads de messages + output_dir: Répertoire de sortie pour le fichier traité + """ + try: + with open(threads_file_path, 'r', encoding='utf-8') as f: + threads_data = json.load(f) + + # Parcourir tous les threads + for thread_id, thread in threads_data.items(): + # Traiter le message principal + if thread.get('main_message') and 'body' in thread['main_message']: + thread['main_message']['body'] = clean_html(thread['main_message']['body']) + + # Traiter les réponses + for i, reply in enumerate(thread.get('replies', [])): + if 'body' in reply: + thread['replies'][i]['body'] = clean_html(reply['body']) + + # Écrire le fichier de threads filtré + output_file_path = os.path.join(output_dir, os.path.basename(threads_file_path)) + with open(output_file_path, 'w', encoding='utf-8') as f: + json.dump(threads_data, f, indent=4, ensure_ascii=False) + + print(f"Fichier de threads traité: {os.path.basename(threads_file_path)}") + + except Exception as e: + print(f"Erreur lors du traitement du fichier {threads_file_path}: {e}") + + +def process_messages_collection(messages_file_path: str, output_dir: str) -> None: + """ + Traite un fichier de collection de messages en nettoyant le contenu HTML. + + Args: + messages_file_path: Chemin du fichier de collection de messages + output_dir: Répertoire de sortie pour le fichier traité + """ + try: + with open(messages_file_path, 'r', encoding='utf-8') as f: + messages_data = json.load(f) + + # Parcourir tous les messages + for i, message in enumerate(messages_data): + if 'body' in message: + messages_data[i]['body'] = clean_html(message['body']) + + # Écrire le fichier de messages filtré + output_file_path = os.path.join(output_dir, os.path.basename(messages_file_path)) + with open(output_file_path, 'w', encoding='utf-8') as f: + json.dump(messages_data, f, indent=4, ensure_ascii=False) + + print(f"Collection de messages traitée: {os.path.basename(messages_file_path)}") + + except Exception as e: + print(f"Erreur lors du traitement du fichier {messages_file_path}: {e}") + + +def process_ticket_folder(ticket_folder: str, output_base_dir: str) -> None: + """ + Traite un dossier de ticket en filtrant les messages HTML. + + Args: + ticket_folder: Chemin du dossier du ticket à traiter + output_base_dir: Répertoire de base pour la sortie des fichiers filtrés + """ + ticket_name = os.path.basename(ticket_folder) + output_ticket_dir = os.path.join(output_base_dir, ticket_name) + + # Créer le répertoire de sortie s'il n'existe pas + if not os.path.exists(output_ticket_dir): + os.makedirs(output_ticket_dir, exist_ok=True) + + # Copier les fichiers d'information du ticket + for file_name in ['ticket_info.json', 'contact_info.json', 'activities.json', 'followers.json', 'attachments_info.json', 'timesheets.json']: + src_file = os.path.join(ticket_folder, file_name) + if os.path.exists(src_file): + dst_file = os.path.join(output_ticket_dir, file_name) + shutil.copy2(src_file, dst_file) + print(f"Fichier copié: {file_name}") + + # Traitement des fichiers de messages + src_messages_dir = os.path.join(ticket_folder, 'messages') + if os.path.exists(src_messages_dir): + # Créer le répertoire de messages filtré + filtered_messages_dir = os.path.join(output_ticket_dir, 'messages') + if not os.path.exists(filtered_messages_dir): + os.makedirs(filtered_messages_dir, exist_ok=True) + + # Traiter chaque fichier de message individuel + for file_name in os.listdir(src_messages_dir): + if file_name.endswith('.json'): + message_file_path = os.path.join(src_messages_dir, file_name) + process_message_file(message_file_path, filtered_messages_dir) + + # Traitement des fichiers de messages regroupés + messages_file = os.path.join(ticket_folder, 'messages.json') + message_threads_file = os.path.join(ticket_folder, 'message_threads.json') + + if os.path.exists(messages_file): + process_messages_collection(messages_file, output_ticket_dir) + + if os.path.exists(message_threads_file): + process_messages_threads(message_threads_file, output_ticket_dir) + + # Copier le répertoire des pièces jointes + src_attachments_dir = os.path.join(ticket_folder, 'attachments') + if os.path.exists(src_attachments_dir): + dst_attachments_dir = os.path.join(output_ticket_dir, 'attachments') + if os.path.exists(dst_attachments_dir): + shutil.rmtree(dst_attachments_dir) + shutil.copytree(src_attachments_dir, dst_attachments_dir) + print(f"Répertoire des pièces jointes copié") + + print(f"Traitement du ticket {ticket_name} terminé") + + +def filter_exported_tickets(source_dir: str = 'exported_tickets', output_dir: str = 'filtered_tickets') -> None: + """ + Filtre les tickets exportés en nettoyant les messages HTML. + + Args: + source_dir: Répertoire source contenant les tickets exportés + output_dir: Répertoire de sortie pour les tickets filtrés + """ + if not os.path.exists(source_dir): + print(f"Le répertoire source {source_dir} n'existe pas.") + return + + # Créer le répertoire de sortie s'il n'existe pas + if not os.path.exists(output_dir): + os.makedirs(output_dir, exist_ok=True) + + # Parcourir tous les éléments du répertoire source + for item in os.listdir(source_dir): + item_path = os.path.join(source_dir, item) + + # Vérifier si c'est un dossier qui contient un ticket + if os.path.isdir(item_path) and ( + item.startswith('ticket_') or + os.path.exists(os.path.join(item_path, 'ticket_info.json')) + ): + process_ticket_folder(item_path, output_dir) + + # Si c'est un fichier JSON brut de ticket, le copier simplement + elif os.path.isfile(item_path) and item.endswith('_raw.json'): + shutil.copy2(item_path, os.path.join(output_dir, item)) + print(f"Fichier copié: {item}") + + print(f"Filtrage des tickets terminé. Les tickets filtrés sont disponibles dans {output_dir}") + + +def run_filter_wizard() -> None: + """ + Interface utilisateur en ligne de commande pour filtrer les tickets exportés. + """ + print("\n==== FILTRAGE DES MESSAGES DES TICKETS ====") + + # Demander le répertoire source + default_source = 'exported_tickets' + source_dir = input(f"Répertoire source (par défaut: {default_source}): ").strip() + if not source_dir: + source_dir = default_source + + # Vérifier si le répertoire source existe + if not os.path.exists(source_dir): + print(f"Le répertoire source {source_dir} n'existe pas.") + return + + # Demander le répertoire de sortie + default_output = 'filtered_tickets' + output_dir = input(f"Répertoire de sortie (par défaut: {default_output}): ").strip() + if not output_dir: + output_dir = default_output + + # Confirmation + print(f"\nLes tickets du répertoire {source_dir} seront filtrés et placés dans {output_dir}.") + confirm = input("Continuer ? (o/n): ").strip().lower() + + if confirm == 'o': + filter_exported_tickets(source_dir, output_dir) + print("\nOpération terminée avec succès!") + else: + print("Opération annulée.") + + +if __name__ == "__main__": + run_filter_wizard() diff --git a/exported_tickets/all_models.json b/exported_tickets/all_models.json new file mode 100644 index 0000000..33cf73a --- /dev/null +++ b/exported_tickets/all_models.json @@ -0,0 +1,478 @@ +{ + "credit.control.line": "A credit control line", + "account.banking.mandate": "A generic banking mandate", + "account.voucher": "Accounting Voucher", + "agreement": "Agreement", + "account.analytic.account": "Analytic Account", + "hr.applicant": "Applicant", + "account.bank.statement": "Bank Statement", + "res.partner": "Contact", + "hr.contract": "Contract", + "contract.contract": "Contract", + "cetmix.conversation": "Conversation", + "credit.control.communication": "Credit control communication process", + "mail.channel": "Discussion Channel", + "mail.thread": "Email Thread", + "hr.employee": "Employee", + "calendar.event": "Event", + "hr.expense": "Expense", + "hr.expense.sheet": "Expense Report", + "hr.department": "HR Department", + "account.invoice": "Invoice", + "hr.job": "Job Position", + "crm.lead": "Lead/Opportunity", + "mail.blacklist": "Mail Blacklist", + "mail.mass_mailing.contact": "Mass Mailing Contact", + "account.payment.order": "Payment Order", + "account.payment": "Payments", + "product.product": "Product", + "product.template": "Product Template", + "project.project": "Project", + "purchase.order": "Purchase Order", + "sale.order": "Sale Order", + "crm.team": "Sales Channels", + "slide.channel": "Slide Channel", + "slide.slide": "Slides", + "survey.survey": "Survey", + "project.task": "Task", + "credit.control.policy.level": "A credit control policy level", + "mass.operation.mixin": "Abstract Mass Operations", + "mass.operation.wizard.mixin": "Abstract Mass Operations Wizard", + "contract.abstract.contract": "Abstract Recurring Contract", + "contract.abstract.contract.line": "Abstract Recurring Contract Line", + "res.groups": "Access Groups", + "account.account": "Account", + "account.cash.rounding": "Account Cash Rounding", + "account.chart.template": "Account Chart Template", + "account.check.deposit": "Account Check Deposit", + "account.common.report": "Account Common Report", + "account.group": "Account Group", + "account.invoice.send": "Account Invoice Send", + "account.invoice.refund.reason": "Account Invoice refund Reasons", + "report.account.report_journal": "Account Journal Report", + "account.move.reversal": "Account Move Reversal", + "account.print.journal": "Account Print Journal", + "account.reconciliation.widget": "Account Reconciliation widget", + "account.account.tag": "Account Tag", + "account.account.type": "Account Type", + "account.unreconcile": "Account Unreconcile", + "report.account.report_invoice_with_payments": "Account report with payment lines", + "wizard.update.charts.accounts.account": "Account that needs to be updated (new or updated in the template).", + "account.voucher.line": "Accounting Voucher Line", + "account.fiscal.position.account.template": "Accounts Mapping Template of Fiscal Position", + "account.fiscal.position.account": "Accounts Mapping of Fiscal Position", + "ir.actions.act_url": "Action URL", + "ir.actions.act_window": "Action Window", + "ir.actions.act_window_close": "Action Window Close", + "ir.actions.act_window.view": "Action Window View", + "ir.actions.actions": "Actions", + "mail.activity": "Activity", + "mail.activity.mixin": "Activity Mixin", + "mail.activity.type": "Activity Type", + "report.account.report_agedpartnerbalance": "Aged Partner Balance Report", + "agreement.type": "Agreement Types", + "sql.file.wizard": "Allow the user to save the file with sql request's data", + "account.analytic.distribution": "Analytic Account Distribution", + "account.analytic.group": "Analytic Categories", + "account.analytic.line": "Analytic Line", + "account.analytic.tag": "Analytic Tags", + "hr.recruitment.degree": "Applicant Degree", + "ir.module.category": "Application", + "cx.message.partner.assign.wiz": "Assign Partner to Messages", + "project.task.assign.sale": "Assign Sale Order line to tasks", + "ir.attachment": "Attachment", + "product.attribute.value": "Attribute Value", + "auditlog.autovacuum": "Auditlog - Delete old logs", + "auditlog.http.session": "Auditlog - HTTP User session log", + "auditlog.http.request": "Auditlog - HTTP request log", + "auditlog.log": "Auditlog - Log", + "auditlog.log.line": "Auditlog - Log details (fields updated)", + "auditlog.rule": "Auditlog - Rule", + "base.automation": "Automated Action", + "base.automation.line.test": "Automated Rule Line Test", + "base.automation.lead.test": "Automated Rule Test", + "ir.autovacuum": "Automatic Vacuum", + "res.bank": "Bank", + "bank.acc.rec.statement": "Bank Acc Rec Statement", + "res.partner.bank": "Bank Accounts", + "bank.payment.line": "Bank Payment Lines", + "account.bank.statement.cashbox": "Bank Statement Cashbox", + "account.bank.statement.closebalance": "Bank Statement Closing Balance", + "account.bank.statement.line": "Bank Statement Line", + "account.setup.bank.manual.config": "Bank setup manual config", + "base": "Base", + "base_import.import": "Base Import", + "base_import.mapping": "Base Import Mapping", + "board.board": "Board", + "crm.activity.report": "CRM Activity Analysis", + "crm.stage": "CRM Stages", + "calendar.attendee": "Calendar Attendee Information", + "calendar.contacts": "Calendar Contacts", + "mail.shortcode": "Canned Response / Shortcode", + "cash.box.in": "Cash Box In", + "cash.box.out": "Cash Box Out", + "account.cashbox.line": "CashBox Line", + "hr.applicant.category": "Category of applicant", + "change.password.wizard": "Change Password Wizard", + "mail.moderation": "Channel black/white list", + "chorus.flow": "Chorus Flow", + "chorus.partner.service": "Chorus Services attached to a partner", + "ir.actions.client": "Client Action", + "account.common.journal.report": "Common Journal Report", + "base.facturx": "Common methods to generate and parse Factur-X invoices", + "bus.bus": "Communication Bus", + "res.company": "Companies", + "ir.property": "Company Property", + "res.config": "Config", + "res.config.installer": "Config Installer", + "res.config.settings": "Config Settings", + "ir.actions.todo": "Configuration Wizards", + "account.invoice.confirm": "Confirm the selected invoices", + "account.abstract.payment": "Contains the logic shared between models which allows to register payments", + "contract.line": "Contract Line", + "contract.line.wizard": "Contract Line Wizard", + "contract.manually.create.invoice": "Contract Manually Create Invoice Wizard", + "contract.modification": "Contract Modification", + "contract.tag": "Contract Tag", + "contract.template": "Contract Template", + "contract.template.line": "Contract Template Line", + "contract.terminate.reason": "Contract Termination Reason", + "hr.contract.type": "Contract Type", + "crm.lead2opportunity.partner.mass": "Convert Lead to Opportunity (in mass)", + "crm.lead2opportunity.partner": "Convert Lead to Opportunity (not in mass)", + "res.country": "Country", + "res.country.group": "Country Group", + "res.country.state": "Country state", + "project.create.invoice": "Create Invoice from project", + "wizard.ir.model.menu.create": "Create Menu Wizard", + "project.create.sale.order.line": "Create SO Line from project", + "project.create.sale.order": "Create SO from project", + "account.invoice.payment.line.multi": "Create payment lines from invoice tree view", + "credit.control.analysis": "Credit Control Analysis", + "credit.control.policy.changer": "Credit Control Policy Changer", + "account.invoice.refund": "Credit Note", + "credit.control.run": "Credit control line generator", + "res.currency": "Currency", + "res.currency.rate": "Currency Rate", + "ir.ui.view.custom": "Custom View", + "date.range": "Date Range", + "date.range.generator": "Date Range Generator", + "date.range.type": "Date Range Type", + "decimal.precision": "Decimal Precision", + "decimal.precision.test": "Decimal Precision Test", + "ir.default": "Default Values", + "credit.control.policy": "Define a reminder policy", + "ir.demo": "Demo", + "ir.demo_failure.wizard": "Demo Failure wizard", + "ir.demo_failure": "Demo failure", + "res.country.department": "Department", + "digest.digest": "Digest", + "digest.tip": "Digest Tips", + "mail.resend.cancel": "Dismiss notification for resend by model", + "server.config": "Display server configuration", + "mail.followers": "Document Followers", + "prt.mail.message.draft": "Draft Message", + "cx.message.edit.wiz": "Edit Message or Note", + "mail.alias": "Email Aliases", + "mail.alias.mixin": "Email Aliases Mixin", + "mail.mail.statistics": "Email Statistics", + "email_template.preview": "Email Template Preview", + "mail.template": "Email Templates", + "mail.compose.message": "Email composition wizard", + "survey.mail.compose.message": "Email composition wizard for Survey", + "mail.resend.message": "Email resend wizard", + "slide.embed": "Embedded Slides View Counter", + "hr.employee.category": "Employee Category", + "calendar.alarm": "Event Alarm", + "calendar.alarm_manager": "Event Alarm Manager", + "calendar.event.type": "Event Meeting Type", + "hr.expense.refuse.wizard": "Expense Refuse Reason Wizard", + "hr.expense.sheet.register.payment.wizard": "Expense Register Payment Wizard", + "account.csv.export": "Export Accounting", + "ir.exports": "Exports", + "ir.exports.line": "Exports Line", + "account.fr.fec": "Ficher Echange Informatise", + "ir.model.fields": "Fields", + "ir.fields.converter": "Fields Converter", + "ir.filters": "Filters", + "account.fiscal.position": "Fiscal Position", + "account.fiscal.year": "Fiscal Year", + "wizard.update.charts.accounts.fiscal.position": "Fiscal position that needs to be updated (new or updated in the template).", + "format.address.mixin": "Fomat Address", + "account.full.reconcile": "Full Reconcile", + "crm.lead.lost": "Get Lost Reason", + "google.calendar": "Google Calendar", + "google.gmail.mixin": "Google Gmail Mixin", + "google.service": "Google Service", + "portal.wizard": "Grant Portal Access", + "ir.http": "HTTP Routing", + "hr.timesheet.switch": "Helper to quickly switch between timesheet lines", + "account.bank.statement.import": "Import Bank Statement", + "account.invoice.import.wizard": "Import Your Vendor Bills from Files.", + "fetchmail.server": "Incoming Mail Server", + "account.incoterms": "Incoterms", + "res.partner.industry": "Industry", + "base.language.install": "Install Language", + "mail.wizard.invite": "Invite wizard", + "account.invoice.line": "Invoice Line", + "account.invoice.tax": "Invoice Tax", + "account.invoice.report": "Invoices Statistics", + "account.journal": "Journal", + "account.bank.statement.import.journal.creation": "Journal Creation on Bank Statement Import", + "account.move": "Journal Entries", + "account.move.line": "Journal Item", + "base.kanban.abstract": "Kanban Abstract", + "base.kanban.stage": "Kanban Stage", + "base.language.export": "Language Export", + "base.language.import": "Language Import", + "res.lang": "Languages", + "crm.lead.tag": "Lead Tag", + "link.tracker": "Link Tracker", + "link.tracker.click": "Link Tracker Click", + "link.tracker.code": "Link Tracker Code", + "mail.channel.partner": "Listeners of a Channel", + "ir.logging": "Logging", + "mail.activity.team": "Mail Activity Team", + "mail.blacklist.mixin": "Mail Blacklist mixin", + "mail.bot": "Mail Bot", + "ir.mail_server": "Mail Server", + "mail.tracking.value": "Mail Tracking Value", + "mail.bounced.mixin": "Mail bounced mixin", + "mail.tracking.email": "MailTracking email", + "mail.tracking.event": "MailTracking event", + "mail.mass_mailing.list": "Mailing List", + "mass.editing": "Mass Editing", + "mass.editing.line": "Mass Editing Line", + "mail.mass_mailing": "Mass Mailing", + "mail.mass_mailing.campaign": "Mass Mailing Campaign", + "mail.mass_mailing.stage": "Mass Mailing Campaign Stage", + "mass.mailing.schedule.date": "Mass Mailing Scheduling", + "mail.statistics.report": "Mass Mailing Statistics", + "mail.mass_mailing.list_contact_rel": "Mass Mailing Subscription Information", + "mail.mass_mailing.tag": "Mass Mailing Tag", + "credit.control.emailer": "Mass credit line emailer", + "credit.control.marker": "Mass marker", + "credit.control.printer": "Mass printer", + "ir.ui.menu": "Menu", + "mass.mailing.list.merge": "Merge Mass Mailing List", + "crm.merge.opportunity": "Merge Opportunities", + "base.partner.merge.line": "Merge Partner Line", + "base.partner.merge.automatic.wizard": "Merge Partner Wizard", + "base.task.merge.automatic.wizard": "Merge Tasks", + "mail.message": "Message", + "mail.notification": "Message Notifications", + "mail.message.subtype": "Message subtypes", + "date.range.search.mixin": "Mixin class to add a Many2one style period search field", + "hr.timesheet.time_control.mixin": "Mixin for records related with timesheet lines", + "server.env.mixin": "Mixin to add server environment in existing models", + "ir.model.access": "Model Access", + "ir.model.constraint": "Model Constraint", + "ir.model.data": "Model Data", + "ir.model": "Models", + "ir.module.module": "Module", + "report.base.report_irmodulereference": "Module Reference Report (base)", + "base.module.uninstall": "Module Uninstall", + "ir.module.module.dependency": "Module dependency", + "ir.module.module.exclusion": "Module exclusion", + "prt.message.move.wiz": "Move Messages To Other Thread", + "website.multi.mixin": "Multi Website Mixin", + "website.published.multi.mixin": "Multi Website Published Mixin", + "account.financial.year.op": "Opening Balance of Financial Year", + "crm.lost.reason": "Opp. Lost Reason", + "mail.mail": "Outgoing Mails", + "website.page": "Page", + "report.paperformat": "Paper Format Config", + "account.partial.reconcile": "Partial Reconcile", + "res.partner.id_category": "Partner ID Category", + "res.partner.id_number": "Partner ID Number", + "res.partner.payment.action.type": "Partner Payment Action Types", + "res.partner.category": "Partner Tags", + "res.partner.title": "Partner Title", + "crm.partner.binding": "Partner linking/binding in CRM wizard", + "mail.resend.partner": "Partner with additionnal information for mail resend", + "payment.acquirer": "Payment Acquirer", + "payment.icon": "Payment Icon", + "account.payment.line": "Payment Lines", + "account.payment.method": "Payment Methods", + "account.payment.mode": "Payment Modes", + "account.payment.term": "Payment Terms", + "account.payment.term.line": "Payment Terms Line", + "payment.token": "Payment Token", + "payment.transaction": "Payment Transaction", + "payment.acquirer.onboarding.wizard": "Payment acquire onboarding wizard", + "portal.mixin": "Portal Mixin", + "portal.share": "Portal Sharing", + "portal.wizard.user": "Portal User Config", + "account.reconcile.model": "Preset to create journal entries during a invoices and payments matching", + "product.pricelist": "Pricelist", + "product.pricelist.item": "Pricelist Item", + "product.attribute": "Product Attribute", + "product.attribute.custom.value": "Product Attribute Custom Value", + "product.template.attribute.value": "Product Attribute Value", + "product.brand": "Product Brand", + "product.category": "Product Category", + "product.image": "Product Image", + "product.margin": "Product Margin", + "product.packaging": "Product Packaging", + "product.price.history": "Product Price List History", + "report.product.report_pricelist": "Product Price List Report", + "product.price_list": "Product Price per Unit Based on Pricelist Version", + "product.state": "Product State", + "product.style": "Product Style", + "product.template.attribute.exclusion": "Product Template Attribute Exclusion", + "product.template.attribute.line": "Product Template Attribute Line", + "uom.uom": "Product Unit of Measure", + "uom.category": "Product UoM Categories", + "report.sale.report_saleproforma": "Proforma Report", + "project.milestone": "Project Milestone", + "project.profitability.report": "Project Profitability Report", + "project.sale.line.employee.map": "Project Sales line, employee mapping", + "project.tags": "Project Tags", + "project.task.copy.map": "Project Task Copy Map", + "publisher_warranty.contract": "Publisher Warranty Contract", + "purchase.order.line": "Purchase Order Line", + "purchase.report": "Purchase Report", + "purchase.bill.union": "Purchases & Bills Union", + "sale.order.template": "Quotation Template", + "sale.order.template.line": "Quotation Template Line", + "sale.order.template.option": "Quotation Template Option", + "ir.qweb": "Qweb", + "ir.qweb.field": "Qweb Field", + "ir.qweb.field.barcode": "Qweb Field Barcode", + "ir.qweb.field.contact": "Qweb Field Contact", + "ir.qweb.field.date": "Qweb Field Date", + "ir.qweb.field.datetime": "Qweb Field Datetime", + "ir.qweb.field.duration": "Qweb Field Duration", + "ir.qweb.field.float": "Qweb Field Float", + "ir.qweb.field.float_time": "Qweb Field Float Time", + "ir.qweb.field.html": "Qweb Field HTML", + "ir.qweb.field.image": "Qweb Field Image", + "ir.qweb.field.integer": "Qweb Field Integer", + "ir.qweb.field.many2one": "Qweb Field Many to One", + "ir.qweb.field.monetary": "Qweb Field Monerary", + "ir.qweb.field.relative": "Qweb Field Relative", + "ir.qweb.field.selection": "Qweb Field Selection", + "ir.qweb.field.text": "Qweb Field Text", + "ir.qweb.field.qweb": "Qweb Field qweb", + "ir.qweb.field.many2many": "Qweb field many2many", + "rating.rating": "Rating", + "rating.mixin": "Rating Mixin", + "account.reconcile.model.template": "Reconcile Model Template", + "ir.rule": "Record Rule", + "hr.recruitment.stage": "Recruitment Stages", + "account.register.payments": "Register Payments", + "ir.model.relation": "Relation Model", + "ir.actions.report": "Report Action", + "report.account_check_report.check_report": "Report Check Print", + "report.layout": "Report Layout", + "resource.calendar.leaves": "Resource Leaves Detail", + "resource.mixin": "Resource Mixin", + "resource.calendar": "Resource Working Time", + "resource.resource": "Resources", + "website.seo.metadata": "SEO metadata", + "sql.request.mixin": "SQL Request Mixin", + "sql.export": "SQL export", + "sale.invoice.group.method": "Sale Invoice Group Method", + "sale.order.option": "Sale Options", + "sale.payment.acquirer.onboarding.wizard": "Sale Payment acquire onboarding wizard", + "sale.product.configurator": "Sale Product Configurator", + "sale.advance.payment.inv": "Sales Advance Payment Invoice", + "sale.report": "Sales Analysis Report", + "sale.order.line": "Sales Order Line", + "report.all.channels.sales": "Sales by Channel (All in One)", + "mail.mass_mailing.test": "Sample Mail Wizard", + "ir.cron": "Scheduled Actions", + "account.invoice.chorus.send": "Send several invoices to Chorus", + "ir.sequence": "Sequence", + "ir.sequence.date_range": "Sequence Date Range", + "ir.actions.server": "Server Action", + "ir.server.object.lines": "Server Action value mapping", + "server.env.techname.mixin": "Server environment technical name", + "slide.tag": "Slide Tag", + "slide.category": "Slides Category", + "hr.recruitment.source": "Source of Applicants", + "sparse_fields.test": "Sparse fields Test", + "bank.acc.rec.statement.line": "Statement Line", + "product.supplierinfo": "Supplier Pricelist", + "survey.label": "Survey Label", + "survey.page": "Survey Page", + "survey.question": "Survey Question", + "survey.stage": "Survey Stage", + "survey.user_input": "Survey User Input", + "survey.user_input_line": "Survey User Input Line", + "ir.config_parameter": "System Parameter", + "project.task.type": "Task Stage", + "report.project.task.user": "Tasks Analysis", + "account.tax": "Tax", + "tax.adjustments.wizard": "Tax Adjustments Wizard", + "account.tax.group": "Tax Group", + "account.fiscal.position.tax.template": "Tax Mapping Template of Fiscal Position", + "account.fiscal.position.tax": "Tax Mapping of Fiscal Position", + "wizard.update.charts.accounts.tax": "Tax that needs to be updated (new or updated in the template).", + "report.account_payment_order.print_account_payment_order_main": "Technical model for printing payment order", + "account.fiscal.position.template": "Template for Fiscal Position", + "account.account.template": "Templates for Accounts", + "account.tax.template": "Templates for Taxes", + "contract.contract.terminate": "Terminate Contract Wizard", + "resource.test": "Test Resource Model", + "base_import.tests.models.preview": "Tests : Base Import Model Preview", + "base_import.tests.models.char": "Tests : Base Import Model, Character", + "base_import.tests.models.char.noreadonly": "Tests : Base Import Model, Character No readonly", + "base_import.tests.models.char.readonly": "Tests : Base Import Model, Character readonly", + "base_import.tests.models.char.required": "Tests : Base Import Model, Character required", + "base_import.tests.models.char.states": "Tests : Base Import Model, Character states", + "base_import.tests.models.char.stillreadonly": "Tests : Base Import Model, Character still readonly", + "base_import.tests.models.m2o": "Tests : Base Import Model, Many to One", + "base_import.tests.models.m2o.related": "Tests : Base Import Model, Many to One related", + "base_import.tests.models.m2o.required": "Tests : Base Import Model, Many to One required", + "base_import.tests.models.m2o.required.related": "Tests : Base Import Model, Many to One required related", + "base_import.tests.models.o2m": "Tests : Base Import Model, One to Many", + "base_import.tests.models.o2m.child": "Tests : Base Import Model, One to Many child", + "base_import.tests.models.complex": "Tests: Base Import Model Complex", + "base_import.tests.models.float": "Tests: Base Import Model Float", + "theme.ir.attachment": "Theme Attachments", + "theme.ir.ui.view": "Theme UI View", + "theme.utils": "Theme Utils", + "web_tour.tour": "Tours", + "ir.translation": "Translation", + "transmit.method": "Transmit Method of a document", + "unece.code.list": "UNECE nomenclatures", + "utm.campaign": "UTM Campaign", + "utm.medium": "UTM Medium", + "utm.mixin": "UTM Mixin", + "utm.source": "UTM Source", + "_unknown": "Unknown", + "base.module.update": "Update Module", + "base.update.translations": "Update Translations", + "base.module.upgrade": "Upgrade Module", + "bus.presence": "User Presence", + "res.users.role": "User role", + "change.password.user": "User, Change Password Wizard", + "res.users": "Users", + "res.users.log": "Users Log", + "res.users.role.line": "Users associated to a role", + "validate.account.move": "Validate Account Move", + "ir.ui.view": "View", + "web_editor.converter.test.sub": "Web Editor Converter Subtest", + "web_editor.converter.test": "Web Editor Converter Test", + "website": "Website", + "website.form.recaptcha": "Website Form Recaptcha Validations", + "website.menu": "Website Menu", + "product.public.category": "Website Product Category", + "website.published.mixin": "Website Published Mixin", + "website.redirect": "Website Redirect", + "theme.website.menu": "Website Theme Menu", + "theme.website.page": "Website Theme Page", + "wizard.matching": "Wizard Matching", + "wizard.open.tax.balances": "Wizard Open Tax Balances", + "wizard.update.charts.accounts": "Wizard Update Charts Accounts", + "mass.editing.wizard": "Wizard for mass edition", + "account.payment.line.create": "Wizard to create payment lines", + "resource.calendar.attendance": "Work Detail", + "base.task.merge.line": "base.task.merge.line", + "x_convers": "convers", + "website.sale.payment.acquirer.onboarding.wizard": "website.sale.payment.acquirer.onboarding.wizard", + "wizard.account.matching": "wizard.account.matching", + "wizard.fp.matching": "wizard.fp.matching", + "wizard.tax.matching": "wizard.tax.matching" +} \ No newline at end of file diff --git a/exported_tickets/fields_project.task.json b/exported_tickets/fields_project.task.json new file mode 100644 index 0000000..8c0bba1 --- /dev/null +++ b/exported_tickets/fields_project.task.json @@ -0,0 +1,1039 @@ +{ + "active": { + "type": "boolean", + "relation": null, + "string": "Active", + "help": "", + "required": false, + "readonly": false, + "selection": null + }, + "name": { + "type": "char", + "relation": null, + "string": "Title", + "help": "", + "required": true, + "readonly": false, + "selection": null + }, + "description": { + "type": "html", + "relation": null, + "string": "Description", + "help": "", + "required": false, + "readonly": false, + "selection": null + }, + "sequence": { + "type": "integer", + "relation": null, + "string": "Sequence", + "help": "Gives the sequence order when displaying a list of tasks.", + "required": false, + "readonly": false, + "selection": null + }, + "stage_id": { + "type": "many2one", + "relation": "project.task.type", + "string": "Stage", + "help": "", + "required": false, + "readonly": false, + "selection": null + }, + "tag_ids": { + "type": "many2many", + "relation": "project.tags", + "string": "Tags", + "help": "", + "required": false, + "readonly": false, + "selection": null + }, + "kanban_state": { + "type": "selection", + "relation": null, + "string": "Kanban State", + "help": "", + "required": true, + "readonly": false, + "selection": [ + [ + "normal", + "Grey" + ], + [ + "done", + "Green" + ], + [ + "blocked", + "Red" + ] + ] + }, + "kanban_state_label": { + "type": "char", + "relation": null, + "string": "Kanban State Label", + "help": "", + "required": false, + "readonly": true, + "selection": null + }, + "create_date": { + "type": "datetime", + "relation": null, + "string": "Created On", + "help": "", + "required": false, + "readonly": true, + "selection": null + }, + "write_date": { + "type": "datetime", + "relation": null, + "string": "Last Updated On", + "help": "", + "required": false, + "readonly": true, + "selection": null + }, + "date_start": { + "type": "datetime", + "relation": null, + "string": "Starting Date", + "help": "", + "required": false, + "readonly": false, + "selection": null + }, + "date_end": { + "type": "datetime", + "relation": null, + "string": "Ending Date", + "help": "", + "required": false, + "readonly": false, + "selection": null + }, + "date_assign": { + "type": "datetime", + "relation": null, + "string": "Assigning Date", + "help": "", + "required": false, + "readonly": true, + "selection": null + }, + "date_deadline": { + "type": "date", + "relation": null, + "string": "Deadline", + "help": "", + "required": false, + "readonly": false, + "selection": null + }, + "date_last_stage_update": { + "type": "datetime", + "relation": null, + "string": "Last Stage Update", + "help": "", + "required": false, + "readonly": true, + "selection": null + }, + "project_id": { + "type": "many2one", + "relation": "project.project", + "string": "Project", + "help": "", + "required": false, + "readonly": false, + "selection": null + }, + "notes": { + "type": "text", + "relation": null, + "string": "Notes", + "help": "", + "required": false, + "readonly": false, + "selection": null + }, + "planned_hours": { + "type": "float", + "relation": null, + "string": "Planned Hours", + "help": "It is the time planned to achieve the task. If this document has sub-tasks, it means the time needed to achieve this tasks and its childs.", + "required": false, + "readonly": false, + "selection": null + }, + "subtask_planned_hours": { + "type": "float", + "relation": null, + "string": "Subtasks", + "help": "Computed using sum of hours planned of all subtasks created from main task. Usually these hours are less or equal to the Planned Hours (of main task).", + "required": false, + "readonly": true, + "selection": null + }, + "user_id": { + "type": "many2one", + "relation": "res.users", + "string": "Assigned to", + "help": "", + "required": false, + "readonly": false, + "selection": null + }, + "partner_id": { + "type": "many2one", + "relation": "res.partner", + "string": "Customer", + "help": "", + "required": false, + "readonly": false, + "selection": null + }, + "manager_id": { + "type": "many2one", + "relation": "res.users", + "string": "Project Manager", + "help": "", + "required": false, + "readonly": true, + "selection": null + }, + "company_id": { + "type": "many2one", + "relation": "res.company", + "string": "Company", + "help": "", + "required": true, + "readonly": false, + "selection": null + }, + "color": { + "type": "integer", + "relation": null, + "string": "Color Index", + "help": "", + "required": false, + "readonly": false, + "selection": null + }, + "user_email": { + "type": "char", + "relation": null, + "string": "User Email", + "help": "", + "required": false, + "readonly": true, + "selection": null + }, + "attachment_ids": { + "type": "one2many", + "relation": "ir.attachment", + "string": "Main Attachments", + "help": "Attachment that don't come from message.", + "required": false, + "readonly": true, + "selection": null + }, + "displayed_image_id": { + "type": "many2one", + "relation": "ir.attachment", + "string": "Cover Image", + "help": "", + "required": false, + "readonly": false, + "selection": null + }, + "legend_blocked": { + "type": "char", + "relation": null, + "string": "Kanban Blocked Explanation", + "help": "Override the default value displayed for the blocked state for kanban selection, when the task or issue is in that stage.", + "required": false, + "readonly": true, + "selection": null + }, + "legend_done": { + "type": "char", + "relation": null, + "string": "Kanban Valid Explanation", + "help": "Override the default value displayed for the done state for kanban selection, when the task or issue is in that stage.", + "required": false, + "readonly": true, + "selection": null + }, + "legend_normal": { + "type": "char", + "relation": null, + "string": "Kanban Ongoing Explanation", + "help": "Override the default value displayed for the normal state for kanban selection, when the task or issue is in that stage.", + "required": false, + "readonly": true, + "selection": null + }, + "parent_id": { + "type": "many2one", + "relation": "project.task", + "string": "Parent Task", + "help": "", + "required": false, + "readonly": false, + "selection": null + }, + "child_ids": { + "type": "one2many", + "relation": "project.task", + "string": "Sub-tasks", + "help": "", + "required": false, + "readonly": false, + "selection": null + }, + "subtask_project_id": { + "type": "many2one", + "relation": "project.project", + "string": "Sub-task Project", + "help": "Choosing a sub-tasks project will both enable sub-tasks and set their default project (possibly the project itself)", + "required": false, + "readonly": true, + "selection": null + }, + "subtask_count": { + "type": "integer", + "relation": null, + "string": "Sub-task count", + "help": "", + "required": false, + "readonly": true, + "selection": null + }, + "email_from": { + "type": "char", + "relation": null, + "string": "Email", + "help": "These people will receive email.", + "required": false, + "readonly": false, + "selection": null + }, + "email_cc": { + "type": "char", + "relation": null, + "string": "Watchers Emails", + "help": "These email addresses will be added to the CC field of all inbound\n and outbound emails for this record before being sent. Separate multiple email addresses with a comma", + "required": false, + "readonly": false, + "selection": null + }, + "working_hours_open": { + "type": "float", + "relation": null, + "string": "Working hours to assign", + "help": "", + "required": false, + "readonly": true, + "selection": null + }, + "working_hours_close": { + "type": "float", + "relation": null, + "string": "Working hours to close", + "help": "", + "required": false, + "readonly": true, + "selection": null + }, + "working_days_open": { + "type": "float", + "relation": null, + "string": "Working days to assign", + "help": "", + "required": false, + "readonly": true, + "selection": null + }, + "working_days_close": { + "type": "float", + "relation": null, + "string": "Working days to close", + "help": "", + "required": false, + "readonly": true, + "selection": null + }, + "website_message_ids": { + "type": "one2many", + "relation": "mail.message", + "string": "Website Messages", + "help": "Website communication history", + "required": false, + "readonly": false, + "selection": null + }, + "analytic_account_active": { + "type": "boolean", + "relation": null, + "string": "Analytic Account", + "help": "If the active field is set to False, it will allow you to hide the account without removing it.", + "required": false, + "readonly": true, + "selection": null + }, + "allow_timesheets": { + "type": "boolean", + "relation": null, + "string": "Allow timesheets", + "help": "Timesheets can be logged on this task.", + "required": false, + "readonly": true, + "selection": null + }, + "remaining_hours": { + "type": "float", + "relation": null, + "string": "Remaining Hours", + "help": "Total remaining time, can be re-estimated periodically by the assignee of the task.", + "required": false, + "readonly": true, + "selection": null + }, + "effective_hours": { + "type": "float", + "relation": null, + "string": "Hours Spent", + "help": "Computed using the sum of the task work done.", + "required": false, + "readonly": true, + "selection": null + }, + "total_hours_spent": { + "type": "float", + "relation": null, + "string": "Total Hours", + "help": "Computed as: Time Spent + Sub-tasks Hours.", + "required": false, + "readonly": true, + "selection": null + }, + "progress": { + "type": "float", + "relation": null, + "string": "Progress", + "help": "Display progress of current task.", + "required": false, + "readonly": true, + "selection": null + }, + "subtask_effective_hours": { + "type": "float", + "relation": null, + "string": "Sub-tasks Hours Spent", + "help": "Sum of actually spent hours on the subtask(s)", + "required": false, + "readonly": true, + "selection": null + }, + "timesheet_ids": { + "type": "one2many", + "relation": "account.analytic.line", + "string": "Timesheets", + "help": "", + "required": false, + "readonly": false, + "selection": null + }, + "priority": { + "type": "selection", + "relation": null, + "string": "Priority", + "help": "", + "required": false, + "readonly": false, + "selection": [ + [ + "0", + "Low" + ], + [ + "1", + "Normal" + ], + [ + "2", + "High" + ], + [ + "3", + "Very High" + ] + ] + }, + "code": { + "type": "char", + "relation": null, + "string": "Task Number", + "help": "", + "required": true, + "readonly": false, + "selection": null + }, + "dependency_task_ids": { + "type": "many2many", + "relation": "project.task", + "string": "Dependencies", + "help": "", + "required": false, + "readonly": false, + "selection": null + }, + "recursive_dependency_task_ids": { + "type": "many2many", + "relation": "project.task", + "string": "Recursive Dependencies", + "help": "", + "required": false, + "readonly": true, + "selection": null + }, + "depending_task_ids": { + "type": "many2many", + "relation": "project.task", + "string": "Depending Tasks", + "help": "Tasks that are dependent on this task.", + "required": false, + "readonly": true, + "selection": null + }, + "recursive_depending_task_ids": { + "type": "many2many", + "relation": "project.task", + "string": "Recursive Depending Tasks", + "help": "Tasks that are dependent on this task (recursive).", + "required": false, + "readonly": true, + "selection": null + }, + "milestone_id": { + "type": "many2one", + "relation": "project.milestone", + "string": "Milestones", + "help": "", + "required": false, + "readonly": false, + "selection": null + }, + "use_milestones": { + "type": "boolean", + "relation": null, + "string": "Use Milestones", + "help": "Does this project use milestones?", + "required": false, + "readonly": true, + "selection": null + }, + "show_time_control": { + "type": "selection", + "relation": null, + "string": "Show Time Control", + "help": "Indicate which time control button to show, if any.", + "required": false, + "readonly": true, + "selection": [ + [ + "start", + "Start" + ], + [ + "stop", + "Stop" + ] + ] + }, + "sale_line_id": { + "type": "many2one", + "relation": "sale.order.line", + "string": "Sales Order Item", + "help": "", + "required": false, + "readonly": false, + "selection": null + }, + "sale_order_id": { + "type": "many2one", + "relation": "sale.order", + "string": "Sales Order", + "help": "", + "required": false, + "readonly": true, + "selection": null + }, + "billable_type": { + "type": "selection", + "relation": null, + "string": "Billable Type", + "help": "", + "required": false, + "readonly": true, + "selection": [ + [ + "task_rate", + "At Task Rate" + ], + [ + "employee_rate", + "At Employee Rate" + ], + [ + "no", + "No Billable" + ] + ] + }, + "is_project_map_empty": { + "type": "boolean", + "relation": null, + "string": "Is Project map empty", + "help": "", + "required": false, + "readonly": true, + "selection": null + }, + "activity_ids": { + "type": "one2many", + "relation": "mail.activity", + "string": "Activities", + "help": "", + "required": false, + "readonly": false, + "selection": null + }, + "activity_state": { + "type": "selection", + "relation": null, + "string": "Activity State", + "help": "Status based on activities\nOverdue: Due date is already passed\nToday: Activity date is today\nPlanned: Future activities.", + "required": false, + "readonly": true, + "selection": [ + [ + "overdue", + "Overdue" + ], + [ + "today", + "Today" + ], + [ + "planned", + "Planned" + ] + ] + }, + "activity_user_id": { + "type": "many2one", + "relation": "res.users", + "string": "Responsible User", + "help": "", + "required": false, + "readonly": false, + "selection": null + }, + "activity_type_id": { + "type": "many2one", + "relation": "mail.activity.type", + "string": "Next Activity Type", + "help": "", + "required": false, + "readonly": false, + "selection": null + }, + "activity_date_deadline": { + "type": "date", + "relation": null, + "string": "Next Activity Deadline", + "help": "", + "required": false, + "readonly": true, + "selection": null + }, + "activity_summary": { + "type": "char", + "relation": null, + "string": "Next Activity Summary", + "help": "", + "required": false, + "readonly": false, + "selection": null + }, + "activity_team_user_ids": { + "type": "many2many", + "relation": "res.users", + "string": "test field", + "help": "", + "required": false, + "readonly": true, + "selection": null + }, + "message_is_follower": { + "type": "boolean", + "relation": null, + "string": "Is Follower", + "help": "", + "required": false, + "readonly": true, + "selection": null + }, + "message_follower_ids": { + "type": "one2many", + "relation": "mail.followers", + "string": "Followers", + "help": "", + "required": false, + "readonly": false, + "selection": null + }, + "message_partner_ids": { + "type": "many2many", + "relation": "res.partner", + "string": "Followers (Partners)", + "help": "", + "required": false, + "readonly": true, + "selection": null + }, + "message_channel_ids": { + "type": "many2many", + "relation": "mail.channel", + "string": "Followers (Channels)", + "help": "", + "required": false, + "readonly": true, + "selection": null + }, + "message_ids": { + "type": "one2many", + "relation": "mail.message", + "string": "Messages", + "help": "", + "required": false, + "readonly": false, + "selection": null + }, + "message_unread": { + "type": "boolean", + "relation": null, + "string": "Unread Messages", + "help": "If checked new messages require your attention.", + "required": false, + "readonly": true, + "selection": null + }, + "message_unread_counter": { + "type": "integer", + "relation": null, + "string": "Unread Messages Counter", + "help": "Number of unread messages", + "required": false, + "readonly": true, + "selection": null + }, + "message_needaction": { + "type": "boolean", + "relation": null, + "string": "Action Needed", + "help": "If checked, new messages require your attention.", + "required": false, + "readonly": true, + "selection": null + }, + "message_needaction_counter": { + "type": "integer", + "relation": null, + "string": "Number of Actions", + "help": "Number of messages which requires an action", + "required": false, + "readonly": true, + "selection": null + }, + "message_has_error": { + "type": "boolean", + "relation": null, + "string": "Message Delivery error", + "help": "If checked, some messages have a delivery error.", + "required": false, + "readonly": true, + "selection": null + }, + "message_has_error_counter": { + "type": "integer", + "relation": null, + "string": "Number of error", + "help": "Number of messages with delivery error", + "required": false, + "readonly": true, + "selection": null + }, + "message_attachment_count": { + "type": "integer", + "relation": null, + "string": "Attachment Count", + "help": "", + "required": false, + "readonly": true, + "selection": null + }, + "message_main_attachment_id": { + "type": "many2one", + "relation": "ir.attachment", + "string": "Main Attachment", + "help": "", + "required": false, + "readonly": false, + "selection": null + }, + "failed_message_ids": { + "type": "one2many", + "relation": "mail.message", + "string": "Failed Messages", + "help": "", + "required": false, + "readonly": false, + "selection": null + }, + "rating_ids": { + "type": "one2many", + "relation": "rating.rating", + "string": "Rating", + "help": "", + "required": false, + "readonly": false, + "selection": null + }, + "rating_last_value": { + "type": "float", + "relation": null, + "string": "Rating Last Value", + "help": "", + "required": false, + "readonly": true, + "selection": null + }, + "rating_last_feedback": { + "type": "text", + "relation": null, + "string": "Rating Last Feedback", + "help": "Reason of the rating", + "required": false, + "readonly": false, + "selection": null + }, + "rating_last_image": { + "type": "binary", + "relation": null, + "string": "Rating Last Image", + "help": "", + "required": false, + "readonly": false, + "selection": null + }, + "rating_count": { + "type": "integer", + "relation": null, + "string": "Rating count", + "help": "", + "required": false, + "readonly": true, + "selection": null + }, + "access_url": { + "type": "char", + "relation": null, + "string": "Portal Access URL", + "help": "Customer Portal URL", + "required": false, + "readonly": true, + "selection": null + }, + "access_token": { + "type": "char", + "relation": null, + "string": "Security Token", + "help": "", + "required": false, + "readonly": false, + "selection": null + }, + "access_warning": { + "type": "text", + "relation": null, + "string": "Access warning", + "help": "", + "required": false, + "readonly": true, + "selection": null + }, + "id": { + "type": "integer", + "relation": null, + "string": "ID", + "help": "", + "required": false, + "readonly": true, + "selection": null + }, + "display_name": { + "type": "char", + "relation": null, + "string": "Display Name", + "help": "", + "required": false, + "readonly": true, + "selection": null + }, + "create_uid": { + "type": "many2one", + "relation": "res.users", + "string": "Created by", + "help": "", + "required": false, + "readonly": true, + "selection": null + }, + "write_uid": { + "type": "many2one", + "relation": "res.users", + "string": "Last Updated by", + "help": "", + "required": false, + "readonly": true, + "selection": null + }, + "__last_update": { + "type": "datetime", + "relation": null, + "string": "Last Modified on", + "help": "", + "required": false, + "readonly": true, + "selection": null + }, + "x_CBAO_windows_maj_ID": { + "type": "char", + "relation": null, + "string": "ID Mise à jour Windows", + "help": "", + "required": false, + "readonly": false, + "selection": null + }, + "x_CBAO_version_signalement": { + "type": "char", + "relation": null, + "string": "Version de signalement", + "help": "", + "required": false, + "readonly": false, + "selection": null + }, + "x_CBAO_version_correction": { + "type": "char", + "relation": null, + "string": "Version de correction", + "help": "", + "required": false, + "readonly": false, + "selection": null + }, + "x_CBAO_DateCorrection": { + "type": "date", + "relation": null, + "string": "Date de correction", + "help": "Date de publication du ticket.", + "required": false, + "readonly": false, + "selection": null + }, + "x_CBAO_Scoring_Facilite": { + "type": "integer", + "relation": null, + "string": "Facilité du ticket", + "help": "0 = Plus d'une semaine, 1 = Plus de 3 jours, 2 = Plus d'un jour, 3 = Dans la journée", + "required": false, + "readonly": false, + "selection": null + }, + "x_CBAO_Scoring_Importance": { + "type": "integer", + "relation": null, + "string": "Importance du ticket", + "help": "0 = orthographe, 1 = confort, 2 = fonctionnalité manquante, 3 = norme, 4 Bloquant", + "required": false, + "readonly": false, + "selection": null + }, + "x_CBAO_Scoring_Urgence": { + "type": "integer", + "relation": null, + "string": "Urgence du ticket", + "help": "0 = Semestre, 1 = Trimestre, 2 = Mois, 3 = Immédiat", + "required": false, + "readonly": false, + "selection": null + }, + "x_CBAO_Scoring_Incidence": { + "type": "integer", + "relation": null, + "string": "Incidence du ticket", + "help": "0 = Un client, 1 = Quelques clients, 2 = Un groupe de clients, 3 = Tous les clients", + "required": false, + "readonly": false, + "selection": null + }, + "x_CBAO_Scoring_Resultat": { + "type": "integer", + "relation": null, + "string": "Score du ticket", + "help": "Score du ticket", + "required": false, + "readonly": true, + "selection": null + }, + "x_CBAO_InformationsSup": { + "type": "text", + "relation": null, + "string": "Type d'abonnement // Site web BRG-LAB", + "help": "", + "required": false, + "readonly": false, + "selection": null + }, + "x_CBAO_Etiquettes_EntrepriseClient": { + "type": "many2many", + "relation": "res.partner", + "string": "Etiquettes de l'entreprise", + "help": "", + "required": false, + "readonly": false, + "selection": null + }, + "x_CBAO_category_id": { + "type": "many2many", + "relation": "res.partner.category", + "string": "Etiquettes du client", + "help": "", + "required": false, + "readonly": true, + "selection": null + } +} \ No newline at end of file diff --git a/exported_tickets/fields_project.task_complete.json b/exported_tickets/fields_project.task_complete.json new file mode 100644 index 0000000..29004d6 --- /dev/null +++ b/exported_tickets/fields_project.task_complete.json @@ -0,0 +1,1941 @@ +{ + "active": { + "type": "boolean", + "change_default": false, + "company_dependent": false, + "depends": [], + "manual": false, + "readonly": false, + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Active" + }, + "name": { + "type": "char", + "change_default": false, + "company_dependent": false, + "depends": [], + "manual": false, + "readonly": false, + "required": true, + "searchable": true, + "sortable": true, + "store": true, + "string": "Title", + "translate": false, + "trim": true + }, + "description": { + "type": "html", + "change_default": false, + "company_dependent": false, + "depends": [], + "manual": false, + "readonly": false, + "required": false, + "sanitize": true, + "sanitize_attributes": true, + "sanitize_style": false, + "sanitize_tags": true, + "searchable": true, + "sortable": true, + "store": true, + "string": "Description", + "strip_classes": false, + "strip_style": false, + "translate": false + }, + "sequence": { + "type": "integer", + "change_default": false, + "company_dependent": false, + "depends": [], + "group_operator": "sum", + "help": "Gives the sequence order when displaying a list of tasks.", + "manual": false, + "readonly": false, + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Sequence" + }, + "stage_id": { + "type": "many2one", + "change_default": false, + "company_dependent": false, + "context": {}, + "depends": [], + "domain": "[('project_ids', '=', project_id)]", + "manual": false, + "readonly": false, + "relation": "project.task.type", + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Stage" + }, + "tag_ids": { + "type": "many2many", + "change_default": false, + "company_dependent": false, + "context": {}, + "depends": [], + "domain": [], + "manual": false, + "readonly": false, + "relation": "project.tags", + "required": false, + "searchable": true, + "sortable": false, + "store": true, + "string": "Tags" + }, + "kanban_state": { + "type": "selection", + "change_default": false, + "company_dependent": false, + "depends": [], + "manual": false, + "readonly": false, + "required": true, + "searchable": true, + "selection": [ + [ + "normal", + "Grey" + ], + [ + "done", + "Green" + ], + [ + "blocked", + "Red" + ] + ], + "sortable": true, + "store": true, + "string": "Kanban State" + }, + "kanban_state_label": { + "type": "char", + "change_default": false, + "company_dependent": false, + "depends": [ + "stage_id", + "kanban_state" + ], + "manual": false, + "readonly": true, + "required": false, + "searchable": false, + "sortable": false, + "store": false, + "string": "Kanban State Label", + "translate": false, + "trim": true + }, + "create_date": { + "type": "datetime", + "change_default": false, + "company_dependent": false, + "depends": [], + "manual": false, + "readonly": true, + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Created On" + }, + "write_date": { + "type": "datetime", + "change_default": false, + "company_dependent": false, + "depends": [], + "manual": false, + "readonly": true, + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Last Updated On" + }, + "date_start": { + "type": "datetime", + "change_default": false, + "company_dependent": false, + "depends": [], + "manual": false, + "readonly": false, + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Starting Date" + }, + "date_end": { + "type": "datetime", + "change_default": false, + "company_dependent": false, + "depends": [], + "manual": false, + "readonly": false, + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Ending Date" + }, + "date_assign": { + "type": "datetime", + "change_default": false, + "company_dependent": false, + "depends": [], + "manual": false, + "readonly": true, + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Assigning Date" + }, + "date_deadline": { + "type": "date", + "change_default": false, + "company_dependent": false, + "depends": [], + "manual": false, + "readonly": false, + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Deadline" + }, + "date_last_stage_update": { + "type": "datetime", + "change_default": false, + "company_dependent": false, + "depends": [], + "manual": false, + "readonly": true, + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Last Stage Update" + }, + "project_id": { + "type": "many2one", + "change_default": true, + "company_dependent": false, + "context": {}, + "depends": [], + "domain": [], + "manual": false, + "readonly": false, + "relation": "project.project", + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Project" + }, + "notes": { + "type": "text", + "change_default": false, + "company_dependent": false, + "depends": [], + "manual": false, + "readonly": false, + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Notes", + "translate": false + }, + "planned_hours": { + "type": "float", + "change_default": false, + "company_dependent": false, + "depends": [], + "group_operator": "sum", + "help": "It is the time planned to achieve the task. If this document has sub-tasks, it means the time needed to achieve this tasks and its childs.", + "manual": false, + "readonly": false, + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Planned Hours" + }, + "subtask_planned_hours": { + "type": "float", + "change_default": false, + "company_dependent": false, + "depends": [ + "child_ids.planned_hours" + ], + "group_operator": "sum", + "help": "Computed using sum of hours planned of all subtasks created from main task. Usually these hours are less or equal to the Planned Hours (of main task).", + "manual": false, + "readonly": true, + "required": false, + "searchable": false, + "sortable": false, + "store": false, + "string": "Subtasks" + }, + "user_id": { + "type": "many2one", + "change_default": false, + "company_dependent": false, + "context": {}, + "depends": [], + "domain": [], + "manual": false, + "readonly": false, + "relation": "res.users", + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Assigned to" + }, + "partner_id": { + "type": "many2one", + "change_default": false, + "company_dependent": false, + "context": {}, + "depends": [], + "domain": [], + "manual": false, + "readonly": false, + "relation": "res.partner", + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Customer" + }, + "manager_id": { + "type": "many2one", + "change_default": false, + "company_dependent": false, + "context": {}, + "depends": [ + "project_id.user_id" + ], + "domain": [], + "manual": false, + "readonly": true, + "related": [ + "project_id", + "user_id" + ], + "relation": "res.users", + "required": false, + "searchable": true, + "sortable": false, + "store": false, + "string": "Project Manager" + }, + "company_id": { + "type": "many2one", + "change_default": false, + "company_dependent": false, + "context": {}, + "depends": [], + "domain": [], + "manual": false, + "readonly": false, + "relation": "res.company", + "required": true, + "searchable": true, + "sortable": true, + "store": true, + "string": "Company" + }, + "color": { + "type": "integer", + "change_default": false, + "company_dependent": false, + "depends": [], + "group_operator": "sum", + "manual": false, + "readonly": false, + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Color Index" + }, + "user_email": { + "type": "char", + "change_default": false, + "company_dependent": false, + "depends": [ + "user_id.email" + ], + "manual": false, + "readonly": true, + "related": [ + "user_id", + "email" + ], + "required": false, + "searchable": true, + "sortable": false, + "store": false, + "string": "User Email", + "translate": false, + "trim": true + }, + "attachment_ids": { + "type": "one2many", + "change_default": false, + "company_dependent": false, + "context": {}, + "depends": [], + "domain": [], + "help": "Attachment that don't come from message.", + "manual": false, + "readonly": true, + "relation": "ir.attachment", + "required": false, + "searchable": false, + "sortable": false, + "store": false, + "string": "Main Attachments" + }, + "displayed_image_id": { + "type": "many2one", + "change_default": false, + "company_dependent": false, + "context": {}, + "depends": [], + "domain": "[('res_model', '=', 'project.task'), ('res_id', '=', id), ('mimetype', 'ilike', 'image')]", + "manual": false, + "readonly": false, + "relation": "ir.attachment", + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Cover Image" + }, + "legend_blocked": { + "type": "char", + "change_default": false, + "company_dependent": false, + "depends": [ + "stage_id.legend_blocked" + ], + "help": "Override the default value displayed for the blocked state for kanban selection, when the task or issue is in that stage.", + "manual": false, + "readonly": true, + "related": [ + "stage_id", + "legend_blocked" + ], + "required": false, + "searchable": true, + "sortable": false, + "store": false, + "string": "Kanban Blocked Explanation", + "translate": true, + "trim": true + }, + "legend_done": { + "type": "char", + "change_default": false, + "company_dependent": false, + "depends": [ + "stage_id.legend_done" + ], + "help": "Override the default value displayed for the done state for kanban selection, when the task or issue is in that stage.", + "manual": false, + "readonly": true, + "related": [ + "stage_id", + "legend_done" + ], + "required": false, + "searchable": true, + "sortable": false, + "store": false, + "string": "Kanban Valid Explanation", + "translate": true, + "trim": true + }, + "legend_normal": { + "type": "char", + "change_default": false, + "company_dependent": false, + "depends": [ + "stage_id.legend_normal" + ], + "help": "Override the default value displayed for the normal state for kanban selection, when the task or issue is in that stage.", + "manual": false, + "readonly": true, + "related": [ + "stage_id", + "legend_normal" + ], + "required": false, + "searchable": true, + "sortable": false, + "store": false, + "string": "Kanban Ongoing Explanation", + "translate": true, + "trim": true + }, + "parent_id": { + "type": "many2one", + "change_default": false, + "company_dependent": false, + "context": {}, + "depends": [], + "domain": [], + "manual": false, + "readonly": false, + "relation": "project.task", + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Parent Task" + }, + "child_ids": { + "type": "one2many", + "change_default": false, + "company_dependent": false, + "context": { + "active_test": false + }, + "depends": [], + "domain": [], + "manual": false, + "readonly": false, + "relation": "project.task", + "relation_field": "parent_id", + "required": false, + "searchable": true, + "sortable": false, + "store": true, + "string": "Sub-tasks" + }, + "subtask_project_id": { + "type": "many2one", + "change_default": false, + "company_dependent": false, + "context": {}, + "depends": [ + "project_id.subtask_project_id" + ], + "domain": [], + "help": "Choosing a sub-tasks project will both enable sub-tasks and set their default project (possibly the project itself)", + "manual": false, + "readonly": true, + "related": [ + "project_id", + "subtask_project_id" + ], + "relation": "project.project", + "required": false, + "searchable": true, + "sortable": false, + "store": false, + "string": "Sub-task Project" + }, + "subtask_count": { + "type": "integer", + "change_default": false, + "company_dependent": false, + "depends": [ + "child_ids" + ], + "group_operator": "sum", + "manual": false, + "readonly": true, + "required": false, + "searchable": false, + "sortable": false, + "store": false, + "string": "Sub-task count" + }, + "email_from": { + "type": "char", + "change_default": false, + "company_dependent": false, + "depends": [], + "help": "These people will receive email.", + "manual": false, + "readonly": false, + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Email", + "translate": false, + "trim": true + }, + "email_cc": { + "type": "char", + "change_default": false, + "company_dependent": false, + "depends": [], + "help": "These email addresses will be added to the CC field of all inbound\n and outbound emails for this record before being sent. Separate multiple email addresses with a comma", + "manual": false, + "readonly": false, + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Watchers Emails", + "translate": false, + "trim": true + }, + "working_hours_open": { + "type": "float", + "change_default": false, + "company_dependent": false, + "depends": [ + "create_date", + "date_end", + "date_assign" + ], + "group_operator": "avg", + "manual": false, + "readonly": true, + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Working hours to assign" + }, + "working_hours_close": { + "type": "float", + "change_default": false, + "company_dependent": false, + "depends": [ + "create_date", + "date_end", + "date_assign" + ], + "group_operator": "avg", + "manual": false, + "readonly": true, + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Working hours to close" + }, + "working_days_open": { + "type": "float", + "change_default": false, + "company_dependent": false, + "depends": [ + "create_date", + "date_end", + "date_assign" + ], + "group_operator": "avg", + "manual": false, + "readonly": true, + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Working days to assign" + }, + "working_days_close": { + "type": "float", + "change_default": false, + "company_dependent": false, + "depends": [ + "create_date", + "date_end", + "date_assign" + ], + "group_operator": "avg", + "manual": false, + "readonly": true, + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Working days to close" + }, + "website_message_ids": { + "type": "one2many", + "change_default": false, + "company_dependent": false, + "context": {}, + "depends": [], + "domain": [ + [ + "model", + "=", + "project.task" + ], + [ + "message_type", + "in", + [ + "email", + "comment" + ] + ] + ], + "help": "Website communication history", + "manual": false, + "readonly": false, + "relation": "mail.message", + "relation_field": "res_id", + "required": false, + "searchable": true, + "sortable": false, + "store": true, + "string": "Website Messages" + }, + "analytic_account_active": { + "type": "boolean", + "change_default": false, + "company_dependent": false, + "depends": [ + "project_id.analytic_account_id.active" + ], + "help": "If the active field is set to False, it will allow you to hide the account without removing it.", + "manual": false, + "readonly": true, + "related": [ + "project_id", + "analytic_account_id", + "active" + ], + "required": false, + "searchable": true, + "sortable": false, + "store": false, + "string": "Analytic Account" + }, + "allow_timesheets": { + "type": "boolean", + "change_default": false, + "company_dependent": false, + "depends": [ + "project_id.allow_timesheets" + ], + "help": "Timesheets can be logged on this task.", + "manual": false, + "readonly": true, + "related": [ + "project_id", + "allow_timesheets" + ], + "required": false, + "searchable": true, + "sortable": false, + "store": false, + "string": "Allow timesheets" + }, + "remaining_hours": { + "type": "float", + "change_default": false, + "company_dependent": false, + "depends": [ + "effective_hours", + "subtask_effective_hours", + "planned_hours" + ], + "group_operator": "sum", + "help": "Total remaining time, can be re-estimated periodically by the assignee of the task.", + "manual": false, + "readonly": true, + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Remaining Hours" + }, + "effective_hours": { + "type": "float", + "change_default": false, + "company_dependent": false, + "depends": [ + "timesheet_ids.unit_amount" + ], + "group_operator": "sum", + "help": "Computed using the sum of the task work done.", + "manual": false, + "readonly": true, + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Hours Spent" + }, + "total_hours_spent": { + "type": "float", + "change_default": false, + "company_dependent": false, + "depends": [ + "effective_hours", + "subtask_effective_hours" + ], + "group_operator": "sum", + "help": "Computed as: Time Spent + Sub-tasks Hours.", + "manual": false, + "readonly": true, + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Total Hours" + }, + "progress": { + "type": "float", + "change_default": false, + "company_dependent": false, + "depends": [ + "effective_hours", + "subtask_effective_hours", + "planned_hours" + ], + "group_operator": "avg", + "help": "Display progress of current task.", + "manual": false, + "readonly": true, + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Progress" + }, + "subtask_effective_hours": { + "type": "float", + "change_default": false, + "company_dependent": false, + "depends": [ + "child_ids.effective_hours", + "child_ids.subtask_effective_hours" + ], + "group_operator": "sum", + "help": "Sum of actually spent hours on the subtask(s)", + "manual": false, + "readonly": true, + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Sub-tasks Hours Spent" + }, + "timesheet_ids": { + "type": "one2many", + "change_default": false, + "company_dependent": false, + "context": {}, + "depends": [], + "domain": [], + "manual": false, + "readonly": false, + "relation": "account.analytic.line", + "relation_field": "task_id", + "required": false, + "searchable": true, + "sortable": false, + "store": true, + "string": "Timesheets" + }, + "priority": { + "type": "selection", + "change_default": false, + "company_dependent": false, + "depends": [], + "manual": false, + "readonly": false, + "required": false, + "searchable": true, + "selection": [ + [ + "0", + "Low" + ], + [ + "1", + "Normal" + ], + [ + "2", + "High" + ], + [ + "3", + "Very High" + ] + ], + "sortable": true, + "store": true, + "string": "Priority" + }, + "code": { + "type": "char", + "change_default": false, + "company_dependent": false, + "depends": [], + "manual": false, + "readonly": false, + "required": true, + "searchable": true, + "sortable": true, + "store": true, + "string": "Task Number", + "translate": false, + "trim": true + }, + "dependency_task_ids": { + "type": "many2many", + "change_default": false, + "company_dependent": false, + "context": {}, + "depends": [], + "domain": [], + "manual": false, + "readonly": false, + "relation": "project.task", + "required": false, + "searchable": true, + "sortable": false, + "store": true, + "string": "Dependencies" + }, + "recursive_dependency_task_ids": { + "type": "many2many", + "change_default": false, + "company_dependent": false, + "context": {}, + "depends": [ + "dependency_task_ids" + ], + "domain": [], + "manual": false, + "readonly": true, + "relation": "project.task", + "required": false, + "searchable": false, + "sortable": false, + "store": false, + "string": "Recursive Dependencies" + }, + "depending_task_ids": { + "type": "many2many", + "change_default": false, + "company_dependent": false, + "context": {}, + "depends": [ + "dependency_task_ids" + ], + "domain": [], + "help": "Tasks that are dependent on this task.", + "manual": false, + "readonly": true, + "relation": "project.task", + "required": false, + "searchable": false, + "sortable": false, + "store": false, + "string": "Depending Tasks" + }, + "recursive_depending_task_ids": { + "type": "many2many", + "change_default": false, + "company_dependent": false, + "context": {}, + "depends": [ + "dependency_task_ids" + ], + "domain": [], + "help": "Tasks that are dependent on this task (recursive).", + "manual": false, + "readonly": true, + "relation": "project.task", + "required": false, + "searchable": false, + "sortable": false, + "store": false, + "string": "Recursive Depending Tasks" + }, + "milestone_id": { + "type": "many2one", + "change_default": false, + "company_dependent": false, + "context": {}, + "depends": [], + "domain": "[('project_id', '=', project_id)]", + "manual": false, + "readonly": false, + "relation": "project.milestone", + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Milestones" + }, + "use_milestones": { + "type": "boolean", + "change_default": false, + "company_dependent": false, + "depends": [ + "project_id.use_milestones" + ], + "help": "Does this project use milestones?", + "manual": false, + "readonly": true, + "related": [ + "project_id", + "use_milestones" + ], + "required": false, + "searchable": true, + "sortable": false, + "store": false, + "string": "Use Milestones" + }, + "show_time_control": { + "type": "selection", + "change_default": false, + "company_dependent": false, + "depends": [ + "project_id.allow_timesheets", + "timesheet_ids.employee_id", + "timesheet_ids.unit_amount" + ], + "help": "Indicate which time control button to show, if any.", + "manual": false, + "readonly": true, + "required": false, + "searchable": false, + "selection": [ + [ + "start", + "Start" + ], + [ + "stop", + "Stop" + ] + ], + "sortable": false, + "store": false, + "string": "Show Time Control" + }, + "sale_line_id": { + "type": "many2one", + "change_default": false, + "company_dependent": false, + "context": {}, + "depends": [], + "domain": "[('is_service', '=', True), ('order_partner_id', '=', partner_id), ('is_expense', '=', False), ('state', 'in', ['sale', 'done'])]", + "manual": false, + "readonly": false, + "relation": "sale.order.line", + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Sales Order Item" + }, + "sale_order_id": { + "type": "many2one", + "change_default": false, + "company_dependent": false, + "context": {}, + "depends": [ + "sale_line_id", + "project_id", + "billable_type" + ], + "domain": [], + "manual": false, + "readonly": true, + "relation": "sale.order", + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Sales Order" + }, + "billable_type": { + "type": "selection", + "change_default": false, + "company_dependent": false, + "depends": [ + "project_id.billable_type", + "sale_line_id" + ], + "manual": false, + "readonly": true, + "required": false, + "searchable": true, + "selection": [ + [ + "task_rate", + "At Task Rate" + ], + [ + "employee_rate", + "At Employee Rate" + ], + [ + "no", + "No Billable" + ] + ], + "sortable": true, + "store": true, + "string": "Billable Type" + }, + "is_project_map_empty": { + "type": "boolean", + "change_default": false, + "company_dependent": false, + "depends": [ + "project_id.sale_line_employee_ids" + ], + "manual": false, + "readonly": true, + "required": false, + "searchable": false, + "sortable": false, + "store": false, + "string": "Is Project map empty" + }, + "activity_ids": { + "type": "one2many", + "change_default": false, + "company_dependent": false, + "context": {}, + "depends": [], + "domain": [ + [ + "res_model", + "=", + "project.task" + ] + ], + "groups": "base.group_user", + "manual": false, + "readonly": false, + "relation": "mail.activity", + "relation_field": "res_id", + "required": false, + "searchable": true, + "sortable": false, + "store": true, + "string": "Activities" + }, + "activity_state": { + "type": "selection", + "change_default": false, + "company_dependent": false, + "depends": [ + "activity_ids.state" + ], + "groups": "base.group_user", + "help": "Status based on activities\nOverdue: Due date is already passed\nToday: Activity date is today\nPlanned: Future activities.", + "manual": false, + "readonly": true, + "required": false, + "searchable": false, + "selection": [ + [ + "overdue", + "Overdue" + ], + [ + "today", + "Today" + ], + [ + "planned", + "Planned" + ] + ], + "sortable": false, + "store": false, + "string": "Activity State" + }, + "activity_user_id": { + "type": "many2one", + "change_default": false, + "company_dependent": false, + "context": {}, + "depends": [ + "activity_ids.user_id" + ], + "domain": [], + "groups": "base.group_user", + "manual": false, + "readonly": false, + "related": [ + "activity_ids", + "user_id" + ], + "relation": "res.users", + "required": false, + "searchable": true, + "sortable": false, + "store": false, + "string": "Responsible User" + }, + "activity_type_id": { + "type": "many2one", + "change_default": false, + "company_dependent": false, + "context": {}, + "depends": [ + "activity_ids.activity_type_id" + ], + "domain": "['|', ('res_model_id', '=', False), ('res_model_id', '=', res_model_id)]", + "groups": "base.group_user", + "manual": false, + "readonly": false, + "related": [ + "activity_ids", + "activity_type_id" + ], + "relation": "mail.activity.type", + "required": false, + "searchable": true, + "sortable": false, + "store": false, + "string": "Next Activity Type" + }, + "activity_date_deadline": { + "type": "date", + "change_default": false, + "company_dependent": false, + "depends": [ + "activity_ids.date_deadline" + ], + "groups": "base.group_user", + "manual": false, + "readonly": true, + "required": false, + "searchable": true, + "sortable": false, + "store": false, + "string": "Next Activity Deadline" + }, + "activity_summary": { + "type": "char", + "change_default": false, + "company_dependent": false, + "depends": [ + "activity_ids.summary" + ], + "groups": "base.group_user", + "manual": false, + "readonly": false, + "related": [ + "activity_ids", + "summary" + ], + "required": false, + "searchable": true, + "sortable": false, + "store": false, + "string": "Next Activity Summary", + "translate": false, + "trim": true + }, + "activity_team_user_ids": { + "type": "many2many", + "change_default": false, + "company_dependent": false, + "context": {}, + "depends": [ + "activity_ids" + ], + "domain": [], + "manual": false, + "readonly": true, + "relation": "res.users", + "required": false, + "searchable": true, + "sortable": false, + "store": false, + "string": "test field" + }, + "message_is_follower": { + "type": "boolean", + "change_default": false, + "company_dependent": false, + "depends": [ + "message_follower_ids" + ], + "manual": false, + "readonly": true, + "required": false, + "searchable": true, + "sortable": false, + "store": false, + "string": "Is Follower" + }, + "message_follower_ids": { + "type": "one2many", + "change_default": false, + "company_dependent": false, + "context": {}, + "depends": [], + "domain": [ + [ + "res_model", + "=", + "project.task" + ] + ], + "manual": false, + "readonly": false, + "relation": "mail.followers", + "relation_field": "res_id", + "required": false, + "searchable": true, + "sortable": false, + "store": true, + "string": "Followers" + }, + "message_partner_ids": { + "type": "many2many", + "change_default": false, + "company_dependent": false, + "context": {}, + "depends": [ + "message_follower_ids" + ], + "domain": [], + "manual": false, + "readonly": true, + "relation": "res.partner", + "required": false, + "searchable": true, + "sortable": false, + "store": false, + "string": "Followers (Partners)" + }, + "message_channel_ids": { + "type": "many2many", + "change_default": false, + "company_dependent": false, + "context": {}, + "depends": [ + "message_follower_ids" + ], + "domain": [], + "manual": false, + "readonly": true, + "relation": "mail.channel", + "required": false, + "searchable": true, + "sortable": false, + "store": false, + "string": "Followers (Channels)" + }, + "message_ids": { + "type": "one2many", + "change_default": false, + "company_dependent": false, + "context": {}, + "depends": [], + "domain": [ + [ + "model", + "=", + "project.task" + ] + ], + "manual": false, + "readonly": false, + "relation": "mail.message", + "relation_field": "res_id", + "required": false, + "searchable": true, + "sortable": false, + "store": true, + "string": "Messages" + }, + "message_unread": { + "type": "boolean", + "change_default": false, + "company_dependent": false, + "depends": [], + "help": "If checked new messages require your attention.", + "manual": false, + "readonly": true, + "required": false, + "searchable": false, + "sortable": false, + "store": false, + "string": "Unread Messages" + }, + "message_unread_counter": { + "type": "integer", + "change_default": false, + "company_dependent": false, + "depends": [], + "group_operator": "sum", + "help": "Number of unread messages", + "manual": false, + "readonly": true, + "required": false, + "searchable": false, + "sortable": false, + "store": false, + "string": "Unread Messages Counter" + }, + "message_needaction": { + "type": "boolean", + "change_default": false, + "company_dependent": false, + "depends": [], + "help": "If checked, new messages require your attention.", + "manual": false, + "readonly": true, + "required": false, + "searchable": true, + "sortable": false, + "store": false, + "string": "Action Needed" + }, + "message_needaction_counter": { + "type": "integer", + "change_default": false, + "company_dependent": false, + "depends": [], + "group_operator": "sum", + "help": "Number of messages which requires an action", + "manual": false, + "readonly": true, + "required": false, + "searchable": false, + "sortable": false, + "store": false, + "string": "Number of Actions" + }, + "message_has_error": { + "type": "boolean", + "change_default": false, + "company_dependent": false, + "depends": [], + "help": "If checked, some messages have a delivery error.", + "manual": false, + "readonly": true, + "required": false, + "searchable": true, + "sortable": false, + "store": false, + "string": "Message Delivery error" + }, + "message_has_error_counter": { + "type": "integer", + "change_default": false, + "company_dependent": false, + "depends": [], + "group_operator": "sum", + "help": "Number of messages with delivery error", + "manual": false, + "readonly": true, + "required": false, + "searchable": false, + "sortable": false, + "store": false, + "string": "Number of error" + }, + "message_attachment_count": { + "type": "integer", + "change_default": false, + "company_dependent": false, + "depends": [], + "group_operator": "sum", + "manual": false, + "readonly": true, + "required": false, + "searchable": false, + "sortable": false, + "store": false, + "string": "Attachment Count" + }, + "message_main_attachment_id": { + "type": "many2one", + "change_default": false, + "company_dependent": false, + "context": {}, + "depends": [], + "domain": [], + "manual": false, + "readonly": false, + "relation": "ir.attachment", + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Main Attachment" + }, + "failed_message_ids": { + "type": "one2many", + "change_default": false, + "company_dependent": false, + "context": {}, + "depends": [], + "domain": [ + [ + "model", + "=", + "project.task" + ], + [ + "mail_tracking_needs_action", + "=", + true + ], + [ + "mail_tracking_ids.state", + "in", + [ + "error", + "bounced", + "spam", + "soft-bounced", + "rejected" + ] + ] + ], + "manual": false, + "readonly": false, + "relation": "mail.message", + "relation_field": "res_id", + "required": false, + "searchable": true, + "sortable": false, + "store": true, + "string": "Failed Messages" + }, + "rating_ids": { + "type": "one2many", + "change_default": false, + "company_dependent": false, + "context": {}, + "depends": [], + "domain": [ + [ + "res_model", + "=", + "project.task" + ] + ], + "manual": false, + "readonly": false, + "relation": "rating.rating", + "relation_field": "res_id", + "required": false, + "searchable": true, + "sortable": false, + "store": true, + "string": "Rating" + }, + "rating_last_value": { + "type": "float", + "change_default": false, + "company_dependent": false, + "depends": [ + "rating_ids.rating" + ], + "group_operator": "sum", + "manual": false, + "readonly": true, + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Rating Last Value" + }, + "rating_last_feedback": { + "type": "text", + "change_default": false, + "company_dependent": false, + "depends": [ + "rating_ids.feedback" + ], + "help": "Reason of the rating", + "manual": false, + "readonly": false, + "related": [ + "rating_ids", + "feedback" + ], + "required": false, + "searchable": true, + "sortable": false, + "store": false, + "string": "Rating Last Feedback", + "translate": false + }, + "rating_last_image": { + "type": "binary", + "attachment": false, + "change_default": false, + "company_dependent": false, + "depends": [ + "rating_ids.rating_image" + ], + "manual": false, + "readonly": false, + "related": [ + "rating_ids", + "rating_image" + ], + "required": false, + "searchable": false, + "sortable": false, + "store": false, + "string": "Rating Last Image" + }, + "rating_count": { + "type": "integer", + "change_default": false, + "company_dependent": false, + "depends": [ + "rating_ids" + ], + "group_operator": "sum", + "manual": false, + "readonly": true, + "required": false, + "searchable": false, + "sortable": false, + "store": false, + "string": "Rating count" + }, + "access_url": { + "type": "char", + "change_default": false, + "company_dependent": false, + "depends": [], + "help": "Customer Portal URL", + "manual": false, + "readonly": true, + "required": false, + "searchable": false, + "sortable": false, + "store": false, + "string": "Portal Access URL", + "translate": false, + "trim": true + }, + "access_token": { + "type": "char", + "change_default": false, + "company_dependent": false, + "depends": [], + "manual": false, + "readonly": false, + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Security Token", + "translate": false, + "trim": true + }, + "access_warning": { + "type": "text", + "change_default": false, + "company_dependent": false, + "depends": [], + "manual": false, + "readonly": true, + "required": false, + "searchable": false, + "sortable": false, + "store": false, + "string": "Access warning", + "translate": false + }, + "id": { + "type": "integer", + "change_default": false, + "company_dependent": false, + "depends": [], + "manual": false, + "readonly": true, + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "ID" + }, + "display_name": { + "type": "char", + "change_default": false, + "company_dependent": false, + "depends": [ + "name" + ], + "manual": false, + "readonly": true, + "required": false, + "searchable": false, + "sortable": false, + "store": false, + "string": "Display Name", + "translate": false, + "trim": true + }, + "create_uid": { + "type": "many2one", + "change_default": false, + "company_dependent": false, + "context": {}, + "depends": [], + "domain": [], + "manual": false, + "readonly": true, + "relation": "res.users", + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Created by" + }, + "write_uid": { + "type": "many2one", + "change_default": false, + "company_dependent": false, + "context": {}, + "depends": [], + "domain": [], + "manual": false, + "readonly": true, + "relation": "res.users", + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Last Updated by" + }, + "__last_update": { + "type": "datetime", + "change_default": false, + "company_dependent": false, + "depends": [ + "create_date", + "write_date" + ], + "manual": false, + "readonly": true, + "required": false, + "searchable": false, + "sortable": false, + "store": false, + "string": "Last Modified on" + }, + "x_CBAO_windows_maj_ID": { + "type": "char", + "change_default": false, + "company_dependent": false, + "depends": [], + "manual": true, + "readonly": false, + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "ID Mise à jour Windows", + "translate": false, + "trim": true + }, + "x_CBAO_version_signalement": { + "type": "char", + "change_default": false, + "company_dependent": false, + "depends": [], + "manual": true, + "readonly": false, + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Version de signalement", + "translate": false, + "trim": true + }, + "x_CBAO_version_correction": { + "type": "char", + "change_default": false, + "company_dependent": false, + "depends": [], + "manual": true, + "readonly": false, + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Version de correction", + "translate": false, + "trim": true + }, + "x_CBAO_DateCorrection": { + "type": "date", + "change_default": false, + "company_dependent": false, + "depends": [], + "help": "Date de publication du ticket.", + "manual": true, + "readonly": false, + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Date de correction" + }, + "x_CBAO_Scoring_Facilite": { + "type": "integer", + "change_default": false, + "company_dependent": false, + "depends": [], + "group_operator": "sum", + "help": "0 = Plus d'une semaine, 1 = Plus de 3 jours, 2 = Plus d'un jour, 3 = Dans la journée", + "manual": true, + "readonly": false, + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Facilité du ticket" + }, + "x_CBAO_Scoring_Importance": { + "type": "integer", + "change_default": false, + "company_dependent": false, + "depends": [], + "group_operator": "sum", + "help": "0 = orthographe, 1 = confort, 2 = fonctionnalité manquante, 3 = norme, 4 Bloquant", + "manual": true, + "readonly": false, + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Importance du ticket" + }, + "x_CBAO_Scoring_Urgence": { + "type": "integer", + "change_default": false, + "company_dependent": false, + "depends": [], + "group_operator": "sum", + "help": "0 = Semestre, 1 = Trimestre, 2 = Mois, 3 = Immédiat", + "manual": true, + "readonly": false, + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Urgence du ticket" + }, + "x_CBAO_Scoring_Incidence": { + "type": "integer", + "change_default": false, + "company_dependent": false, + "depends": [], + "group_operator": "sum", + "help": "0 = Un client, 1 = Quelques clients, 2 = Un groupe de clients, 3 = Tous les clients", + "manual": true, + "readonly": false, + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Incidence du ticket" + }, + "x_CBAO_Scoring_Resultat": { + "type": "integer", + "change_default": false, + "company_dependent": false, + "depends": [ + "x_CBAO_Scoring_Facilite", + "x_CBAO_Scoring_Importance", + "x_CBAO_Scoring_Incidence", + "x_CBAO_Scoring_Urgence" + ], + "group_operator": "sum", + "help": "Score du ticket", + "manual": true, + "readonly": true, + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Score du ticket" + }, + "x_CBAO_InformationsSup": { + "type": "text", + "change_default": false, + "company_dependent": false, + "depends": [], + "manual": true, + "readonly": false, + "required": false, + "searchable": true, + "sortable": true, + "store": true, + "string": "Type d'abonnement // Site web BRG-LAB", + "translate": false + }, + "x_CBAO_Etiquettes_EntrepriseClient": { + "type": "many2many", + "change_default": false, + "company_dependent": false, + "context": {}, + "depends": [], + "domain": [], + "manual": true, + "readonly": false, + "relation": "res.partner", + "required": false, + "searchable": true, + "sortable": false, + "store": true, + "string": "Etiquettes de l'entreprise" + }, + "x_CBAO_category_id": { + "type": "many2many", + "change_default": false, + "company_dependent": false, + "context": {}, + "depends": [ + "partner_id.category_id" + ], + "domain": [], + "manual": true, + "readonly": true, + "related": [ + "partner_id", + "category_id" + ], + "relation": "res.partner.category", + "required": false, + "searchable": true, + "sortable": false, + "store": true, + "string": "Etiquettes du client" + } +} \ No newline at end of file diff --git a/exported_tickets/ticket_10990_bug/attachments/144161_image001.png b/exported_tickets/ticket_10990_bug/attachments/144161_image001.png new file mode 100644 index 0000000..121eaf8 Binary files /dev/null and b/exported_tickets/ticket_10990_bug/attachments/144161_image001.png differ diff --git a/exported_tickets/ticket_10990_bug/attachments_info.json b/exported_tickets/ticket_10990_bug/attachments_info.json new file mode 100644 index 0000000..4b90fb1 --- /dev/null +++ b/exported_tickets/ticket_10990_bug/attachments_info.json @@ -0,0 +1,12 @@ +[ + { + "id": 144161, + "name": "image001.png", + "mimetype": "image/png", + "create_date": "2025-03-06 08:11:49", + "description": "image001.png", + "res_name": "[T11011] bug", + "type": "binary", + "file_path": "attachments/144161_image001.png" + } +] \ No newline at end of file diff --git a/exported_tickets/ticket_10990_bug/contact_info.json b/exported_tickets/ticket_10990_bug/contact_info.json new file mode 100644 index 0000000..0603e59 --- /dev/null +++ b/exported_tickets/ticket_10990_bug/contact_info.json @@ -0,0 +1,15 @@ +{ + "id": 5144, + "name": "Dominique CARVAL", + "email": "dominique.carval@morbihan.fr", + "phone": "02 97 54 71 14", + "mobile": "06 98 32 88 30", + "street": "DSN-HOTEL DU DEPARTEMENT", + "city": "VANNES", + "zip": "56000", + "country_id": [ + 75, + "France" + ], + "comment": "" +} \ No newline at end of file diff --git a/exported_tickets/ticket_10990_bug/followers.json b/exported_tickets/ticket_10990_bug/followers.json new file mode 100644 index 0000000..ff71d9e --- /dev/null +++ b/exported_tickets/ticket_10990_bug/followers.json @@ -0,0 +1,110 @@ +[ + { + "id": 89070, + "partner_id": [ + 28961, + "Fabien LAFAY" + ], + "subtype_ids": [ + 1, + 20 + ], + "partner_details": { + "id": 28961, + "name": "Fabien LAFAY", + "email": "fabien@mail.cbao.fr", + "phone": false, + "function": false, + "company_id": [ + 1, + "CBAO S.A.R.L." + ] + }, + "subtype_details": [ + { + "id": 1, + "name": "Discussions", + "description": false, + "default": true + }, + { + "id": 20, + "name": "Task Rating", + "description": "Ratings", + "default": true + } + ] + }, + { + "id": 89073, + "partner_id": [ + 32165, + "Romuald GRUSON" + ], + "subtype_ids": [ + 1, + 20 + ], + "partner_details": { + "id": 32165, + "name": "Romuald GRUSON", + "email": "romuald@mail.cbao.fr", + "phone": false, + "function": false, + "company_id": [ + 1, + "CBAO S.A.R.L." + ] + }, + "subtype_details": [ + { + "id": 1, + "name": "Discussions", + "description": false, + "default": true + }, + { + "id": 20, + "name": "Task Rating", + "description": "Ratings", + "default": true + } + ] + }, + { + "id": 89123, + "partner_id": [ + 5144, + "CONSEIL DEPARTEMENTAL DU MORBIHAN (56), Dominique CARVAL" + ], + "subtype_ids": [ + 1, + 20 + ], + "partner_details": { + "id": 5144, + "name": "Dominique CARVAL", + "email": "dominique.carval@morbihan.fr", + "phone": "02 97 54 71 14", + "function": "Technicien de laboratoire", + "company_id": [ + 1, + "CBAO S.A.R.L." + ] + }, + "subtype_details": [ + { + "id": 1, + "name": "Discussions", + "description": false, + "default": true + }, + { + "id": 20, + "name": "Task Rating", + "description": "Ratings", + "default": true + } + ] + } +] \ No newline at end of file diff --git a/exported_tickets/ticket_10990_bug/message_threads.json b/exported_tickets/ticket_10990_bug/message_threads.json new file mode 100644 index 0000000..c773b87 --- /dev/null +++ b/exported_tickets/ticket_10990_bug/message_threads.json @@ -0,0 +1,156 @@ +{ + "226816": { + "main_message": null, + "replies": [ + { + "id": 226934, + "body": "", + "date": "2025-03-06 14:53:15", + "author_id": [ + 32165, + "Romuald GRUSON" + ], + "email_from": "\"Romuald GRUSON\" ", + "subject": false, + "parent_id": [ + 226816, + "[T11011] bug" + ], + "message_type": "notification", + "subtype_id": [ + 19, + "Stage Changed" + ], + "attachment_ids": [] + }, + { + "id": 226932, + "body": "

Bonjour,

Les bases de données ont été redémarrées. Si l'incident persiste, n'hésitez pas à nous contacter.

Je reste à votre entière disposition pour toute information complémentaire.

Cordialement,

---

Support technique
 

\n

\"CBAO

\n

Afin d'assurer une meilleure traçabilité et vous garantir une prise en charge optimale, nous vous invitons à envoyer vos demandes d'assistance technique à support@cbao.fr
L'objectif du Support Technique est de vous aider : si vous rencontrez une difficulté, ou pour nous soumettre une ou des suggestions d'amélioration de nos logiciels ou de nos méthodes. Notre service est ouvert du lundi au vendredi de 9h à 12h et de 14h à 18h. Dès réception, un technicien prendra en charge votre demande et au besoin vous rappellera.

Confidentialité : Ce courriel contient des informations confidentielles exclusivement réservées au destinataire mentionné. Si vous deviez recevoir cet e-mail par erreur, merci d’en avertir immédiatement l’expéditeur et de le supprimer de votre système informatique. Au cas où vous ne seriez pas destinataire de ce message, veuillez noter que sa divulgation, sa copie ou tout acte en rapport avec la communication du contenu des informations est strictement interdit.

", + "date": "2025-03-06 14:53:14", + "author_id": [ + 32165, + "Romuald GRUSON" + ], + "email_from": "support@cbao.fr", + "subject": "Re: [T11011] - bug", + "parent_id": [ + 226816, + "[T11011] bug" + ], + "message_type": "comment", + "subtype_id": [ + 1, + "Discussions" + ], + "attachment_ids": [] + }, + { + "id": 226830, + "body": "", + "date": "2025-03-06 08:33:44", + "author_id": [ + 32165, + "Romuald GRUSON" + ], + "email_from": "\"Romuald GRUSON\" ", + "subject": false, + "parent_id": [ + 226816, + "[T11011] bug" + ], + "message_type": "notification", + "subtype_id": [ + 16, + "Task Created" + ], + "attachment_ids": [] + }, + { + "id": 226817, + "body": "

\r\n\r\n

\r\n
\r\n

Bonjour,

\r\n

 

\r\n

Gros ralentissement ce matin !!!! ca tourne en rond….

\r\n

 

\r\n

Bonne réception

\r\n

 

\r\n

\"cid:image004.png@01D8D425.0F95E5B0\"

\r\n

 

\r\n

Dominique CARVAL

\r\n

 

\r\n

Technicien de laboratoire

\r\n

Direction des Infrastructures et des mobilités (DIM)

\r\n

Service d’Appui aux Politiques d’Aménagement / Pôle Laboratoire Routier (SAPA/PLR)

\r\n

115, rue du commerce – 56000 VANNES

\r\n

 

\r\n

tél : 02 97 54 71 14 - mobile : 06 98 32 88 30 –\r\ndominique.carval@morbihan.fr\r\n 

\r\n

 

\r\n

 

\r\n

 

\r\n
\r\n
\r\n
Droit à la déconnexion : Si vous recevez ce message en dehors de vos heures de travail ou pendant vos congés, vous n’êtes pas tenu de répondre immédiatement, sauf en cas d’urgence exceptionnelle.\r\n
\r\nCe message électronique et tous les fichiers attachés qu'il contient peuvent être confidentiels, contenir des données personnelles ou sensibles et être soumis au secret professionnel. Il est destiné exclusivement à l'usage du ou des destinataires. Si vous recevez\r\n ce message par erreur et/ou si vous n'êtes pas le destinataire désigné de ce message, le département du Morbihan vous remercie d'avertir immédiatement l'expéditeur et de le détruire ainsi que toutes les pièces jointes s'y rattachant. La publication, l'usage,\r\n la distribution, l'impression ou la copie non autorisée de ce message et des attachements qu'il contient sont strictement interdits. Tout message électronique est susceptible d'altération.
\r\n\r\n", + "date": "2025-03-06 08:07:49", + "author_id": [ + 5144, + "CONSEIL DEPARTEMENTAL DU MORBIHAN (56), Dominique CARVAL" + ], + "email_from": "CARVAL Dominique ", + "subject": "bug", + "parent_id": [ + 226816, + "[T11011] bug" + ], + "message_type": "email", + "subtype_id": [ + 1, + "Discussions" + ], + "attachment_ids": [ + 144161 + ] + } + ] + }, + "226933": { + "main_message": { + "id": 226933, + "body": "", + "date": "2025-03-06 14:53:15", + "author_id": [ + 32165, + "Romuald GRUSON" + ], + "email_from": "\"Romuald GRUSON\" ", + "subject": false, + "parent_id": false, + "message_type": "notification", + "subtype_id": [ + 2, + "Note" + ], + "attachment_ids": [] + }, + "replies": [] + }, + "226828": { + "main_message": { + "id": 226828, + "body": "", + "date": "2025-03-06 08:33:37", + "author_id": [ + 32165, + "Romuald GRUSON" + ], + "email_from": "\"Romuald GRUSON\" ", + "subject": false, + "parent_id": false, + "message_type": "notification", + "subtype_id": [ + 2, + "Note" + ], + "attachment_ids": [] + }, + "replies": [] + }, + "226818": { + "main_message": { + "id": 226818, + "body": "", + "date": "2025-03-06 08:11:51", + "author_id": [ + 2, + "OdooBot" + ], + "email_from": "\"OdooBot\" ", + "subject": false, + "parent_id": false, + "message_type": "notification", + "subtype_id": [ + 2, + "Note" + ], + "attachment_ids": [] + }, + "replies": [] + } +} \ No newline at end of file diff --git a/exported_tickets/ticket_10990_bug/messages.json b/exported_tickets/ticket_10990_bug/messages.json new file mode 100644 index 0000000..e17a877 --- /dev/null +++ b/exported_tickets/ticket_10990_bug/messages.json @@ -0,0 +1,160 @@ +[ + { + "id": 226934, + "body": "", + "date": "2025-03-06 14:53:15", + "author_id": [ + 32165, + "Romuald GRUSON" + ], + "email_from": "\"Romuald GRUSON\" ", + "subject": false, + "parent_id": [ + 226816, + "[T11011] bug" + ], + "message_type": "notification", + "subtype_id": [ + 19, + "Stage Changed" + ], + "attachment_ids": [] + }, + { + "id": 226933, + "body": "", + "date": "2025-03-06 14:53:15", + "author_id": [ + 32165, + "Romuald GRUSON" + ], + "email_from": "\"Romuald GRUSON\" ", + "subject": false, + "parent_id": false, + "message_type": "notification", + "subtype_id": [ + 2, + "Note" + ], + "attachment_ids": [] + }, + { + "id": 226932, + "body": "

Bonjour,

Les bases de données ont été redémarrées. Si l'incident persiste, n'hésitez pas à nous contacter.

Je reste à votre entière disposition pour toute information complémentaire.

Cordialement,

---

Support technique
 

\n

\"CBAO

\n

Afin d'assurer une meilleure traçabilité et vous garantir une prise en charge optimale, nous vous invitons à envoyer vos demandes d'assistance technique à support@cbao.fr
L'objectif du Support Technique est de vous aider : si vous rencontrez une difficulté, ou pour nous soumettre une ou des suggestions d'amélioration de nos logiciels ou de nos méthodes. Notre service est ouvert du lundi au vendredi de 9h à 12h et de 14h à 18h. Dès réception, un technicien prendra en charge votre demande et au besoin vous rappellera.

Confidentialité : Ce courriel contient des informations confidentielles exclusivement réservées au destinataire mentionné. Si vous deviez recevoir cet e-mail par erreur, merci d’en avertir immédiatement l’expéditeur et de le supprimer de votre système informatique. Au cas où vous ne seriez pas destinataire de ce message, veuillez noter que sa divulgation, sa copie ou tout acte en rapport avec la communication du contenu des informations est strictement interdit.

", + "date": "2025-03-06 14:53:14", + "author_id": [ + 32165, + "Romuald GRUSON" + ], + "email_from": "support@cbao.fr", + "subject": "Re: [T11011] - bug", + "parent_id": [ + 226816, + "[T11011] bug" + ], + "message_type": "comment", + "subtype_id": [ + 1, + "Discussions" + ], + "attachment_ids": [] + }, + { + "id": 226830, + "body": "", + "date": "2025-03-06 08:33:44", + "author_id": [ + 32165, + "Romuald GRUSON" + ], + "email_from": "\"Romuald GRUSON\" ", + "subject": false, + "parent_id": [ + 226816, + "[T11011] bug" + ], + "message_type": "notification", + "subtype_id": [ + 16, + "Task Created" + ], + "attachment_ids": [] + }, + { + "id": 226828, + "body": "", + "date": "2025-03-06 08:33:37", + "author_id": [ + 32165, + "Romuald GRUSON" + ], + "email_from": "\"Romuald GRUSON\" ", + "subject": false, + "parent_id": false, + "message_type": "notification", + "subtype_id": [ + 2, + "Note" + ], + "attachment_ids": [] + }, + { + "id": 226818, + "body": "", + "date": "2025-03-06 08:11:51", + "author_id": [ + 2, + "OdooBot" + ], + "email_from": "\"OdooBot\" ", + "subject": false, + "parent_id": false, + "message_type": "notification", + "subtype_id": [ + 2, + "Note" + ], + "attachment_ids": [] + }, + { + "id": 226817, + "body": "

\r\n\r\n

\r\n
\r\n

Bonjour,

\r\n

 

\r\n

Gros ralentissement ce matin !!!! ca tourne en rond….

\r\n

 

\r\n

Bonne réception

\r\n

 

\r\n

\"cid:image004.png@01D8D425.0F95E5B0\"

\r\n

 

\r\n

Dominique CARVAL

\r\n

 

\r\n

Technicien de laboratoire

\r\n

Direction des Infrastructures et des mobilités (DIM)

\r\n

Service d’Appui aux Politiques d’Aménagement / Pôle Laboratoire Routier (SAPA/PLR)

\r\n

115, rue du commerce – 56000 VANNES

\r\n

 

\r\n

tél : 02 97 54 71 14 - mobile : 06 98 32 88 30 –\r\ndominique.carval@morbihan.fr\r\n 

\r\n

 

\r\n

 

\r\n

 

\r\n
\r\n
\r\n
Droit à la déconnexion : Si vous recevez ce message en dehors de vos heures de travail ou pendant vos congés, vous n’êtes pas tenu de répondre immédiatement, sauf en cas d’urgence exceptionnelle.\r\n
\r\nCe message électronique et tous les fichiers attachés qu'il contient peuvent être confidentiels, contenir des données personnelles ou sensibles et être soumis au secret professionnel. Il est destiné exclusivement à l'usage du ou des destinataires. Si vous recevez\r\n ce message par erreur et/ou si vous n'êtes pas le destinataire désigné de ce message, le département du Morbihan vous remercie d'avertir immédiatement l'expéditeur et de le détruire ainsi que toutes les pièces jointes s'y rattachant. La publication, l'usage,\r\n la distribution, l'impression ou la copie non autorisée de ce message et des attachements qu'il contient sont strictement interdits. Tout message électronique est susceptible d'altération.
\r\n\r\n", + "date": "2025-03-06 08:07:49", + "author_id": [ + 5144, + "CONSEIL DEPARTEMENTAL DU MORBIHAN (56), Dominique CARVAL" + ], + "email_from": "CARVAL Dominique ", + "subject": "bug", + "parent_id": [ + 226816, + "[T11011] bug" + ], + "message_type": "email", + "subtype_id": [ + 1, + "Discussions" + ], + "attachment_ids": [ + 144161 + ] + }, + { + "id": 226816, + "body": "", + "date": "2025-03-06 08:11:51", + "author_id": [ + 2, + "OdooBot" + ], + "email_from": "\"OdooBot\" ", + "subject": false, + "parent_id": false, + "message_type": "notification", + "subtype_id": [ + 16, + "Task Created" + ], + "attachment_ids": [] + } +] \ No newline at end of file diff --git a/exported_tickets/ticket_10990_bug/messages/message_226816_2025-03-06_08-11-51.json b/exported_tickets/ticket_10990_bug/messages/message_226816_2025-03-06_08-11-51.json new file mode 100644 index 0000000..1080b71 --- /dev/null +++ b/exported_tickets/ticket_10990_bug/messages/message_226816_2025-03-06_08-11-51.json @@ -0,0 +1,37 @@ +{ + "id": 226816, + "body": "", + "date": "2025-03-06 08:11:51", + "author_id": [ + 2, + "OdooBot" + ], + "email_from": "\"OdooBot\" ", + "subject": false, + "parent_id": false, + "message_type": "notification", + "subtype_id": [ + 16, + "Task Created" + ], + "attachment_ids": [], + "author_details": { + "id": 2, + "name": "OdooBot", + "email": "odoobot@example.com", + "phone": false, + "function": false, + "company_id": [ + 1, + "CBAO S.A.R.L." + ] + }, + "subtype_details": [ + { + "id": 16, + "name": "Task Created", + "description": "Task Created", + "default": false + } + ] +} \ No newline at end of file diff --git a/exported_tickets/ticket_10990_bug/messages/message_226817_2025-03-06_08-07-49.json b/exported_tickets/ticket_10990_bug/messages/message_226817_2025-03-06_08-07-49.json new file mode 100644 index 0000000..e6d1271 --- /dev/null +++ b/exported_tickets/ticket_10990_bug/messages/message_226817_2025-03-06_08-07-49.json @@ -0,0 +1,42 @@ +{ + "id": 226817, + "body": "

\r\n\r\n

\r\n
\r\n

Bonjour,

\r\n

 

\r\n

Gros ralentissement ce matin !!!! ca tourne en rond….

\r\n

 

\r\n

Bonne réception

\r\n

 

\r\n

\"cid:image004.png@01D8D425.0F95E5B0\"

\r\n

 

\r\n

Dominique CARVAL

\r\n

 

\r\n

Technicien de laboratoire

\r\n

Direction des Infrastructures et des mobilités (DIM)

\r\n

Service d’Appui aux Politiques d’Aménagement / Pôle Laboratoire Routier (SAPA/PLR)

\r\n

115, rue du commerce – 56000 VANNES

\r\n

 

\r\n

tél : 02 97 54 71 14 - mobile : 06 98 32 88 30 –\r\ndominique.carval@morbihan.fr\r\n 

\r\n

 

\r\n

 

\r\n

 

\r\n
\r\n
\r\n
Droit à la déconnexion : Si vous recevez ce message en dehors de vos heures de travail ou pendant vos congés, vous n’êtes pas tenu de répondre immédiatement, sauf en cas d’urgence exceptionnelle.\r\n
\r\nCe message électronique et tous les fichiers attachés qu'il contient peuvent être confidentiels, contenir des données personnelles ou sensibles et être soumis au secret professionnel. Il est destiné exclusivement à l'usage du ou des destinataires. Si vous recevez\r\n ce message par erreur et/ou si vous n'êtes pas le destinataire désigné de ce message, le département du Morbihan vous remercie d'avertir immédiatement l'expéditeur et de le détruire ainsi que toutes les pièces jointes s'y rattachant. La publication, l'usage,\r\n la distribution, l'impression ou la copie non autorisée de ce message et des attachements qu'il contient sont strictement interdits. Tout message électronique est susceptible d'altération.
\r\n\r\n", + "date": "2025-03-06 08:07:49", + "author_id": [ + 5144, + "CONSEIL DEPARTEMENTAL DU MORBIHAN (56), Dominique CARVAL" + ], + "email_from": "CARVAL Dominique ", + "subject": "bug", + "parent_id": [ + 226816, + "[T11011] bug" + ], + "message_type": "email", + "subtype_id": [ + 1, + "Discussions" + ], + "attachment_ids": [ + 144161 + ], + "author_details": { + "id": 5144, + "name": "Dominique CARVAL", + "email": "dominique.carval@morbihan.fr", + "phone": "02 97 54 71 14", + "function": "Technicien de laboratoire", + "company_id": [ + 1, + "CBAO S.A.R.L." + ] + }, + "subtype_details": [ + { + "id": 1, + "name": "Discussions", + "description": false, + "default": true + } + ] +} \ No newline at end of file diff --git a/exported_tickets/ticket_10990_bug/messages/message_226818_2025-03-06_08-11-51.json b/exported_tickets/ticket_10990_bug/messages/message_226818_2025-03-06_08-11-51.json new file mode 100644 index 0000000..97d14a4 --- /dev/null +++ b/exported_tickets/ticket_10990_bug/messages/message_226818_2025-03-06_08-11-51.json @@ -0,0 +1,37 @@ +{ + "id": 226818, + "body": "", + "date": "2025-03-06 08:11:51", + "author_id": [ + 2, + "OdooBot" + ], + "email_from": "\"OdooBot\" ", + "subject": false, + "parent_id": false, + "message_type": "notification", + "subtype_id": [ + 2, + "Note" + ], + "attachment_ids": [], + "author_details": { + "id": 2, + "name": "OdooBot", + "email": "odoobot@example.com", + "phone": false, + "function": false, + "company_id": [ + 1, + "CBAO S.A.R.L." + ] + }, + "subtype_details": [ + { + "id": 2, + "name": "Note", + "description": false, + "default": false + } + ] +} \ No newline at end of file diff --git a/exported_tickets/ticket_10990_bug/messages/message_226828_2025-03-06_08-33-37.json b/exported_tickets/ticket_10990_bug/messages/message_226828_2025-03-06_08-33-37.json new file mode 100644 index 0000000..0b8fd9f --- /dev/null +++ b/exported_tickets/ticket_10990_bug/messages/message_226828_2025-03-06_08-33-37.json @@ -0,0 +1,37 @@ +{ + "id": 226828, + "body": "", + "date": "2025-03-06 08:33:37", + "author_id": [ + 32165, + "Romuald GRUSON" + ], + "email_from": "\"Romuald GRUSON\" ", + "subject": false, + "parent_id": false, + "message_type": "notification", + "subtype_id": [ + 2, + "Note" + ], + "attachment_ids": [], + "author_details": { + "id": 32165, + "name": "Romuald GRUSON", + "email": "romuald@mail.cbao.fr", + "phone": false, + "function": false, + "company_id": [ + 1, + "CBAO S.A.R.L." + ] + }, + "subtype_details": [ + { + "id": 2, + "name": "Note", + "description": false, + "default": false + } + ] +} \ No newline at end of file diff --git a/exported_tickets/ticket_10990_bug/messages/message_226830_2025-03-06_08-33-44.json b/exported_tickets/ticket_10990_bug/messages/message_226830_2025-03-06_08-33-44.json new file mode 100644 index 0000000..9078f09 --- /dev/null +++ b/exported_tickets/ticket_10990_bug/messages/message_226830_2025-03-06_08-33-44.json @@ -0,0 +1,40 @@ +{ + "id": 226830, + "body": "", + "date": "2025-03-06 08:33:44", + "author_id": [ + 32165, + "Romuald GRUSON" + ], + "email_from": "\"Romuald GRUSON\" ", + "subject": false, + "parent_id": [ + 226816, + "[T11011] bug" + ], + "message_type": "notification", + "subtype_id": [ + 16, + "Task Created" + ], + "attachment_ids": [], + "author_details": { + "id": 32165, + "name": "Romuald GRUSON", + "email": "romuald@mail.cbao.fr", + "phone": false, + "function": false, + "company_id": [ + 1, + "CBAO S.A.R.L." + ] + }, + "subtype_details": [ + { + "id": 16, + "name": "Task Created", + "description": "Task Created", + "default": false + } + ] +} \ No newline at end of file diff --git a/exported_tickets/ticket_10990_bug/messages/message_226932_2025-03-06_14-53-14.json b/exported_tickets/ticket_10990_bug/messages/message_226932_2025-03-06_14-53-14.json new file mode 100644 index 0000000..42dacba --- /dev/null +++ b/exported_tickets/ticket_10990_bug/messages/message_226932_2025-03-06_14-53-14.json @@ -0,0 +1,40 @@ +{ + "id": 226932, + "body": "

Bonjour,

Les bases de données ont été redémarrées. Si l'incident persiste, n'hésitez pas à nous contacter.

Je reste à votre entière disposition pour toute information complémentaire.

Cordialement,

---

Support technique
 

\n

\"CBAO

\n

Afin d'assurer une meilleure traçabilité et vous garantir une prise en charge optimale, nous vous invitons à envoyer vos demandes d'assistance technique à support@cbao.fr
L'objectif du Support Technique est de vous aider : si vous rencontrez une difficulté, ou pour nous soumettre une ou des suggestions d'amélioration de nos logiciels ou de nos méthodes. Notre service est ouvert du lundi au vendredi de 9h à 12h et de 14h à 18h. Dès réception, un technicien prendra en charge votre demande et au besoin vous rappellera.

Confidentialité : Ce courriel contient des informations confidentielles exclusivement réservées au destinataire mentionné. Si vous deviez recevoir cet e-mail par erreur, merci d’en avertir immédiatement l’expéditeur et de le supprimer de votre système informatique. Au cas où vous ne seriez pas destinataire de ce message, veuillez noter que sa divulgation, sa copie ou tout acte en rapport avec la communication du contenu des informations est strictement interdit.

", + "date": "2025-03-06 14:53:14", + "author_id": [ + 32165, + "Romuald GRUSON" + ], + "email_from": "support@cbao.fr", + "subject": "Re: [T11011] - bug", + "parent_id": [ + 226816, + "[T11011] bug" + ], + "message_type": "comment", + "subtype_id": [ + 1, + "Discussions" + ], + "attachment_ids": [], + "author_details": { + "id": 32165, + "name": "Romuald GRUSON", + "email": "romuald@mail.cbao.fr", + "phone": false, + "function": false, + "company_id": [ + 1, + "CBAO S.A.R.L." + ] + }, + "subtype_details": [ + { + "id": 1, + "name": "Discussions", + "description": false, + "default": true + } + ] +} \ No newline at end of file diff --git a/exported_tickets/ticket_10990_bug/messages/message_226933_2025-03-06_14-53-15.json b/exported_tickets/ticket_10990_bug/messages/message_226933_2025-03-06_14-53-15.json new file mode 100644 index 0000000..ea6ba73 --- /dev/null +++ b/exported_tickets/ticket_10990_bug/messages/message_226933_2025-03-06_14-53-15.json @@ -0,0 +1,37 @@ +{ + "id": 226933, + "body": "", + "date": "2025-03-06 14:53:15", + "author_id": [ + 32165, + "Romuald GRUSON" + ], + "email_from": "\"Romuald GRUSON\" ", + "subject": false, + "parent_id": false, + "message_type": "notification", + "subtype_id": [ + 2, + "Note" + ], + "attachment_ids": [], + "author_details": { + "id": 32165, + "name": "Romuald GRUSON", + "email": "romuald@mail.cbao.fr", + "phone": false, + "function": false, + "company_id": [ + 1, + "CBAO S.A.R.L." + ] + }, + "subtype_details": [ + { + "id": 2, + "name": "Note", + "description": false, + "default": false + } + ] +} \ No newline at end of file diff --git a/exported_tickets/ticket_10990_bug/messages/message_226934_2025-03-06_14-53-15.json b/exported_tickets/ticket_10990_bug/messages/message_226934_2025-03-06_14-53-15.json new file mode 100644 index 0000000..a910bb9 --- /dev/null +++ b/exported_tickets/ticket_10990_bug/messages/message_226934_2025-03-06_14-53-15.json @@ -0,0 +1,40 @@ +{ + "id": 226934, + "body": "", + "date": "2025-03-06 14:53:15", + "author_id": [ + 32165, + "Romuald GRUSON" + ], + "email_from": "\"Romuald GRUSON\" ", + "subject": false, + "parent_id": [ + 226816, + "[T11011] bug" + ], + "message_type": "notification", + "subtype_id": [ + 19, + "Stage Changed" + ], + "attachment_ids": [], + "author_details": { + "id": 32165, + "name": "Romuald GRUSON", + "email": "romuald@mail.cbao.fr", + "phone": false, + "function": false, + "company_id": [ + 1, + "CBAO S.A.R.L." + ] + }, + "subtype_details": [ + { + "id": 19, + "name": "Stage Changed", + "description": "Stage changed", + "default": false + } + ] +} \ No newline at end of file diff --git a/exported_tickets/ticket_10990_bug/ticket_info.json b/exported_tickets/ticket_10990_bug/ticket_info.json new file mode 100644 index 0000000..45b2a7c --- /dev/null +++ b/exported_tickets/ticket_10990_bug/ticket_info.json @@ -0,0 +1,156 @@ +{ + "id": 10990, + "active": true, + "name": "bug", + "description": "


", + "sequence": 10, + "stage_id": [ + 32, + "En attente d'infos / retours" + ], + "kanban_state": "normal", + "create_date": "2025-03-06 08:11:49", + "write_date": "2025-03-06 14:53:15", + "date_start": "2025-03-06 08:11:50", + "date_end": false, + "date_assign": "2025-03-06 08:33:37", + "date_deadline": "2025-03-21", + "date_last_stage_update": "2025-03-06 14:53:15", + "project_id": [ + 3, + "Demandes" + ], + "notes": false, + "planned_hours": 0.0, + "user_id": [ + 32, + "Romuald GRUSON" + ], + "partner_id": [ + 5144, + "CONSEIL DEPARTEMENTAL DU MORBIHAN (56), Dominique CARVAL" + ], + "company_id": [ + 1, + "CBAO S.A.R.L." + ], + "color": 0, + "displayed_image_id": false, + "parent_id": false, + "child_ids": [], + "email_from": "CARVAL Dominique ", + "email_cc": "", + "working_hours_open": 0.0, + "working_hours_close": 0.0, + "working_days_open": 0.0, + "working_days_close": 0.0, + "website_message_ids": [ + 226932, + 226817 + ], + "remaining_hours": 0.0, + "effective_hours": 0.0, + "total_hours_spent": 0.0, + "progress": 0.0, + "subtask_effective_hours": 0.0, + "timesheet_ids": [], + "priority": "0", + "code": "T11011", + "milestone_id": false, + "sale_line_id": false, + "sale_order_id": false, + "billable_type": "no", + "activity_ids": [], + "message_follower_ids": [ + 89070, + 89073, + 89123 + ], + "message_ids": [ + 226934, + 226933, + 226932, + 226830, + 226828, + 226818, + 226817, + 226816 + ], + "message_main_attachment_id": [ + 144161, + "image001.png" + ], + "failed_message_ids": [], + "rating_ids": [], + "rating_last_value": 0.0, + "access_token": "06875ce1-a1a5-48df-ab1b-6cdb5a99e59c", + "create_uid": [ + 1, + "OdooBot" + ], + "write_uid": [ + 32, + "Romuald GRUSON" + ], + "x_CBAO_windows_maj_ID": false, + "x_CBAO_version_signalement": false, + "x_CBAO_version_correction": false, + "x_CBAO_DateCorrection": false, + "x_CBAO_Scoring_Facilite": 0, + "x_CBAO_Scoring_Importance": 0, + "x_CBAO_Scoring_Urgence": 0, + "x_CBAO_Scoring_Incidence": 0, + "x_CBAO_Scoring_Resultat": 0, + "x_CBAO_InformationsSup": false, + "kanban_state_label": "En cours", + "subtask_planned_hours": 0.0, + "manager_id": [ + 22, + "Fabien LAFAY" + ], + "user_email": "romuald@mail.cbao.fr", + "attachment_ids": [], + "legend_blocked": "Bloqué", + "legend_done": "Prêt pour la prochaine étape", + "legend_normal": "En cours", + "subtask_project_id": [ + 3, + "Demandes" + ], + "subtask_count": 0, + "analytic_account_active": true, + "allow_timesheets": true, + "use_milestones": false, + "show_time_control": "start", + "is_project_map_empty": true, + "activity_state": false, + "activity_user_id": false, + "activity_type_id": false, + "activity_date_deadline": false, + "activity_summary": false, + "message_is_follower": false, + "message_unread": false, + "message_unread_counter": 0, + "message_needaction": false, + "message_needaction_counter": 0, + "message_has_error": false, + "message_has_error_counter": 0, + "message_attachment_count": 1, + "rating_last_feedback": false, + "rating_last_image": false, + "rating_count": 0, + "access_url": "/my/task/10990", + "access_warning": "", + "display_name": "[T11011] bug", + "__last_update": "2025-03-06 14:53:15", + "stage_id_value": "En attente d'infos / retours", + "project_id_value": "Demandes", + "user_id_value": "Romuald GRUSON", + "partner_id_value": "CONSEIL DEPARTEMENTAL DU MORBIHAN (56), Dominique CARVAL", + "manager_id_value": "Fabien LAFAY", + "company_id_value": "CBAO S.A.R.L.", + "subtask_project_id_value": "Demandes", + "message_main_attachment_id_value": "image001.png", + "create_uid_value": "OdooBot", + "write_uid_value": "Romuald GRUSON" +} \ No newline at end of file diff --git a/exported_tickets/ticket_10990_raw.json b/exported_tickets/ticket_10990_raw.json new file mode 100644 index 0000000..45b2a7c --- /dev/null +++ b/exported_tickets/ticket_10990_raw.json @@ -0,0 +1,156 @@ +{ + "id": 10990, + "active": true, + "name": "bug", + "description": "


", + "sequence": 10, + "stage_id": [ + 32, + "En attente d'infos / retours" + ], + "kanban_state": "normal", + "create_date": "2025-03-06 08:11:49", + "write_date": "2025-03-06 14:53:15", + "date_start": "2025-03-06 08:11:50", + "date_end": false, + "date_assign": "2025-03-06 08:33:37", + "date_deadline": "2025-03-21", + "date_last_stage_update": "2025-03-06 14:53:15", + "project_id": [ + 3, + "Demandes" + ], + "notes": false, + "planned_hours": 0.0, + "user_id": [ + 32, + "Romuald GRUSON" + ], + "partner_id": [ + 5144, + "CONSEIL DEPARTEMENTAL DU MORBIHAN (56), Dominique CARVAL" + ], + "company_id": [ + 1, + "CBAO S.A.R.L." + ], + "color": 0, + "displayed_image_id": false, + "parent_id": false, + "child_ids": [], + "email_from": "CARVAL Dominique ", + "email_cc": "", + "working_hours_open": 0.0, + "working_hours_close": 0.0, + "working_days_open": 0.0, + "working_days_close": 0.0, + "website_message_ids": [ + 226932, + 226817 + ], + "remaining_hours": 0.0, + "effective_hours": 0.0, + "total_hours_spent": 0.0, + "progress": 0.0, + "subtask_effective_hours": 0.0, + "timesheet_ids": [], + "priority": "0", + "code": "T11011", + "milestone_id": false, + "sale_line_id": false, + "sale_order_id": false, + "billable_type": "no", + "activity_ids": [], + "message_follower_ids": [ + 89070, + 89073, + 89123 + ], + "message_ids": [ + 226934, + 226933, + 226932, + 226830, + 226828, + 226818, + 226817, + 226816 + ], + "message_main_attachment_id": [ + 144161, + "image001.png" + ], + "failed_message_ids": [], + "rating_ids": [], + "rating_last_value": 0.0, + "access_token": "06875ce1-a1a5-48df-ab1b-6cdb5a99e59c", + "create_uid": [ + 1, + "OdooBot" + ], + "write_uid": [ + 32, + "Romuald GRUSON" + ], + "x_CBAO_windows_maj_ID": false, + "x_CBAO_version_signalement": false, + "x_CBAO_version_correction": false, + "x_CBAO_DateCorrection": false, + "x_CBAO_Scoring_Facilite": 0, + "x_CBAO_Scoring_Importance": 0, + "x_CBAO_Scoring_Urgence": 0, + "x_CBAO_Scoring_Incidence": 0, + "x_CBAO_Scoring_Resultat": 0, + "x_CBAO_InformationsSup": false, + "kanban_state_label": "En cours", + "subtask_planned_hours": 0.0, + "manager_id": [ + 22, + "Fabien LAFAY" + ], + "user_email": "romuald@mail.cbao.fr", + "attachment_ids": [], + "legend_blocked": "Bloqué", + "legend_done": "Prêt pour la prochaine étape", + "legend_normal": "En cours", + "subtask_project_id": [ + 3, + "Demandes" + ], + "subtask_count": 0, + "analytic_account_active": true, + "allow_timesheets": true, + "use_milestones": false, + "show_time_control": "start", + "is_project_map_empty": true, + "activity_state": false, + "activity_user_id": false, + "activity_type_id": false, + "activity_date_deadline": false, + "activity_summary": false, + "message_is_follower": false, + "message_unread": false, + "message_unread_counter": 0, + "message_needaction": false, + "message_needaction_counter": 0, + "message_has_error": false, + "message_has_error_counter": 0, + "message_attachment_count": 1, + "rating_last_feedback": false, + "rating_last_image": false, + "rating_count": 0, + "access_url": "/my/task/10990", + "access_warning": "", + "display_name": "[T11011] bug", + "__last_update": "2025-03-06 14:53:15", + "stage_id_value": "En attente d'infos / retours", + "project_id_value": "Demandes", + "user_id_value": "Romuald GRUSON", + "partner_id_value": "CONSEIL DEPARTEMENTAL DU MORBIHAN (56), Dominique CARVAL", + "manager_id_value": "Fabien LAFAY", + "company_id_value": "CBAO S.A.R.L.", + "subtask_project_id_value": "Demandes", + "message_main_attachment_id_value": "image001.png", + "create_uid_value": "OdooBot", + "write_uid_value": "Romuald GRUSON" +} \ No newline at end of file diff --git a/exported_tickets/ticket_T11011_raw.json b/exported_tickets/ticket_T11011_raw.json new file mode 100644 index 0000000..1890c5d --- /dev/null +++ b/exported_tickets/ticket_T11011_raw.json @@ -0,0 +1,3 @@ +[ + 10990 +] \ No newline at end of file diff --git a/filtered_tickets/ticket_10990_bug/attachments/144161_image001.png b/filtered_tickets/ticket_10990_bug/attachments/144161_image001.png new file mode 100644 index 0000000..121eaf8 Binary files /dev/null and b/filtered_tickets/ticket_10990_bug/attachments/144161_image001.png differ diff --git a/filtered_tickets/ticket_10990_bug/attachments_info.json b/filtered_tickets/ticket_10990_bug/attachments_info.json new file mode 100644 index 0000000..4b90fb1 --- /dev/null +++ b/filtered_tickets/ticket_10990_bug/attachments_info.json @@ -0,0 +1,12 @@ +[ + { + "id": 144161, + "name": "image001.png", + "mimetype": "image/png", + "create_date": "2025-03-06 08:11:49", + "description": "image001.png", + "res_name": "[T11011] bug", + "type": "binary", + "file_path": "attachments/144161_image001.png" + } +] \ No newline at end of file diff --git a/filtered_tickets/ticket_10990_bug/contact_info.json b/filtered_tickets/ticket_10990_bug/contact_info.json new file mode 100644 index 0000000..0603e59 --- /dev/null +++ b/filtered_tickets/ticket_10990_bug/contact_info.json @@ -0,0 +1,15 @@ +{ + "id": 5144, + "name": "Dominique CARVAL", + "email": "dominique.carval@morbihan.fr", + "phone": "02 97 54 71 14", + "mobile": "06 98 32 88 30", + "street": "DSN-HOTEL DU DEPARTEMENT", + "city": "VANNES", + "zip": "56000", + "country_id": [ + 75, + "France" + ], + "comment": "" +} \ No newline at end of file diff --git a/filtered_tickets/ticket_10990_bug/followers.json b/filtered_tickets/ticket_10990_bug/followers.json new file mode 100644 index 0000000..ff71d9e --- /dev/null +++ b/filtered_tickets/ticket_10990_bug/followers.json @@ -0,0 +1,110 @@ +[ + { + "id": 89070, + "partner_id": [ + 28961, + "Fabien LAFAY" + ], + "subtype_ids": [ + 1, + 20 + ], + "partner_details": { + "id": 28961, + "name": "Fabien LAFAY", + "email": "fabien@mail.cbao.fr", + "phone": false, + "function": false, + "company_id": [ + 1, + "CBAO S.A.R.L." + ] + }, + "subtype_details": [ + { + "id": 1, + "name": "Discussions", + "description": false, + "default": true + }, + { + "id": 20, + "name": "Task Rating", + "description": "Ratings", + "default": true + } + ] + }, + { + "id": 89073, + "partner_id": [ + 32165, + "Romuald GRUSON" + ], + "subtype_ids": [ + 1, + 20 + ], + "partner_details": { + "id": 32165, + "name": "Romuald GRUSON", + "email": "romuald@mail.cbao.fr", + "phone": false, + "function": false, + "company_id": [ + 1, + "CBAO S.A.R.L." + ] + }, + "subtype_details": [ + { + "id": 1, + "name": "Discussions", + "description": false, + "default": true + }, + { + "id": 20, + "name": "Task Rating", + "description": "Ratings", + "default": true + } + ] + }, + { + "id": 89123, + "partner_id": [ + 5144, + "CONSEIL DEPARTEMENTAL DU MORBIHAN (56), Dominique CARVAL" + ], + "subtype_ids": [ + 1, + 20 + ], + "partner_details": { + "id": 5144, + "name": "Dominique CARVAL", + "email": "dominique.carval@morbihan.fr", + "phone": "02 97 54 71 14", + "function": "Technicien de laboratoire", + "company_id": [ + 1, + "CBAO S.A.R.L." + ] + }, + "subtype_details": [ + { + "id": 1, + "name": "Discussions", + "description": false, + "default": true + }, + { + "id": 20, + "name": "Task Rating", + "description": "Ratings", + "default": true + } + ] + } +] \ No newline at end of file diff --git a/filtered_tickets/ticket_10990_bug/message_threads.json b/filtered_tickets/ticket_10990_bug/message_threads.json new file mode 100644 index 0000000..ad14929 --- /dev/null +++ b/filtered_tickets/ticket_10990_bug/message_threads.json @@ -0,0 +1,156 @@ +{ + "226816": { + "main_message": null, + "replies": [ + { + "id": 226934, + "body": "", + "date": "2025-03-06 14:53:15", + "author_id": [ + 32165, + "Romuald GRUSON" + ], + "email_from": "\"Romuald GRUSON\" ", + "subject": false, + "parent_id": [ + 226816, + "[T11011] bug" + ], + "message_type": "notification", + "subtype_id": [ + 19, + "Stage Changed" + ], + "attachment_ids": [] + }, + { + "id": 226932, + "body": "Bonjour , Les bases de données ont été redémarrées. Si l'incident persiste, n'hésitez pas à nous contacter. Je reste à votre entière disposition pour toute information complémentaire. Cordialement, --- Support technique Afin d'assurer une meilleure traçabilité et vous garantir une prise en charge optimale, nous vous invitons à envoyer vos demandes d'assistance technique à support@cbao.fr L'objectif du Support Technique est de vous aider : si vous rencontrez une difficulté, ou pour nous soumettre une ou des suggestions d'amélioration de nos logiciels ou de nos méthodes. Notre service est ouvert du lundi au vendredi de 9h à 12h et de 14h à 18h. Dès réception, un technicien prendra en charge votre demande et au besoin vous rappellera. Confidentialité : Ce courriel contient des informations confidentielles exclusivement réservées au destinataire mentionné. Si vous deviez recevoir cet e-mail par erreur, merci d’en avertir immédiatement l’expéditeur et de le supprimer de votre système informatique. Au cas où vous ne seriez pas destinataire de ce message, veuillez noter que sa divulgation, sa copie ou tout acte en rapport avec la communication du contenu des informations est strictement interdit.", + "date": "2025-03-06 14:53:14", + "author_id": [ + 32165, + "Romuald GRUSON" + ], + "email_from": "support@cbao.fr", + "subject": "Re: [T11011] - bug", + "parent_id": [ + 226816, + "[T11011] bug" + ], + "message_type": "comment", + "subtype_id": [ + 1, + "Discussions" + ], + "attachment_ids": [] + }, + { + "id": 226830, + "body": "", + "date": "2025-03-06 08:33:44", + "author_id": [ + 32165, + "Romuald GRUSON" + ], + "email_from": "\"Romuald GRUSON\" ", + "subject": false, + "parent_id": [ + 226816, + "[T11011] bug" + ], + "message_type": "notification", + "subtype_id": [ + 16, + "Task Created" + ], + "attachment_ids": [] + }, + { + "id": 226817, + "body": "Bonjour, Gros ralentissement ce matin !!!! ca tourne en rond…. Bonne réception Dominique CARVAL Technicien de laboratoire Direction des Infrastructures et des mobilités (DIM) Service d’Appui aux Politiques d’Aménagement / Pôle Laboratoire Routier (SAPA/PLR) 115, rue du commerce – 56000 VANNES tél : 02 97 54 71 14 - mobile : 06 98 32 88 30 – dominique.carval@morbihan.fr Droit à la déconnexion : Si vous recevez ce message en dehors de vos heures de travail ou pendant vos congés, vous n’êtes pas tenu de répondre immédiatement, sauf en cas d’urgence exceptionnelle. Ce message électronique et tous les fichiers attachés qu'il contient peuvent être confidentiels, contenir des données personnelles ou sensibles et être soumis au secret professionnel. Il est destiné exclusivement à l'usage du ou des destinataires. Si vous recevez ce message par erreur et/ou si vous n'êtes pas le destinataire désigné de ce message, le département du Morbihan vous remercie d'avertir immédiatement l'expéditeur et de le détruire ainsi que toutes les pièces jointes s'y rattachant. La publication, l'usage, la distribution, l'impression ou la copie non autorisée de ce message et des attachements qu'il contient sont strictement interdits. Tout message électronique est susceptible d'altération.", + "date": "2025-03-06 08:07:49", + "author_id": [ + 5144, + "CONSEIL DEPARTEMENTAL DU MORBIHAN (56), Dominique CARVAL" + ], + "email_from": "CARVAL Dominique ", + "subject": "bug", + "parent_id": [ + 226816, + "[T11011] bug" + ], + "message_type": "email", + "subtype_id": [ + 1, + "Discussions" + ], + "attachment_ids": [ + 144161 + ] + } + ] + }, + "226933": { + "main_message": { + "id": 226933, + "body": "", + "date": "2025-03-06 14:53:15", + "author_id": [ + 32165, + "Romuald GRUSON" + ], + "email_from": "\"Romuald GRUSON\" ", + "subject": false, + "parent_id": false, + "message_type": "notification", + "subtype_id": [ + 2, + "Note" + ], + "attachment_ids": [] + }, + "replies": [] + }, + "226828": { + "main_message": { + "id": 226828, + "body": "", + "date": "2025-03-06 08:33:37", + "author_id": [ + 32165, + "Romuald GRUSON" + ], + "email_from": "\"Romuald GRUSON\" ", + "subject": false, + "parent_id": false, + "message_type": "notification", + "subtype_id": [ + 2, + "Note" + ], + "attachment_ids": [] + }, + "replies": [] + }, + "226818": { + "main_message": { + "id": 226818, + "body": "", + "date": "2025-03-06 08:11:51", + "author_id": [ + 2, + "OdooBot" + ], + "email_from": "\"OdooBot\" ", + "subject": false, + "parent_id": false, + "message_type": "notification", + "subtype_id": [ + 2, + "Note" + ], + "attachment_ids": [] + }, + "replies": [] + } +} \ No newline at end of file diff --git a/filtered_tickets/ticket_10990_bug/messages.json b/filtered_tickets/ticket_10990_bug/messages.json new file mode 100644 index 0000000..f8b8efb --- /dev/null +++ b/filtered_tickets/ticket_10990_bug/messages.json @@ -0,0 +1,160 @@ +[ + { + "id": 226934, + "body": "", + "date": "2025-03-06 14:53:15", + "author_id": [ + 32165, + "Romuald GRUSON" + ], + "email_from": "\"Romuald GRUSON\" ", + "subject": false, + "parent_id": [ + 226816, + "[T11011] bug" + ], + "message_type": "notification", + "subtype_id": [ + 19, + "Stage Changed" + ], + "attachment_ids": [] + }, + { + "id": 226933, + "body": "", + "date": "2025-03-06 14:53:15", + "author_id": [ + 32165, + "Romuald GRUSON" + ], + "email_from": "\"Romuald GRUSON\" ", + "subject": false, + "parent_id": false, + "message_type": "notification", + "subtype_id": [ + 2, + "Note" + ], + "attachment_ids": [] + }, + { + "id": 226932, + "body": "Bonjour , Les bases de données ont été redémarrées. Si l'incident persiste, n'hésitez pas à nous contacter. Je reste à votre entière disposition pour toute information complémentaire. Cordialement, --- Support technique Afin d'assurer une meilleure traçabilité et vous garantir une prise en charge optimale, nous vous invitons à envoyer vos demandes d'assistance technique à support@cbao.fr L'objectif du Support Technique est de vous aider : si vous rencontrez une difficulté, ou pour nous soumettre une ou des suggestions d'amélioration de nos logiciels ou de nos méthodes. Notre service est ouvert du lundi au vendredi de 9h à 12h et de 14h à 18h. Dès réception, un technicien prendra en charge votre demande et au besoin vous rappellera. Confidentialité : Ce courriel contient des informations confidentielles exclusivement réservées au destinataire mentionné. Si vous deviez recevoir cet e-mail par erreur, merci d’en avertir immédiatement l’expéditeur et de le supprimer de votre système informatique. Au cas où vous ne seriez pas destinataire de ce message, veuillez noter que sa divulgation, sa copie ou tout acte en rapport avec la communication du contenu des informations est strictement interdit.", + "date": "2025-03-06 14:53:14", + "author_id": [ + 32165, + "Romuald GRUSON" + ], + "email_from": "support@cbao.fr", + "subject": "Re: [T11011] - bug", + "parent_id": [ + 226816, + "[T11011] bug" + ], + "message_type": "comment", + "subtype_id": [ + 1, + "Discussions" + ], + "attachment_ids": [] + }, + { + "id": 226830, + "body": "", + "date": "2025-03-06 08:33:44", + "author_id": [ + 32165, + "Romuald GRUSON" + ], + "email_from": "\"Romuald GRUSON\" ", + "subject": false, + "parent_id": [ + 226816, + "[T11011] bug" + ], + "message_type": "notification", + "subtype_id": [ + 16, + "Task Created" + ], + "attachment_ids": [] + }, + { + "id": 226828, + "body": "", + "date": "2025-03-06 08:33:37", + "author_id": [ + 32165, + "Romuald GRUSON" + ], + "email_from": "\"Romuald GRUSON\" ", + "subject": false, + "parent_id": false, + "message_type": "notification", + "subtype_id": [ + 2, + "Note" + ], + "attachment_ids": [] + }, + { + "id": 226818, + "body": "", + "date": "2025-03-06 08:11:51", + "author_id": [ + 2, + "OdooBot" + ], + "email_from": "\"OdooBot\" ", + "subject": false, + "parent_id": false, + "message_type": "notification", + "subtype_id": [ + 2, + "Note" + ], + "attachment_ids": [] + }, + { + "id": 226817, + "body": "Bonjour, Gros ralentissement ce matin !!!! ca tourne en rond…. Bonne réception Dominique CARVAL Technicien de laboratoire Direction des Infrastructures et des mobilités (DIM) Service d’Appui aux Politiques d’Aménagement / Pôle Laboratoire Routier (SAPA/PLR) 115, rue du commerce – 56000 VANNES tél : 02 97 54 71 14 - mobile : 06 98 32 88 30 – dominique.carval@morbihan.fr Droit à la déconnexion : Si vous recevez ce message en dehors de vos heures de travail ou pendant vos congés, vous n’êtes pas tenu de répondre immédiatement, sauf en cas d’urgence exceptionnelle. Ce message électronique et tous les fichiers attachés qu'il contient peuvent être confidentiels, contenir des données personnelles ou sensibles et être soumis au secret professionnel. Il est destiné exclusivement à l'usage du ou des destinataires. Si vous recevez ce message par erreur et/ou si vous n'êtes pas le destinataire désigné de ce message, le département du Morbihan vous remercie d'avertir immédiatement l'expéditeur et de le détruire ainsi que toutes les pièces jointes s'y rattachant. La publication, l'usage, la distribution, l'impression ou la copie non autorisée de ce message et des attachements qu'il contient sont strictement interdits. Tout message électronique est susceptible d'altération.", + "date": "2025-03-06 08:07:49", + "author_id": [ + 5144, + "CONSEIL DEPARTEMENTAL DU MORBIHAN (56), Dominique CARVAL" + ], + "email_from": "CARVAL Dominique ", + "subject": "bug", + "parent_id": [ + 226816, + "[T11011] bug" + ], + "message_type": "email", + "subtype_id": [ + 1, + "Discussions" + ], + "attachment_ids": [ + 144161 + ] + }, + { + "id": 226816, + "body": "", + "date": "2025-03-06 08:11:51", + "author_id": [ + 2, + "OdooBot" + ], + "email_from": "\"OdooBot\" ", + "subject": false, + "parent_id": false, + "message_type": "notification", + "subtype_id": [ + 16, + "Task Created" + ], + "attachment_ids": [] + } +] \ No newline at end of file diff --git a/filtered_tickets/ticket_10990_bug/messages/message_226816_2025-03-06_08-11-51.json b/filtered_tickets/ticket_10990_bug/messages/message_226816_2025-03-06_08-11-51.json new file mode 100644 index 0000000..1080b71 --- /dev/null +++ b/filtered_tickets/ticket_10990_bug/messages/message_226816_2025-03-06_08-11-51.json @@ -0,0 +1,37 @@ +{ + "id": 226816, + "body": "", + "date": "2025-03-06 08:11:51", + "author_id": [ + 2, + "OdooBot" + ], + "email_from": "\"OdooBot\" ", + "subject": false, + "parent_id": false, + "message_type": "notification", + "subtype_id": [ + 16, + "Task Created" + ], + "attachment_ids": [], + "author_details": { + "id": 2, + "name": "OdooBot", + "email": "odoobot@example.com", + "phone": false, + "function": false, + "company_id": [ + 1, + "CBAO S.A.R.L." + ] + }, + "subtype_details": [ + { + "id": 16, + "name": "Task Created", + "description": "Task Created", + "default": false + } + ] +} \ No newline at end of file diff --git a/filtered_tickets/ticket_10990_bug/messages/message_226817_2025-03-06_08-07-49.json b/filtered_tickets/ticket_10990_bug/messages/message_226817_2025-03-06_08-07-49.json new file mode 100644 index 0000000..d4ef61a --- /dev/null +++ b/filtered_tickets/ticket_10990_bug/messages/message_226817_2025-03-06_08-07-49.json @@ -0,0 +1,42 @@ +{ + "id": 226817, + "body": "Bonjour, Gros ralentissement ce matin !!!! ca tourne en rond…. Bonne réception Dominique CARVAL Technicien de laboratoire Direction des Infrastructures et des mobilités (DIM) Service d’Appui aux Politiques d’Aménagement / Pôle Laboratoire Routier (SAPA/PLR) 115, rue du commerce – 56000 VANNES tél : 02 97 54 71 14 - mobile : 06 98 32 88 30 – dominique.carval@morbihan.fr Droit à la déconnexion : Si vous recevez ce message en dehors de vos heures de travail ou pendant vos congés, vous n’êtes pas tenu de répondre immédiatement, sauf en cas d’urgence exceptionnelle. Ce message électronique et tous les fichiers attachés qu'il contient peuvent être confidentiels, contenir des données personnelles ou sensibles et être soumis au secret professionnel. Il est destiné exclusivement à l'usage du ou des destinataires. Si vous recevez ce message par erreur et/ou si vous n'êtes pas le destinataire désigné de ce message, le département du Morbihan vous remercie d'avertir immédiatement l'expéditeur et de le détruire ainsi que toutes les pièces jointes s'y rattachant. La publication, l'usage, la distribution, l'impression ou la copie non autorisée de ce message et des attachements qu'il contient sont strictement interdits. Tout message électronique est susceptible d'altération.", + "date": "2025-03-06 08:07:49", + "author_id": [ + 5144, + "CONSEIL DEPARTEMENTAL DU MORBIHAN (56), Dominique CARVAL" + ], + "email_from": "CARVAL Dominique ", + "subject": "bug", + "parent_id": [ + 226816, + "[T11011] bug" + ], + "message_type": "email", + "subtype_id": [ + 1, + "Discussions" + ], + "attachment_ids": [ + 144161 + ], + "author_details": { + "id": 5144, + "name": "Dominique CARVAL", + "email": "dominique.carval@morbihan.fr", + "phone": "02 97 54 71 14", + "function": "Technicien de laboratoire", + "company_id": [ + 1, + "CBAO S.A.R.L." + ] + }, + "subtype_details": [ + { + "id": 1, + "name": "Discussions", + "description": false, + "default": true + } + ] +} \ No newline at end of file diff --git a/filtered_tickets/ticket_10990_bug/messages/message_226818_2025-03-06_08-11-51.json b/filtered_tickets/ticket_10990_bug/messages/message_226818_2025-03-06_08-11-51.json new file mode 100644 index 0000000..97d14a4 --- /dev/null +++ b/filtered_tickets/ticket_10990_bug/messages/message_226818_2025-03-06_08-11-51.json @@ -0,0 +1,37 @@ +{ + "id": 226818, + "body": "", + "date": "2025-03-06 08:11:51", + "author_id": [ + 2, + "OdooBot" + ], + "email_from": "\"OdooBot\" ", + "subject": false, + "parent_id": false, + "message_type": "notification", + "subtype_id": [ + 2, + "Note" + ], + "attachment_ids": [], + "author_details": { + "id": 2, + "name": "OdooBot", + "email": "odoobot@example.com", + "phone": false, + "function": false, + "company_id": [ + 1, + "CBAO S.A.R.L." + ] + }, + "subtype_details": [ + { + "id": 2, + "name": "Note", + "description": false, + "default": false + } + ] +} \ No newline at end of file diff --git a/filtered_tickets/ticket_10990_bug/messages/message_226828_2025-03-06_08-33-37.json b/filtered_tickets/ticket_10990_bug/messages/message_226828_2025-03-06_08-33-37.json new file mode 100644 index 0000000..0b8fd9f --- /dev/null +++ b/filtered_tickets/ticket_10990_bug/messages/message_226828_2025-03-06_08-33-37.json @@ -0,0 +1,37 @@ +{ + "id": 226828, + "body": "", + "date": "2025-03-06 08:33:37", + "author_id": [ + 32165, + "Romuald GRUSON" + ], + "email_from": "\"Romuald GRUSON\" ", + "subject": false, + "parent_id": false, + "message_type": "notification", + "subtype_id": [ + 2, + "Note" + ], + "attachment_ids": [], + "author_details": { + "id": 32165, + "name": "Romuald GRUSON", + "email": "romuald@mail.cbao.fr", + "phone": false, + "function": false, + "company_id": [ + 1, + "CBAO S.A.R.L." + ] + }, + "subtype_details": [ + { + "id": 2, + "name": "Note", + "description": false, + "default": false + } + ] +} \ No newline at end of file diff --git a/filtered_tickets/ticket_10990_bug/messages/message_226830_2025-03-06_08-33-44.json b/filtered_tickets/ticket_10990_bug/messages/message_226830_2025-03-06_08-33-44.json new file mode 100644 index 0000000..9078f09 --- /dev/null +++ b/filtered_tickets/ticket_10990_bug/messages/message_226830_2025-03-06_08-33-44.json @@ -0,0 +1,40 @@ +{ + "id": 226830, + "body": "", + "date": "2025-03-06 08:33:44", + "author_id": [ + 32165, + "Romuald GRUSON" + ], + "email_from": "\"Romuald GRUSON\" ", + "subject": false, + "parent_id": [ + 226816, + "[T11011] bug" + ], + "message_type": "notification", + "subtype_id": [ + 16, + "Task Created" + ], + "attachment_ids": [], + "author_details": { + "id": 32165, + "name": "Romuald GRUSON", + "email": "romuald@mail.cbao.fr", + "phone": false, + "function": false, + "company_id": [ + 1, + "CBAO S.A.R.L." + ] + }, + "subtype_details": [ + { + "id": 16, + "name": "Task Created", + "description": "Task Created", + "default": false + } + ] +} \ No newline at end of file diff --git a/filtered_tickets/ticket_10990_bug/messages/message_226932_2025-03-06_14-53-14.json b/filtered_tickets/ticket_10990_bug/messages/message_226932_2025-03-06_14-53-14.json new file mode 100644 index 0000000..0ea9c36 --- /dev/null +++ b/filtered_tickets/ticket_10990_bug/messages/message_226932_2025-03-06_14-53-14.json @@ -0,0 +1,40 @@ +{ + "id": 226932, + "body": "Bonjour , Les bases de données ont été redémarrées. Si l'incident persiste, n'hésitez pas à nous contacter. Je reste à votre entière disposition pour toute information complémentaire. Cordialement, --- Support technique Afin d'assurer une meilleure traçabilité et vous garantir une prise en charge optimale, nous vous invitons à envoyer vos demandes d'assistance technique à support@cbao.fr L'objectif du Support Technique est de vous aider : si vous rencontrez une difficulté, ou pour nous soumettre une ou des suggestions d'amélioration de nos logiciels ou de nos méthodes. Notre service est ouvert du lundi au vendredi de 9h à 12h et de 14h à 18h. Dès réception, un technicien prendra en charge votre demande et au besoin vous rappellera. Confidentialité : Ce courriel contient des informations confidentielles exclusivement réservées au destinataire mentionné. Si vous deviez recevoir cet e-mail par erreur, merci d’en avertir immédiatement l’expéditeur et de le supprimer de votre système informatique. Au cas où vous ne seriez pas destinataire de ce message, veuillez noter que sa divulgation, sa copie ou tout acte en rapport avec la communication du contenu des informations est strictement interdit.", + "date": "2025-03-06 14:53:14", + "author_id": [ + 32165, + "Romuald GRUSON" + ], + "email_from": "support@cbao.fr", + "subject": "Re: [T11011] - bug", + "parent_id": [ + 226816, + "[T11011] bug" + ], + "message_type": "comment", + "subtype_id": [ + 1, + "Discussions" + ], + "attachment_ids": [], + "author_details": { + "id": 32165, + "name": "Romuald GRUSON", + "email": "romuald@mail.cbao.fr", + "phone": false, + "function": false, + "company_id": [ + 1, + "CBAO S.A.R.L." + ] + }, + "subtype_details": [ + { + "id": 1, + "name": "Discussions", + "description": false, + "default": true + } + ] +} \ No newline at end of file diff --git a/filtered_tickets/ticket_10990_bug/messages/message_226933_2025-03-06_14-53-15.json b/filtered_tickets/ticket_10990_bug/messages/message_226933_2025-03-06_14-53-15.json new file mode 100644 index 0000000..ea6ba73 --- /dev/null +++ b/filtered_tickets/ticket_10990_bug/messages/message_226933_2025-03-06_14-53-15.json @@ -0,0 +1,37 @@ +{ + "id": 226933, + "body": "", + "date": "2025-03-06 14:53:15", + "author_id": [ + 32165, + "Romuald GRUSON" + ], + "email_from": "\"Romuald GRUSON\" ", + "subject": false, + "parent_id": false, + "message_type": "notification", + "subtype_id": [ + 2, + "Note" + ], + "attachment_ids": [], + "author_details": { + "id": 32165, + "name": "Romuald GRUSON", + "email": "romuald@mail.cbao.fr", + "phone": false, + "function": false, + "company_id": [ + 1, + "CBAO S.A.R.L." + ] + }, + "subtype_details": [ + { + "id": 2, + "name": "Note", + "description": false, + "default": false + } + ] +} \ No newline at end of file diff --git a/filtered_tickets/ticket_10990_bug/messages/message_226934_2025-03-06_14-53-15.json b/filtered_tickets/ticket_10990_bug/messages/message_226934_2025-03-06_14-53-15.json new file mode 100644 index 0000000..a910bb9 --- /dev/null +++ b/filtered_tickets/ticket_10990_bug/messages/message_226934_2025-03-06_14-53-15.json @@ -0,0 +1,40 @@ +{ + "id": 226934, + "body": "", + "date": "2025-03-06 14:53:15", + "author_id": [ + 32165, + "Romuald GRUSON" + ], + "email_from": "\"Romuald GRUSON\" ", + "subject": false, + "parent_id": [ + 226816, + "[T11011] bug" + ], + "message_type": "notification", + "subtype_id": [ + 19, + "Stage Changed" + ], + "attachment_ids": [], + "author_details": { + "id": 32165, + "name": "Romuald GRUSON", + "email": "romuald@mail.cbao.fr", + "phone": false, + "function": false, + "company_id": [ + 1, + "CBAO S.A.R.L." + ] + }, + "subtype_details": [ + { + "id": 19, + "name": "Stage Changed", + "description": "Stage changed", + "default": false + } + ] +} \ No newline at end of file diff --git a/filtered_tickets/ticket_10990_bug/ticket_info.json b/filtered_tickets/ticket_10990_bug/ticket_info.json new file mode 100644 index 0000000..45b2a7c --- /dev/null +++ b/filtered_tickets/ticket_10990_bug/ticket_info.json @@ -0,0 +1,156 @@ +{ + "id": 10990, + "active": true, + "name": "bug", + "description": "


", + "sequence": 10, + "stage_id": [ + 32, + "En attente d'infos / retours" + ], + "kanban_state": "normal", + "create_date": "2025-03-06 08:11:49", + "write_date": "2025-03-06 14:53:15", + "date_start": "2025-03-06 08:11:50", + "date_end": false, + "date_assign": "2025-03-06 08:33:37", + "date_deadline": "2025-03-21", + "date_last_stage_update": "2025-03-06 14:53:15", + "project_id": [ + 3, + "Demandes" + ], + "notes": false, + "planned_hours": 0.0, + "user_id": [ + 32, + "Romuald GRUSON" + ], + "partner_id": [ + 5144, + "CONSEIL DEPARTEMENTAL DU MORBIHAN (56), Dominique CARVAL" + ], + "company_id": [ + 1, + "CBAO S.A.R.L." + ], + "color": 0, + "displayed_image_id": false, + "parent_id": false, + "child_ids": [], + "email_from": "CARVAL Dominique ", + "email_cc": "", + "working_hours_open": 0.0, + "working_hours_close": 0.0, + "working_days_open": 0.0, + "working_days_close": 0.0, + "website_message_ids": [ + 226932, + 226817 + ], + "remaining_hours": 0.0, + "effective_hours": 0.0, + "total_hours_spent": 0.0, + "progress": 0.0, + "subtask_effective_hours": 0.0, + "timesheet_ids": [], + "priority": "0", + "code": "T11011", + "milestone_id": false, + "sale_line_id": false, + "sale_order_id": false, + "billable_type": "no", + "activity_ids": [], + "message_follower_ids": [ + 89070, + 89073, + 89123 + ], + "message_ids": [ + 226934, + 226933, + 226932, + 226830, + 226828, + 226818, + 226817, + 226816 + ], + "message_main_attachment_id": [ + 144161, + "image001.png" + ], + "failed_message_ids": [], + "rating_ids": [], + "rating_last_value": 0.0, + "access_token": "06875ce1-a1a5-48df-ab1b-6cdb5a99e59c", + "create_uid": [ + 1, + "OdooBot" + ], + "write_uid": [ + 32, + "Romuald GRUSON" + ], + "x_CBAO_windows_maj_ID": false, + "x_CBAO_version_signalement": false, + "x_CBAO_version_correction": false, + "x_CBAO_DateCorrection": false, + "x_CBAO_Scoring_Facilite": 0, + "x_CBAO_Scoring_Importance": 0, + "x_CBAO_Scoring_Urgence": 0, + "x_CBAO_Scoring_Incidence": 0, + "x_CBAO_Scoring_Resultat": 0, + "x_CBAO_InformationsSup": false, + "kanban_state_label": "En cours", + "subtask_planned_hours": 0.0, + "manager_id": [ + 22, + "Fabien LAFAY" + ], + "user_email": "romuald@mail.cbao.fr", + "attachment_ids": [], + "legend_blocked": "Bloqué", + "legend_done": "Prêt pour la prochaine étape", + "legend_normal": "En cours", + "subtask_project_id": [ + 3, + "Demandes" + ], + "subtask_count": 0, + "analytic_account_active": true, + "allow_timesheets": true, + "use_milestones": false, + "show_time_control": "start", + "is_project_map_empty": true, + "activity_state": false, + "activity_user_id": false, + "activity_type_id": false, + "activity_date_deadline": false, + "activity_summary": false, + "message_is_follower": false, + "message_unread": false, + "message_unread_counter": 0, + "message_needaction": false, + "message_needaction_counter": 0, + "message_has_error": false, + "message_has_error_counter": 0, + "message_attachment_count": 1, + "rating_last_feedback": false, + "rating_last_image": false, + "rating_count": 0, + "access_url": "/my/task/10990", + "access_warning": "", + "display_name": "[T11011] bug", + "__last_update": "2025-03-06 14:53:15", + "stage_id_value": "En attente d'infos / retours", + "project_id_value": "Demandes", + "user_id_value": "Romuald GRUSON", + "partner_id_value": "CONSEIL DEPARTEMENTAL DU MORBIHAN (56), Dominique CARVAL", + "manager_id_value": "Fabien LAFAY", + "company_id_value": "CBAO S.A.R.L.", + "subtask_project_id_value": "Demandes", + "message_main_attachment_id_value": "image001.png", + "create_uid_value": "OdooBot", + "write_uid_value": "Romuald GRUSON" +} \ No newline at end of file diff --git a/filtered_tickets/ticket_10990_raw.json b/filtered_tickets/ticket_10990_raw.json new file mode 100644 index 0000000..45b2a7c --- /dev/null +++ b/filtered_tickets/ticket_10990_raw.json @@ -0,0 +1,156 @@ +{ + "id": 10990, + "active": true, + "name": "bug", + "description": "


", + "sequence": 10, + "stage_id": [ + 32, + "En attente d'infos / retours" + ], + "kanban_state": "normal", + "create_date": "2025-03-06 08:11:49", + "write_date": "2025-03-06 14:53:15", + "date_start": "2025-03-06 08:11:50", + "date_end": false, + "date_assign": "2025-03-06 08:33:37", + "date_deadline": "2025-03-21", + "date_last_stage_update": "2025-03-06 14:53:15", + "project_id": [ + 3, + "Demandes" + ], + "notes": false, + "planned_hours": 0.0, + "user_id": [ + 32, + "Romuald GRUSON" + ], + "partner_id": [ + 5144, + "CONSEIL DEPARTEMENTAL DU MORBIHAN (56), Dominique CARVAL" + ], + "company_id": [ + 1, + "CBAO S.A.R.L." + ], + "color": 0, + "displayed_image_id": false, + "parent_id": false, + "child_ids": [], + "email_from": "CARVAL Dominique ", + "email_cc": "", + "working_hours_open": 0.0, + "working_hours_close": 0.0, + "working_days_open": 0.0, + "working_days_close": 0.0, + "website_message_ids": [ + 226932, + 226817 + ], + "remaining_hours": 0.0, + "effective_hours": 0.0, + "total_hours_spent": 0.0, + "progress": 0.0, + "subtask_effective_hours": 0.0, + "timesheet_ids": [], + "priority": "0", + "code": "T11011", + "milestone_id": false, + "sale_line_id": false, + "sale_order_id": false, + "billable_type": "no", + "activity_ids": [], + "message_follower_ids": [ + 89070, + 89073, + 89123 + ], + "message_ids": [ + 226934, + 226933, + 226932, + 226830, + 226828, + 226818, + 226817, + 226816 + ], + "message_main_attachment_id": [ + 144161, + "image001.png" + ], + "failed_message_ids": [], + "rating_ids": [], + "rating_last_value": 0.0, + "access_token": "06875ce1-a1a5-48df-ab1b-6cdb5a99e59c", + "create_uid": [ + 1, + "OdooBot" + ], + "write_uid": [ + 32, + "Romuald GRUSON" + ], + "x_CBAO_windows_maj_ID": false, + "x_CBAO_version_signalement": false, + "x_CBAO_version_correction": false, + "x_CBAO_DateCorrection": false, + "x_CBAO_Scoring_Facilite": 0, + "x_CBAO_Scoring_Importance": 0, + "x_CBAO_Scoring_Urgence": 0, + "x_CBAO_Scoring_Incidence": 0, + "x_CBAO_Scoring_Resultat": 0, + "x_CBAO_InformationsSup": false, + "kanban_state_label": "En cours", + "subtask_planned_hours": 0.0, + "manager_id": [ + 22, + "Fabien LAFAY" + ], + "user_email": "romuald@mail.cbao.fr", + "attachment_ids": [], + "legend_blocked": "Bloqué", + "legend_done": "Prêt pour la prochaine étape", + "legend_normal": "En cours", + "subtask_project_id": [ + 3, + "Demandes" + ], + "subtask_count": 0, + "analytic_account_active": true, + "allow_timesheets": true, + "use_milestones": false, + "show_time_control": "start", + "is_project_map_empty": true, + "activity_state": false, + "activity_user_id": false, + "activity_type_id": false, + "activity_date_deadline": false, + "activity_summary": false, + "message_is_follower": false, + "message_unread": false, + "message_unread_counter": 0, + "message_needaction": false, + "message_needaction_counter": 0, + "message_has_error": false, + "message_has_error_counter": 0, + "message_attachment_count": 1, + "rating_last_feedback": false, + "rating_last_image": false, + "rating_count": 0, + "access_url": "/my/task/10990", + "access_warning": "", + "display_name": "[T11011] bug", + "__last_update": "2025-03-06 14:53:15", + "stage_id_value": "En attente d'infos / retours", + "project_id_value": "Demandes", + "user_id_value": "Romuald GRUSON", + "partner_id_value": "CONSEIL DEPARTEMENTAL DU MORBIHAN (56), Dominique CARVAL", + "manager_id_value": "Fabien LAFAY", + "company_id_value": "CBAO S.A.R.L.", + "subtask_project_id_value": "Demandes", + "message_main_attachment_id_value": "image001.png", + "create_uid_value": "OdooBot", + "write_uid_value": "Romuald GRUSON" +} \ No newline at end of file diff --git a/filtered_tickets/ticket_T11011_raw.json b/filtered_tickets/ticket_T11011_raw.json new file mode 100644 index 0000000..1890c5d --- /dev/null +++ b/filtered_tickets/ticket_T11011_raw.json @@ -0,0 +1,3 @@ +[ + 10990 +] \ No newline at end of file diff --git a/menu_handlers.py b/menu_handlers.py index 8e0abe0..f086e2e 100644 --- a/menu_handlers.py +++ b/menu_handlers.py @@ -1,5 +1,9 @@ +import os +import json +from datetime import datetime +from utils import print_success, print_error, EXPORT_DIR, prompt_yes_no, INTERACTIVE, print_info from ticket_manager import TicketManager -from utils import print_error +from data_filter import run_filter_wizard # Initialisation de l'objet ticket_manager = TicketManager() @@ -157,4 +161,22 @@ def handle_extract_ticket_attachments(): if output_dir: print(f"\nExtraction terminée avec succès. Les fichiers ont été enregistrés dans: {output_dir}") else: - print_error(f"L'extraction a échoué pour le ticket avec l'ID {ticket_id}") \ No newline at end of file + print_error(f"L'extraction a échoué pour le ticket avec l'ID {ticket_id}") + +def handle_filter_html_messages(): + """Gère le filtrage des messages HTML dans les tickets exportés""" + print("\n==== FILTRAGE DES MESSAGES HTML ====") + + if not os.path.exists(EXPORT_DIR) or not os.listdir(EXPORT_DIR): + print_error(f"Aucun ticket exporté trouvé dans {EXPORT_DIR}. Veuillez d'abord exporter des tickets.") + return + + print_info("Cette fonctionnalité va analyser les tickets exportés et nettoyer les messages HTML.") + print_info("Les messages nettoyés seront sauvegardés dans un nouveau répertoire 'filtered_tickets'.") + + if INTERACTIVE and not prompt_yes_no("Voulez-vous continuer?"): + print_info("Opération annulée.") + return + + # Exécuter l'assistant de filtrage + run_filter_wizard() \ No newline at end of file diff --git a/menu_principal.py b/menu_principal.py index 62c66a0..e6a3d2f 100644 --- a/menu_principal.py +++ b/menu_principal.py @@ -4,7 +4,8 @@ from menu_handlers import ( handle_search_ticket_by_code, handle_list_models, handle_list_model_fields, - handle_extract_ticket_attachments + handle_extract_ticket_attachments, + handle_filter_html_messages ) def display_main_menu(): @@ -16,8 +17,9 @@ def display_main_menu(): print("4. Afficher la liste des modèles disponibles") print("5. Afficher les champs d'un modèle donné") print("6. Extraire les pièces jointes, messages et informations détaillées d'un ticket") - print("7. Quitter") - return input("\nChoisissez une option (1-7): ") + print("7. Filtrer les messages HTML des tickets exportés") + print("8. Quitter") + return input("\nChoisissez une option (1-8): ") def run_menu(): @@ -37,7 +39,9 @@ def run_menu(): elif choice == '6': handle_extract_ticket_attachments() elif choice == '7': + handle_filter_html_messages() + elif choice == '8': print("Au revoir!") break else: - print("Option invalide. Veuillez choisir entre 1 et 7.") \ No newline at end of file + print("Option invalide. Veuillez choisir entre 1 et 8.") \ No newline at end of file diff --git a/utils.py b/utils.py index de76502..bee6345 100644 --- a/utils.py +++ b/utils.py @@ -1,2 +1,29 @@ +import os + +# Répertoire d'exportation des tickets +EXPORT_DIR = "exported_tickets" + +# Mode interactif +INTERACTIVE = True + def print_error(message): - print(f" Erreur: {message}") \ No newline at end of file + print(f"\033[91m Erreur: {message}\033[0m") + +def print_success(message): + print(f"\033[92m Succès: {message}\033[0m") + +def print_info(message): + print(f"\033[94m Info: {message}\033[0m") + +def prompt_yes_no(question): + """ + Demande une confirmation oui/non à l'utilisateur. + + Args: + question: Question à poser + + Returns: + True si la réponse est 'o', False sinon + """ + answer = input(f"{question} (o/n): ").strip().lower() + return answer == 'o' \ No newline at end of file