Merge remote-tracking branch 'origin/dev_odex-event'
|
|
@ -0,0 +1 @@
|
|||
# takaful-project
|
||||
|
|
@ -0,0 +1 @@
|
|||
# Final comprehensive test - Thu Dec 4 11:23:01 +03 2025
|
||||
|
|
@ -0,0 +1 @@
|
|||
# Final definitive test Thu Dec 4 11:02:45 +03 2025
|
||||
|
|
@ -0,0 +1 @@
|
|||
# Test file created at Thu Dec 4 10:59:27 +03 2025
|
||||
|
|
@ -0,0 +1 @@
|
|||
# ULTIMATE FINAL TEST Thu Dec 4 11:06:45 +03 2025
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
from . import models
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
{
|
||||
'name': 'Events Custom',
|
||||
'version': '1.1.0',
|
||||
'website': 'https://www.odoo.com/page/events',
|
||||
'category': 'Odex25-Event/Odex25-Event',
|
||||
'summary': 'Add Extra Features to Event module',
|
||||
'description': """
|
||||
Events Custom.
|
||||
==============
|
||||
|
||||
Key Features
|
||||
------------
|
||||
* Edit in Email Schedule Add appility to send emails to Attendees after change in tracks
|
||||
* ...
|
||||
""",
|
||||
'depends': ['website_event_track','dms','project'],
|
||||
'data': [
|
||||
'data/email_template_data.xml',
|
||||
'views/dms_file_view.xml',
|
||||
'views/event_views.xml',
|
||||
'report/event_cards.xml',
|
||||
],
|
||||
'installable': True,
|
||||
'auto_install': False,
|
||||
}
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
<?xml version="1.0"?>
|
||||
<odoo>
|
||||
<data noupdate="1">
|
||||
<record id="event_subscription" model="mail.template">
|
||||
<field name="name">Event: Change in Tracks</field>
|
||||
<field name="model_id" ref="event.model_event_registration"/>
|
||||
<field name="email_from">${(object.event_id.organizer_id.email or object.event_id.user_id.email or '')|safe}</field>
|
||||
<field name="email_to" >${object.partner_id.email or object.email|safe}</field>
|
||||
<field name="lang">${object.partner_id.lang}</field>
|
||||
<field name="reply_to" eval="False"/>
|
||||
<field name="subject">Some event Tracks has been changed : ${object.event_id.name}</field>
|
||||
<field name="body_html"><![CDATA[
|
||||
<div style="background:#F3F5F6;color:#515166;padding:25px 0px;font-family:Arial,Helvetica,sans-serif;font-size:14px;">
|
||||
% set date_begin = format_tz(object.event_id.date_begin, tz='UTC', format='%Y%m%dT%H%M%SZ')
|
||||
% set date_end = format_tz(object.event_id.date_end, tz='UTC', format='%Y%m%dT%H%M%SZ')
|
||||
<table style="width:600px;margin:5px auto;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<a href="/">
|
||||
<img src="/logo" alt="${object.company_id.name}" style="vertical-align:baseline;max-width:100px;" />
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
|
||||
<p>Details of the event Track changes</p>
|
||||
<ul>
|
||||
% for line in object.event_id.event_mail_ids:
|
||||
% if line.interval_type == 'after_change_tracks':
|
||||
% for rec in line.mail_track_ids:
|
||||
% if not rec.mail_sent:
|
||||
|
||||
<li>
|
||||
Track ${rec.track_id.name} changed From ${rec.change_date_from} To ${rec.change_date_to}
|
||||
</li>
|
||||
% endif
|
||||
% endfor
|
||||
% endif
|
||||
% endfor
|
||||
</ul>
|
||||
</td>
|
||||
|
||||
<td style="text-align:right;vertical-align:middle;">
|
||||
% if 'website_url' in object.website_url and object.event_id.website_url:
|
||||
<a href="${object.event_id.website_url}" style="background-color: #1abc9c; padding: 12px; font-weight: 12px; text-decoration: none; color: #fff; border-radius: 5px; font-size:16px;">View Event</a>
|
||||
% endif
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
]]></field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,495 @@
|
|||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * event_custom
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 11.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-02-10 21:22+0000\n"
|
||||
"PO-Revision-Date: 2023-02-10 21:22+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:mail.template,body_html:event_custom.event_subscription
|
||||
msgid "\n"
|
||||
"<div style=\"background:#F3F5F6;color:#515166;padding:25px 0px;font-family:Arial,Helvetica,sans-serif;font-size:14px;\">\n"
|
||||
"% set date_begin = format_tz(object.event_id.date_begin, tz='UTC', format='%Y%m%dT%H%M%SZ')\n"
|
||||
"% set date_end = format_tz(object.event_id.date_end, tz='UTC', format='%Y%m%dT%H%M%SZ')\n"
|
||||
" <table style=\"width:600px;margin:5px auto;\">\n"
|
||||
" <tbody>\n"
|
||||
" <tr>\n"
|
||||
" <td>\n"
|
||||
" <a href=\"/\">\n"
|
||||
" <img src=\"/logo\" alt=\"${object.company_id.name}\" style=\"vertical-align:baseline;max-width:100px;\" />\n"
|
||||
" </a>\n"
|
||||
" </td>\n"
|
||||
" <td>\n"
|
||||
"\n"
|
||||
" <p>Details of the event Track changes</p>\n"
|
||||
"<ul>\n"
|
||||
"% for line in object.event_id.event_mail_ids:\n"
|
||||
"% if line.interval_type == 'after_change_tracks':\n"
|
||||
"% for rec in line.mail_track_ids:\n"
|
||||
"% if not rec.mail_sent:\n"
|
||||
"\n"
|
||||
"<li>\n"
|
||||
" Track ${rec.track_id.name} changed From ${rec.change_date_from} To ${rec.change_date_to}\n"
|
||||
" </li>\n"
|
||||
"% endif\n"
|
||||
"% endfor\n"
|
||||
"% endif\n"
|
||||
"% endfor\n"
|
||||
"</ul>\n"
|
||||
"</td>\n"
|
||||
"\n"
|
||||
" <td style=\"text-align:right;vertical-align:middle;\">\n"
|
||||
" % if 'website_url' in object.website_url and object.event_id.website_url:\n"
|
||||
" <a href=\"${object.event_id.website_url}\" style=\"background-color: #1abc9c; padding: 12px; font-weight: 12px; text-decoration: none; color: #fff; border-radius: 5px; font-size:16px;\">View Event</a>\n"
|
||||
" % endif\n"
|
||||
" </td>\n"
|
||||
" </tr>\n"
|
||||
" </tbody>\n"
|
||||
" </table>\n"
|
||||
"</div>\n"
|
||||
" "
|
||||
msgstr "\n"
|
||||
"<div style=\"background:#F3F5F6;color:#515166;padding:25px 0px;font-family:Arial,Helvetica,sans-serif;font-size:14px;\">\n"
|
||||
"% set date_begin = format_tz(object.event_id.date_begin, tz='UTC', format='%Y%m%dT%H%M%SZ')\n"
|
||||
"% set date_end = format_tz(object.event_id.date_end, tz='UTC', format='%Y%m%dT%H%M%SZ')\n"
|
||||
" <table style=\"width:600px;margin:5px auto;\">\n"
|
||||
" <tbody>\n"
|
||||
" <tr>\n"
|
||||
" <td>\n"
|
||||
" <a href=\"/\">\n"
|
||||
" <img src=\"/logo\" alt=\"${object.company_id.name}\" style=\"vertical-align:baseline;max-width:100px;\" />\n"
|
||||
" </a>\n"
|
||||
" </td>\n"
|
||||
" <td>\n"
|
||||
"\n"
|
||||
" <p>Details of the event Track changes</p>\n"
|
||||
"<ul>\n"
|
||||
"% for line in object.event_id.event_mail_ids:\n"
|
||||
"% if line.interval_type == 'after_change_tracks':\n"
|
||||
"% for rec in line.mail_track_ids:\n"
|
||||
"% if not rec.mail_sent:\n"
|
||||
"\n"
|
||||
"<li>\n"
|
||||
" Track ${rec.track_id.name} changed From ${rec.change_date_from} To ${rec.change_date_to}\n"
|
||||
" </li>\n"
|
||||
"% endif\n"
|
||||
"% endfor\n"
|
||||
"% endif\n"
|
||||
"% endfor\n"
|
||||
"</ul>\n"
|
||||
"</td>\n"
|
||||
"\n"
|
||||
" <td style=\"text-align:right;vertical-align:middle;\">\n"
|
||||
" % if 'website_url' in object.website_url and object.event_id.website_url:\n"
|
||||
" <a href=\"${object.event_id.website_url}\" style=\"background-color: #1abc9c; padding: 12px; font-weight: 12px; text-decoration: none; color: #fff; border-radius: 5px; font-size:16px;\">View Event</a>\n"
|
||||
" % endif\n"
|
||||
" </td>\n"
|
||||
" </tr>\n"
|
||||
" </tbody>\n"
|
||||
" </table>\n"
|
||||
"</div>\n"
|
||||
" "
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.model.fields,field_description:event_custom.field_event_event_benefit_club_id
|
||||
msgid "Benefit Club"
|
||||
msgstr "نادي المستفيدين"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.ui.view,arch_db:event_custom.view_event_search
|
||||
msgid "Cancelled"
|
||||
msgstr "ملغى "
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.model.fields,field_description:event_custom.field_event_sponsor_event_type_id
|
||||
msgid "Category"
|
||||
msgstr "النوع"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.ui.view,arch_db:event_custom.print_event_card1
|
||||
#: model:ir.ui.view,arch_db:event_custom.print_event_card2
|
||||
#: model:ir.ui.view,arch_db:event_custom.print_event_card3
|
||||
#: model:ir.ui.view,arch_db:event_custom.print_event_card4
|
||||
msgid "Company Logo"
|
||||
msgstr "شعار الشركة"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.model.fields,field_description:event_custom.field_event_sponsor_type_sponsor_cost
|
||||
msgid "Cost"
|
||||
msgstr "التكلفة"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.model.fields,field_description:event_custom.field_event_mail_track_create_uid
|
||||
msgid "Created by"
|
||||
msgstr "أنشئ بواسطة"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.model.fields,field_description:event_custom.field_event_mail_track_create_date
|
||||
msgid "Created on"
|
||||
msgstr "أنشئ في"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.model.fields,field_description:event_custom.field_event_mail_track_display_name
|
||||
msgid "Display Name"
|
||||
msgstr "الاسم المعروض"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.ui.view,arch_db:event_custom.view_event_search
|
||||
msgid "Done"
|
||||
msgstr "منتهي"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.model,name:event_custom.model_event_event
|
||||
#: model:ir.model.fields,field_description:event_custom.field_muk_dms_file_event_id
|
||||
msgid "Event"
|
||||
msgstr "الحدث"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.model,name:event_custom.model_event_mail
|
||||
msgid "Event Automated Mailing"
|
||||
msgstr "إرسال رسائل الفعاليات تلقائيًا"
|
||||
|
||||
#. module: event_custom
|
||||
#: code:addons/event_custom/models/event.py:79
|
||||
#, python-format
|
||||
msgid "Event Files"
|
||||
msgstr "Event Files"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.model.fields,field_description:event_custom.field_event_event_image
|
||||
#: model:ir.ui.view,arch_db:event_custom.print_event_card1
|
||||
#: model:ir.ui.view,arch_db:event_custom.print_event_card2
|
||||
#: model:ir.ui.view,arch_db:event_custom.print_event_card3
|
||||
#: model:ir.ui.view,arch_db:event_custom.print_event_card4
|
||||
msgid "Event Image"
|
||||
msgstr "Event Image"
|
||||
|
||||
#. module: event_custom
|
||||
#: code:addons/event_custom/models/event.py:98
|
||||
#, python-format
|
||||
msgid "Event Mails"
|
||||
msgstr "Event Mails"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.model,name:event_custom.model_event_sponsor
|
||||
msgid "Event Sponsor"
|
||||
msgstr "Event Sponsor"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.model,name:event_custom.model_event_sponsor_type
|
||||
msgid "Event Sponsor Type"
|
||||
msgstr "Event Sponsor Type"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.model,name:event_custom.model_event_track
|
||||
msgid "Event Track"
|
||||
msgstr "Event Track"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.model.fields,field_description:event_custom.field_event_sponsor_date
|
||||
msgid "Event date"
|
||||
msgstr "Event date"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.ui.menu,name:event_custom.menu_event_sponsor
|
||||
msgid "Events Sponsor"
|
||||
msgstr "Events Sponsor"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.ui.menu,name:event_custom.menu_event_track
|
||||
msgid "Events Tracks"
|
||||
msgstr "فقرات الفعالية"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.actions.act_window,name:event_custom.action_event_sponsor_view
|
||||
msgid "Events sponsor"
|
||||
msgstr "Events sponsor"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.actions.act_window,name:event_custom.action_event_track_view
|
||||
msgid "Events track"
|
||||
msgstr "Events track"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.model,name:event_custom.model_muk_dms_file
|
||||
msgid "File"
|
||||
msgstr "الملف"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.model.fields,field_description:event_custom.field_event_event_count_files
|
||||
#: model:ir.model.fields,field_description:event_custom.field_event_event_event_dms_file_ids
|
||||
#: model:ir.ui.view,arch_db:event_custom.view_event_form
|
||||
msgid "Files"
|
||||
msgstr "الملفات"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.model.fields,field_description:event_custom.field_event_mail_track_id
|
||||
msgid "ID"
|
||||
msgstr "المعرف"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.model.fields,field_description:event_custom.field_event_mail_track___last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr "آخر تعديل في"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.ui.view,arch_db:event_custom.view_event_search
|
||||
#: model:ir.ui.view,arch_db:event_custom.view_event_sponsor_search
|
||||
#: model:ir.ui.view,arch_db:event_custom.view_event_track_search
|
||||
msgid "Last Month"
|
||||
msgstr "آخر شهر"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.model.fields,field_description:event_custom.field_event_mail_track_write_uid
|
||||
msgid "Last Updated by"
|
||||
msgstr "آخر تحديث بواسطة"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.model.fields,field_description:event_custom.field_event_mail_track_write_date
|
||||
msgid "Last Updated on"
|
||||
msgstr "آخر تحديث في"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.ui.view,arch_db:event_custom.view_event_search
|
||||
#: model:ir.ui.view,arch_db:event_custom.view_event_sponsor_search
|
||||
#: model:ir.ui.view,arch_db:event_custom.view_event_track_search
|
||||
msgid "Last Year"
|
||||
msgstr "السنة السابقة"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.model.fields,field_description:event_custom.field_event_track_location_location_url
|
||||
msgid "Location URL"
|
||||
msgstr "موقع الحدث"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.model.fields,field_description:event_custom.field_event_mail_track_scheduler_id
|
||||
msgid "Mail Scheduler"
|
||||
msgstr "مجدول رسائل البريد"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.model.fields,field_description:event_custom.field_event_mail_track_mail_sent
|
||||
msgid "Mail Sent"
|
||||
msgstr "تم إرسال الرسالة"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.model.fields,field_description:event_custom.field_event_mail_mail_track_ids
|
||||
msgid "Mail Track"
|
||||
msgstr "Mail Track"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.model.fields,field_description:event_custom.field_event_event_count_mails
|
||||
#: model:ir.ui.view,arch_db:event_custom.view_event_form
|
||||
msgid "Mails"
|
||||
msgstr "Mails"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.model.fields,field_description:event_custom.field_event_event_directory_id
|
||||
msgid "Main directory"
|
||||
msgstr "ملفات المسابقة"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.model.fields,field_description:event_custom.field_event_mail_track_change_date_to
|
||||
msgid "New Time"
|
||||
msgstr "New Time"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.model.fields,field_description:event_custom.field_event_mail_track_change_date_from
|
||||
msgid "Old Time"
|
||||
msgstr "Old Time"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.actions.report,name:event_custom.hr_event_print_card2
|
||||
msgid "Print female Organizer card"
|
||||
msgstr "Print female Organizer card"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.actions.report,name:event_custom.hr_event_print_card4
|
||||
msgid "Print female volunteer card"
|
||||
msgstr "Print female volunteer card"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.actions.report,name:event_custom.hr_event_print_card1
|
||||
msgid "Print male Organizer card"
|
||||
msgstr "Print male Organizer card"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.actions.report,name:event_custom.hr_event_print_card3
|
||||
msgid "Print male volunteer card"
|
||||
msgstr "Print male volunteer card"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.model.fields,field_description:event_custom.field_event_event_project_id
|
||||
msgid "Project"
|
||||
msgstr "المشروع"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:mail.template,subject:event_custom.event_subscription
|
||||
msgid "Some event Tracks has been changed : ${object.event_id.name}"
|
||||
msgstr "Some event Tracks has been changed : ${object.event_id.name}"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.ui.view,arch_db:event_custom.event_sponsor_view_pivot
|
||||
msgid "Sponsor"
|
||||
msgstr "كفيل"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.ui.view,arch_db:event_custom.view_event_search
|
||||
#: model:ir.ui.view,arch_db:event_custom.view_event_sponsor_search
|
||||
#: model:ir.ui.view,arch_db:event_custom.view_event_track_search
|
||||
msgid "This Month"
|
||||
msgstr "هذا الشهر"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.ui.view,arch_db:event_custom.view_event_search
|
||||
#: model:ir.ui.view,arch_db:event_custom.view_event_sponsor_search
|
||||
#: model:ir.ui.view,arch_db:event_custom.view_event_track_search
|
||||
msgid "This Year"
|
||||
msgstr "هذه السنة"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.ui.view,arch_db:event_custom.event_track_view_pivot
|
||||
msgid "Track"
|
||||
msgstr "مسار"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.ui.view,arch_db:event_custom.view_event_mail_form
|
||||
msgid "Track Changes Mails"
|
||||
msgstr "Track Changes Mails"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.model,name:event_custom.model_event_track_location
|
||||
msgid "Track Location"
|
||||
msgstr "موقع المسار "
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.model.fields,field_description:event_custom.field_event_mail_track_track_id
|
||||
msgid "Tracks"
|
||||
msgstr "فقرات الفعالية"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.model,name:event_custom.model_event_mail_track
|
||||
msgid "Tracks change Mail Scheduler"
|
||||
msgstr "Tracks change Mail Scheduler"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.ui.view,arch_db:event_custom.print_event_card1
|
||||
#: model:ir.ui.view,arch_db:event_custom.print_event_card2
|
||||
#: model:ir.ui.view,arch_db:event_custom.print_event_card3
|
||||
#: model:ir.ui.view,arch_db:event_custom.print_event_card4
|
||||
msgid "sponsor Image"
|
||||
msgstr "sponsor Image"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.ui.view,arch_db:event_custom.print_event_card3
|
||||
msgid "متطوع"
|
||||
msgstr "متطوع"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.ui.view,arch_db:event_custom.print_event_card4
|
||||
msgid "متطوعة"
|
||||
msgstr "متطوعة"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.ui.view,arch_db:event_custom.print_event_card1
|
||||
msgid "منظم"
|
||||
msgstr "منظم"
|
||||
|
||||
#. module: event_custom
|
||||
#: model:ir.ui.view,arch_db:event_custom.print_event_card2
|
||||
msgid "منظمة"
|
||||
msgstr "منظمة"
|
||||
|
||||
#. module: event
|
||||
#: model:event.type,name:event.event_type_data_online
|
||||
#: model:ir.ui.view,arch_db:event.view_event_form
|
||||
msgid "Online"
|
||||
msgstr "عن بُعد"
|
||||
|
||||
#. module: website_event
|
||||
#: model:ir.model.fields,field_description:website_event.field_event_event_website_menu
|
||||
msgid "Dedicated Menu"
|
||||
msgstr "حضوري"
|
||||
|
||||
#. module: website_event_track
|
||||
#: model:ir.model.fields,field_description:website_event_track.field_event_track_partner_id
|
||||
msgid "Speaker"
|
||||
msgstr "المتحدث"
|
||||
|
||||
#. module: website_event_track
|
||||
#: model:ir.model.fields,field_description:website_event_track.field_event_track_partner_name
|
||||
msgid "Speaker Name"
|
||||
msgstr "اسم المتحدث"
|
||||
|
||||
#. module: website_event_track
|
||||
#: model:ir.model.fields,field_description:website_event_track.field_event_track_partner_phone
|
||||
msgid "Speaker Phone"
|
||||
msgstr "هاتف المتحدث"
|
||||
|
||||
#. module: website_event_track
|
||||
#: code:addons/website_event_track/models/event_track.py:159
|
||||
#: model:ir.model.fields,field_description:website_event_track.field_event_track_partner_email
|
||||
#, python-format
|
||||
msgid "Speaker Email"
|
||||
msgstr "البريد الالكتروني للمتحدث"
|
||||
|
||||
#. module: website_event_track
|
||||
#: model:ir.actions.act_window,name:website_event_track.action_event_sponsor_from_event
|
||||
#: model:ir.actions.act_window,name:website_event_track.action_event_track
|
||||
#: model:ir.actions.act_window,name:website_event_track.action_event_track_from_event
|
||||
#: model:ir.ui.menu,name:website_event_track.menu_event_track
|
||||
#: model:ir.ui.view,arch_db:website_event_track.view_event_track_calendar
|
||||
#: model:ir.ui.view,arch_db:website_event_track.view_event_track_search
|
||||
msgid "Event Tracks"
|
||||
msgstr "فقرات الفعالية"
|
||||
|
||||
#. module: event
|
||||
#: model:ir.ui.menu,name:event.menu_event_mail_schedulers
|
||||
msgid "Mail Schedulers"
|
||||
msgstr "الرسائل المجدولة للفعالية"
|
||||
|
||||
#. module: website_event_track
|
||||
#: model:ir.model.fields,field_description:website_event_track.field_event_event_track_count
|
||||
#: model:ir.model.fields,field_description:website_event_track.field_event_event_track_ids
|
||||
#: model:ir.model.fields,field_description:website_event_track.field_event_track_tag_track_ids
|
||||
#: model:ir.ui.view,arch_db:website_event_track.view_event_track_graph
|
||||
msgid "Tracks"
|
||||
msgstr "فقرات الفعالية"
|
||||
|
||||
#. module: sale_timesheet
|
||||
#: model:ir.model.fields,field_description:sale_timesheet.field_project_task_sale_line_id
|
||||
#: model:ir.ui.view,arch_db:sale_timesheet.view_sale_service_inherit_form2
|
||||
msgid "Sales Order Item"
|
||||
msgstr "تكلفة تنفيذ المهمة"
|
||||
|
||||
#. module: project
|
||||
#: model:ir.ui.view,arch_db:project.project_planner
|
||||
msgid "Tasks analysis"
|
||||
msgstr "تقرير مالي للفعالية"
|
||||
|
||||
#. module: web
|
||||
#. openerp-web
|
||||
#: code:addons/web/static/src/xml/base.xml:508 code:addons/web/static/src/xml/base.xml:535
|
||||
#, python-format
|
||||
msgid "Measures"
|
||||
msgstr "عناصر فرز التقرير"
|
||||
|
||||
#. module: project
|
||||
#: model:ir.actions.act_window,name:project.action_project_task_user_tree
|
||||
#: model:ir.actions.act_window,name:project.action_project_task_user_tree_filtered
|
||||
#: model:ir.ui.menu,name:project.menu_project_report_task_analysis
|
||||
#: model:ir.ui.view,arch_db:project.view_task_project_user_graph
|
||||
#: model:ir.ui.view,arch_db:project.view_task_project_user_pivot
|
||||
#: model:ir.ui.view,arch_db:project.view_task_project_user_search
|
||||
msgid "Tasks Analysis"
|
||||
msgstr "تقرير مالي للفعالية"
|
||||
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
from . import event
|
||||
from . import event_mail
|
||||
from . import dms_file
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from odoo import models, fields
|
||||
import unused_module # F401
|
||||
|
||||
class CodeQualityPRTest(models.Model):
|
||||
_name = 'code.quality.test'
|
||||
|
||||
name = fields.Char('Name')
|
||||
|
||||
# E501
|
||||
very_long_field = fields.Text('Field', help='This is an extremely long help text that exceeds the 120 character limit that we have configured in our flake8 settings')
|
||||
|
||||
# F821
|
||||
def buggy_method(self):
|
||||
return undefined + 1
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
from odoo import models, api, fields, tools
|
||||
|
||||
|
||||
|
||||
class File(models.Model):
|
||||
_inherit = 'dms.file'
|
||||
|
||||
event_id = fields.Many2one('event.event', 'Event')
|
||||
|
|
@ -0,0 +1,142 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
from odoo import _, api, fields, models
|
||||
|
||||
class Track(models.Model):
|
||||
_inherit = "event.track"
|
||||
|
||||
|
||||
# @api.multi
|
||||
def write(self, vals):
|
||||
if 'date' in vals:
|
||||
onchange_schedulers = self.event_id.event_mail_ids.filtered(lambda s: s.interval_type == 'after_change_tracks')
|
||||
onchange_schedulers.with_context(track_change={'id':self.id,'change_date_from':self.date,'change_date_to':vals['date']}).execute()
|
||||
res = super(Track, self).write(vals)
|
||||
return res
|
||||
|
||||
class EventEvent(models.Model):
|
||||
_inherit = 'event.event'
|
||||
|
||||
directory_id = fields.Many2one('muk_dms.directory', 'Main directory')
|
||||
benefit_club_id = fields.Many2one('benefit.club', 'Benefit Club',domain =[('state', '=', 'approve')])
|
||||
event_dms_file_ids = fields.One2many('dms.file', 'event_id', string='Files', copy=False)
|
||||
count_files = fields.Integer(
|
||||
compute='_compute_count_files',
|
||||
store=True,
|
||||
string="Files")
|
||||
event_mail_ids = fields.One2many('event.mail', 'event_id', string='Mails', copy=False)
|
||||
count_mails = fields.Integer(
|
||||
compute='_compute_count_mail',
|
||||
store=True,
|
||||
string="Mails")
|
||||
image = fields.Binary("Event Image", attachment=True)
|
||||
project_id = fields.Many2one('project.project',string='Project',index=True,tracking=True)
|
||||
|
||||
# @api.multi
|
||||
def write(self, vals):
|
||||
res = super(EventEvent, self).write(vals)
|
||||
for benifit in self.benefit_club_id.benefit_ids:
|
||||
values = {
|
||||
'email': benifit.email,
|
||||
'event_id': self.id,
|
||||
'name': benifit.name,
|
||||
'phone': benifit.phone}
|
||||
registration_exist = self.env['event.registration'].search(
|
||||
[('email', '=', benifit.email), ('event_id', '=', self.id)], limit=1)
|
||||
if registration_exist:
|
||||
continue;
|
||||
else:
|
||||
self.env['event.registration'].create(values)
|
||||
return res
|
||||
|
||||
# @api.onchange('benefit_club_id')
|
||||
# def onchange_benefit_club_id(self):
|
||||
# for record in self:
|
||||
# for benifit in record.benefit_club_id.benefit_ids:
|
||||
# values = {
|
||||
# 'email': benifit.email,
|
||||
# 'event_id': self._origin.id,
|
||||
# 'name': benifit.name,
|
||||
# 'phone': benifit.phone }
|
||||
# record.env['event.registration'].create(values)
|
||||
# # record.write({'registration_ids':values})
|
||||
|
||||
@api.depends('event_dms_file_ids')
|
||||
def _compute_count_files(self):
|
||||
for record in self:
|
||||
record.count_files = len(record.event_dms_file_ids)
|
||||
|
||||
@api.depends('event_mail_ids')
|
||||
def _compute_count_mail(self):
|
||||
for record in self:
|
||||
record.count_mails = len(record.event_mail_ids)
|
||||
|
||||
@api.model
|
||||
def create(self, vals):
|
||||
res = super(EventEvent, self).create(vals)
|
||||
if not res.directory_id:
|
||||
directory = self.env['muk_dms.directory'].sudo().create({
|
||||
'name': res.name,
|
||||
'is_root_directory': True,
|
||||
#TODO review how to get settings
|
||||
'settings': self.env['muk_dms.settings'].search([],limit=1).id,
|
||||
})
|
||||
res.directory_id = directory.id
|
||||
return res
|
||||
|
||||
# @api.multi
|
||||
def action_open_files(self):
|
||||
"""
|
||||
"""
|
||||
ctx = dict(
|
||||
default_event_id=self.id,
|
||||
default_directory=self.directory_id.id,
|
||||
)
|
||||
return {
|
||||
'name': _('Event Files'),
|
||||
'type': 'ir.actions.act_window',
|
||||
'view_type': 'form',
|
||||
'view_mode': 'tree,form',
|
||||
'res_model': 'dms.file',
|
||||
'target': 'current',
|
||||
'context': ctx,
|
||||
'domain':[("event_id", "=", self.id)]
|
||||
}
|
||||
|
||||
# @api.multi
|
||||
def action_open_mail(self):
|
||||
"""
|
||||
"""
|
||||
ctx = dict(
|
||||
default_event_id=self.id,
|
||||
default_directory=self.directory_id.id,
|
||||
)
|
||||
return {
|
||||
'name': _('Event Mails'),
|
||||
'type': 'ir.actions.act_window',
|
||||
'view_type': 'form',
|
||||
'view_mode': 'tree,form',
|
||||
'res_model': 'event.mail',
|
||||
'target': 'current',
|
||||
'context': ctx,
|
||||
'domain': [("event_id", "=", self.id)]
|
||||
}
|
||||
|
||||
|
||||
class Sponsor(models.Model):
|
||||
_inherit = "event.sponsor"
|
||||
|
||||
date = fields.Datetime(string='Event date', related="event_id.date_begin",store=True)
|
||||
event_type_id = fields.Many2one('event.type', string='Category',related="event_id.event_type_id",store=True)
|
||||
|
||||
class SponsorType(models.Model):
|
||||
_inherit = "event.sponsor.type"
|
||||
|
||||
sponsor_cost = fields.Float("Cost")
|
||||
|
||||
class TrackLocation(models.Model):
|
||||
_inherit = "event.track.location"
|
||||
|
||||
location_url = fields.Char("Location URL")
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,81 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
from datetime import datetime
|
||||
from dateutil.relativedelta import relativedelta
|
||||
|
||||
from odoo import api, fields, models, tools
|
||||
from odoo.tools import exception_to_unicode
|
||||
from odoo.tools.translate import _
|
||||
|
||||
import random
|
||||
import logging
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
_INTERVALS = {
|
||||
'hours': lambda interval: relativedelta(hours=interval),
|
||||
'days': lambda interval: relativedelta(days=interval),
|
||||
'weeks': lambda interval: relativedelta(days=7*interval),
|
||||
'months': lambda interval: relativedelta(months=interval),
|
||||
'now': lambda interval: relativedelta(hours=0),
|
||||
}
|
||||
|
||||
|
||||
|
||||
class EventMailScheduler(models.Model):
|
||||
_inherit = 'event.mail'
|
||||
|
||||
interval_type = fields.Selection(selection_add = [('after_change_tracks', 'After Change in Tracks')],ondelete={'after_change_tracks': 'set default'})
|
||||
mail_track_ids = fields.One2many('event.mail.track', 'scheduler_id')
|
||||
|
||||
# @api.one
|
||||
@api.depends('mail_sent', 'interval_type', 'event_id.registration_ids','mail_track_ids','mail_track_ids.mail_sent', 'mail_registration_ids')
|
||||
def _compute_done(self):
|
||||
"""
|
||||
overwrite to include new interval type After Change in Tracks
|
||||
"""
|
||||
if self.interval_type in ['before_event', 'after_event']:
|
||||
self.done = self.mail_sent
|
||||
elif self.interval_type in ['after_sub']:
|
||||
self.done = len(self.mail_registration_ids) == len(self.event_id.registration_ids) and all(mail.mail_sent for mail in self.mail_registration_ids)
|
||||
else:
|
||||
self.done = all(mail.mail_sent for mail in self.mail_track_ids)
|
||||
|
||||
# @api.one
|
||||
def execute(self):
|
||||
"""
|
||||
inherit to include new interval type After Change in Tracks
|
||||
"""
|
||||
result = super(EventMailScheduler, self).execute()
|
||||
now = fields.Datetime.now()
|
||||
if self.interval_type == 'after_change_tracks' and self._context.get('track_change',False):
|
||||
# update Tracks change lines
|
||||
track_change = self._context.get('track_change',False)
|
||||
lines = [
|
||||
(0, 0, {'track_id': track_change['id'],'change_date_from':track_change['change_date_from'],'change_date_to':track_change['change_date_to']})
|
||||
]
|
||||
if lines:
|
||||
self.write({'mail_track_ids': lines})
|
||||
# execute scheduler on registrations
|
||||
self.mail_track_ids.execute()
|
||||
return result
|
||||
|
||||
|
||||
|
||||
class EventMailRegistration(models.Model):
|
||||
_name = 'event.mail.track'
|
||||
_description = 'Tracks change Mail Scheduler'
|
||||
_rec_name = 'scheduler_id'
|
||||
_order = 'change_date_to DESC'
|
||||
|
||||
scheduler_id = fields.Many2one('event.mail', 'Mail Scheduler', required=True, ondelete='cascade')
|
||||
track_id = fields.Many2one('event.track', 'Tracks', required=True, ondelete='cascade')
|
||||
change_date_from = fields.Datetime('Old Time')
|
||||
change_date_to = fields.Datetime('New Time')
|
||||
mail_sent = fields.Boolean('Mail Sent')
|
||||
|
||||
# @api.one
|
||||
def execute(self):
|
||||
if not self.mail_sent:
|
||||
for registration in self.track_id.event_id.registration_ids:
|
||||
self.scheduler_id.template_id.send_mail(registration.id)
|
||||
self.write({'mail_sent': True})
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from odoo import models, fields
|
||||
import os # F401: unused import
|
||||
|
||||
class FinalQualityTest(models.Model):
|
||||
_name = 'final.quality.test'
|
||||
|
||||
name = fields.Char('Name')
|
||||
|
||||
# E501: line too long
|
||||
description = fields.Text('Description', help='This is a very very very long help text that exceeds 120 characters limit set by our flake8 configuration')
|
||||
|
||||
# F821: undefined name
|
||||
def test_method(self):
|
||||
return some_undefined_variable + 5
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from odoo import models, fields
|
||||
import sys # F401: unused import
|
||||
|
||||
class QualityTest(models.Model):
|
||||
_name = 'quality.test'
|
||||
_description = 'Code Quality Test'
|
||||
|
||||
name = fields.Char('Name', required=True)
|
||||
|
||||
# E501: line too long
|
||||
description = fields.Text('Description', help='This is an extremely long help text that definitely exceeds the maximum recommended line length of 120 characters for PEP8 compliance')
|
||||
|
||||
# F821: undefined variable
|
||||
def broken_method(self):
|
||||
return undefined_var + 10
|
||||
|
||||
# W293: blank line contains whitespace
|
||||
|
||||
# E225: missing whitespace around operator
|
||||
count=fields.Integer(default=0)
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from odoo import models, fields, api
|
||||
import sys # Unused import - will trigger F401
|
||||
|
||||
class EventErrorTest(models.Model):
|
||||
_name = 'event.error.test'
|
||||
_description = 'Test Model with Errors'
|
||||
|
||||
name = fields.Char(string='Name', required=True)
|
||||
|
||||
# ERROR 1: Syntax error - missing colon after function definition
|
||||
def broken_method(self)
|
||||
return "This will cause syntax error"
|
||||
|
||||
# ERROR 2: Line too long (PEP8 E501)
|
||||
description = fields.Text(string='This is an extremely long field description that definitely exceeds the maximum line length of 79 characters recommended by PEP8 style guide')
|
||||
|
||||
# ERROR 3: Undefined variable
|
||||
def process_data(self):
|
||||
result = undefined_variable_name + 10 # F821: undefined name
|
||||
return result
|
||||
|
||||
# ERROR 4: Unused variable
|
||||
def calculate(self):
|
||||
unused_var = 100 # F841: local variable assigned but never used
|
||||
return 50
|
||||
|
||||
# ERROR 5: Multiple statements on one line (E701)
|
||||
def compact(self): x = 1; y = 2; return x + y
|
||||
|
||||
# ERROR 6: Trailing whitespace (W291)
|
||||
status = fields.Selection([('draft', 'Draft'), ('done', 'Done')])
|
||||
|
||||
# ERROR 7: Missing whitespace around operator (E225)
|
||||
count=fields.Integer(default=0)
|
||||
|
|
@ -0,0 +1,259 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<report
|
||||
id="hr_event_print_card1"
|
||||
string="Print male Organizer card"
|
||||
model="event.event"
|
||||
report_type="qweb-pdf"
|
||||
name="event_custom.print_event_card1"
|
||||
file="event_custom.print_event_card1"
|
||||
print_report_name="'Print card - %s' % (object.name).replace('/', '')"
|
||||
/>
|
||||
|
||||
<report
|
||||
id="hr_event_print_card2"
|
||||
string="Print female Organizer card"
|
||||
model="event.event"
|
||||
report_type="qweb-pdf"
|
||||
name="event_custom.print_event_card2"
|
||||
file="event_custom.print_event_card2"
|
||||
print_report_name="'Print card - %s' % (object.name).replace('/', '')"
|
||||
/>
|
||||
|
||||
<report
|
||||
id="hr_event_print_card3"
|
||||
string="Print male volunteer card"
|
||||
model="event.event"
|
||||
report_type="qweb-pdf"
|
||||
name="event_custom.print_event_card3"
|
||||
file="event_custom.print_event_card3"
|
||||
print_report_name="'Print card - %s' % (object.name).replace('/', '')"
|
||||
/>
|
||||
|
||||
<report
|
||||
id="hr_event_print_card4"
|
||||
string="Print female volunteer card"
|
||||
model="event.event"
|
||||
report_type="qweb-pdf"
|
||||
name="event_custom.print_event_card4"
|
||||
file="event_custom.print_event_card4"
|
||||
print_report_name="'Print card - %s' % (object.name).replace('/', '')"
|
||||
/>
|
||||
|
||||
<template id="print_event_card1">
|
||||
<t t-call="web.basic_layout">
|
||||
<div class="page">
|
||||
<t t-foreach="docs" t-as="o">
|
||||
<div class="col-sm-6">
|
||||
<table style="width:243pt; height:153pt; border: 1pt solid black; border-collapse:separate; border-radius:8pt; margin:5pt">
|
||||
<tr style="height:30%;" align="center">
|
||||
<td>
|
||||
<table>
|
||||
<td>
|
||||
<tr>
|
||||
<td align="center" valign="center">
|
||||
<img t-if="o.company_id and o.company_id.logo" t-att-src="'data:image/png;base64,%s' % to_text(o.company_id.logo)" style="max-height:45pt;max-width:90%" alt="Company Logo"/>
|
||||
</td>
|
||||
<!-- <td align="center" valign="center">
|
||||
<img t-if="o.company_id and o.company_id.logo" t-att-src="'data:image/png;base64,%s' % to_text(o.company_id.logo)" style="max-height:45pt;max-width:90%" alt="Company Logo"/>
|
||||
</td> -->
|
||||
<td align="center" valign="center">
|
||||
<img t-if="o.image" t-att-src="'data:image/png;base64,%s' % to_text(o.image)" style="max-height:85pt;max-width:90%" alt="Event Image"/>
|
||||
</td>
|
||||
</tr>
|
||||
</td>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr style="height:60%" align="center">
|
||||
<td valign="center">
|
||||
<table>
|
||||
<tr><th><div style="font-size:15pt; margin-bottom:0pt;margin-top:0pt;" valign="center">منظم</div></th></tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr style="height:10%" align="center">
|
||||
<td>
|
||||
<table>
|
||||
<tr><td>
|
||||
<t t-foreach="o.sponsor_ids" t-as="sponsor">
|
||||
<t t-if="sponsor.partner_id.image">
|
||||
<!-- <span t-field="sponsor.partner_id.image"/> -->
|
||||
<img t-att-src="'data:image/png;base64,%s' % to_text(sponsor.partner_id.image)" style="max-height:30pt;max-width:200pt" alt="sponsor Image"/>
|
||||
</t>
|
||||
</t>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</t>
|
||||
</div>
|
||||
</t>
|
||||
</template>
|
||||
|
||||
<template id="print_event_card2">
|
||||
<t t-call="web.basic_layout">
|
||||
<div class="page">
|
||||
<t t-foreach="docs" t-as="o">
|
||||
<div class="col-sm-6">
|
||||
<table style="width:243pt; height:153pt; border: 1pt solid black; border-collapse:separate; border-radius:8pt; margin:5pt">
|
||||
<tr style="height:30%;" align="center">
|
||||
<td>
|
||||
<table>
|
||||
<td>
|
||||
<tr>
|
||||
<td align="center" valign="center">
|
||||
<img t-if="o.company_id and o.company_id.logo" t-att-src="'data:image/png;base64,%s' % to_text(o.company_id.logo)" style="max-height:45pt;max-width:90%" alt="Company Logo"/>
|
||||
</td>
|
||||
<!-- <td align="center" valign="center">
|
||||
<img t-if="o.company_id and o.company_id.logo" t-att-src="'data:image/png;base64,%s' % to_text(o.company_id.logo)" style="max-height:45pt;max-width:90%" alt="Company Logo"/>
|
||||
</td> -->
|
||||
<td align="center" valign="center">
|
||||
<img t-if="o.image" t-att-src="'data:image/png;base64,%s' % to_text(o.image)" style="max-height:85pt;max-width:90%" alt="Event Image"/>
|
||||
</td>
|
||||
</tr>
|
||||
</td>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr style="height:60%" align="center">
|
||||
<td valign="center">
|
||||
<table>
|
||||
<tr><th><div style="font-size:15pt; margin-bottom:0pt;margin-top:0pt;" valign="center">منظمة</div></th></tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr style="height:10%" align="center">
|
||||
<td>
|
||||
<table>
|
||||
<tr><td>
|
||||
<t t-foreach="o.sponsor_ids" t-as="sponsor">
|
||||
<t t-if="sponsor.partner_id.image">
|
||||
<!-- <span t-field="sponsor.partner_id.image"/> -->
|
||||
<img t-att-src="'data:image/png;base64,%s' % to_text(sponsor.partner_id.image)" style="max-height:30pt;max-width:200pt" alt="sponsor Image"/>
|
||||
</t>
|
||||
</t>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</t>
|
||||
</div>
|
||||
</t>
|
||||
</template>
|
||||
|
||||
<template id="print_event_card3">
|
||||
<t t-call="web.basic_layout">
|
||||
<div class="page">
|
||||
<t t-foreach="docs" t-as="o">
|
||||
<div class="col-sm-6">
|
||||
<table style="width:243pt; height:153pt; border: 1pt solid black; border-collapse:separate; border-radius:8pt; margin:5pt">
|
||||
<tr style="height:30%;" align="center">
|
||||
<td>
|
||||
<table>
|
||||
<td>
|
||||
<tr>
|
||||
<td align="center" valign="center">
|
||||
<img t-if="o.company_id and o.company_id.logo" t-att-src="'data:image/png;base64,%s' % to_text(o.company_id.logo)" style="max-height:45pt;max-width:90%" alt="Company Logo"/>
|
||||
</td>
|
||||
<!-- <td align="center" valign="center">
|
||||
<img t-if="o.company_id and o.company_id.logo" t-att-src="'data:image/png;base64,%s' % to_text(o.company_id.logo)" style="max-height:45pt;max-width:90%" alt="Company Logo"/>
|
||||
</td> -->
|
||||
<td align="center" valign="center">
|
||||
<img t-if="o.image" t-att-src="'data:image/png;base64,%s' % to_text(o.image)" style="max-height:85pt;max-width:90%" alt="Event Image"/>
|
||||
</td>
|
||||
</tr>
|
||||
</td>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr style="height:60%" align="center">
|
||||
<td valign="center">
|
||||
<table>
|
||||
<tr><th><div style="font-size:15pt; margin-bottom:0pt;margin-top:0pt;" valign="center">متطوع</div></th></tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr style="height:10%" align="center">
|
||||
<td>
|
||||
<table>
|
||||
<tr><td>
|
||||
<t t-foreach="o.sponsor_ids" t-as="sponsor">
|
||||
<t t-if="sponsor.partner_id.image">
|
||||
<!-- <span t-field="sponsor.partner_id.image"/> -->
|
||||
<img t-att-src="'data:image/png;base64,%s' % to_text(sponsor.partner_id.image)" style="max-height:30pt;max-width:200pt" alt="sponsor Image"/>
|
||||
</t>
|
||||
</t>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</t>
|
||||
</div>
|
||||
</t>
|
||||
</template>
|
||||
|
||||
<template id="print_event_card4">
|
||||
<t t-call="web.basic_layout">
|
||||
<div class="page">
|
||||
<t t-foreach="docs" t-as="o">
|
||||
<div class="col-sm-6">
|
||||
<table style="width:243pt; height:153pt; border: 1pt solid black; border-collapse:separate; border-radius:8pt; margin:5pt">
|
||||
<tr style="height:30%;" align="center">
|
||||
<td>
|
||||
<table>
|
||||
<td>
|
||||
<tr>
|
||||
<td align="center" valign="center">
|
||||
<img t-if="o.company_id and o.company_id.logo" t-att-src="'data:image/png;base64,%s' % to_text(o.company_id.logo)" style="max-height:45pt;max-width:90%" alt="Company Logo"/>
|
||||
</td>
|
||||
<!-- <td align="center" valign="center">
|
||||
<img t-if="o.company_id and o.company_id.logo" t-att-src="'data:image/png;base64,%s' % to_text(o.company_id.logo)" style="max-height:45pt;max-width:90%" alt="Company Logo"/>
|
||||
</td> -->
|
||||
<td align="center" valign="center">
|
||||
<img t-if="o.image" t-att-src="'data:image/png;base64,%s' % to_text(o.image)" style="max-height:85pt;max-width:90%" alt="Event Image"/>
|
||||
</td>
|
||||
</tr>
|
||||
</td>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr style="height:60%" align="center">
|
||||
<td valign="center">
|
||||
<table>
|
||||
<tr><th><div style="font-size:15pt; margin-bottom:0pt;margin-top:0pt;" valign="center">متطوعة</div></th></tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr style="height:10%" align="center">
|
||||
<td>
|
||||
<table>
|
||||
<tr><td>
|
||||
<t t-foreach="o.sponsor_ids" t-as="sponsor">
|
||||
<t t-if="sponsor.partner_id.image">
|
||||
<!-- <span t-field="sponsor.partner_id.image"/> -->
|
||||
<img t-att-src="'data:image/png;base64,%s' % to_text(sponsor.partner_id.image)" style="max-height:30pt;max-width:200pt" alt="sponsor Image"/>
|
||||
</t>
|
||||
</t>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</t>
|
||||
</div>
|
||||
</t>
|
||||
</template>
|
||||
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<odoo>
|
||||
|
||||
|
||||
<!-- <record model="ir.actions.act_window" id="act_open_dms_file_from_event_view">
|
||||
<field name="name">Files</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">muk_dms.file</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="domain">[
|
||||
("event_id", "=", active_id),
|
||||
|
||||
]</field>
|
||||
<field name="context">{
|
||||
'default_event_id': active_id,
|
||||
}</field>
|
||||
</record> -->
|
||||
|
||||
<!-- <record id="view_dms_file_form" model="ir.ui.view">-->
|
||||
<!-- <field name="name">muk_dms_file.form</field>-->
|
||||
<!-- <field name="model">dms.file</field>-->
|
||||
<!-- <field name="inherit_id" ref="dms.view_dms_file_form"/>-->
|
||||
<!-- <field name="arch" type="xml">-->
|
||||
<!-- <xpath expr="//field[@name='file_type_id']" position="after">-->
|
||||
<!-- <field name="event_id" attrs="{'invisible':[('event_id','=',False)]}"/>-->
|
||||
<!-- </xpath>-->
|
||||
<!-- </field>-->
|
||||
<!-- </record>-->
|
||||
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,208 @@
|
|||
<?xml version="1.0"?>
|
||||
<odoo>
|
||||
<data>
|
||||
|
||||
<record model="ir.ui.view" id="view_event_mail_form">
|
||||
<field name="name">event.mail.form</field>
|
||||
<field name="model">event.mail</field>
|
||||
<field name="inherit_id" ref="event.view_event_mail_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//sheet/notebook" position="inside">
|
||||
<page string="Track Changes Mails">
|
||||
<field name="mail_track_ids">
|
||||
<tree string="Track Changes Mails" editable="bottom">
|
||||
<field name="track_id"/>
|
||||
<field name="change_date_from"/>
|
||||
<field name="change_date_to"/>
|
||||
<field name="mail_sent"/>
|
||||
</tree>
|
||||
</field>
|
||||
</page>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_event_track_location">
|
||||
<field name="name">event.track.location_inherit</field>
|
||||
<field name="model">event.track.location</field>
|
||||
<field name="inherit_id" ref="website_event_track.view_event_location_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='name']" position="after">
|
||||
<field name="location_url"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_sponsor_type">
|
||||
<field name="name">sponsor_type_inherit</field>
|
||||
<field name="model">event.sponsor.type</field>
|
||||
<field name="inherit_id" ref="website_event_track.event_sponsor_type_view_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='name']" position="after">
|
||||
<field name="sponsor_cost"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_sponsor_type_list">
|
||||
<field name="name">sponsor_type_list_inherit</field>
|
||||
<field name="model">event.sponsor.type</field>
|
||||
<field name="inherit_id" ref="website_event_track.event_sponsor_type_view_tree"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='name']" position="after">
|
||||
<field name="sponsor_cost"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_event_form">
|
||||
<field name="name">event.event.form</field>
|
||||
<field name="model">event.event</field>
|
||||
<field name="inherit_id" ref="event.view_event_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//div[@name='button_box']" position="inside">
|
||||
<button type="object" name="action_open_files"
|
||||
class="oe_stat_button" icon="fa-file-text-o" >
|
||||
<field string="Files" name="count_files" widget="statinfo"/>
|
||||
</button>
|
||||
<button type="object" name="action_open_mail"
|
||||
class="oe_stat_button" icon="fa-envelope" >
|
||||
<field string="Mails" name="count_mails" widget="statinfo"/>
|
||||
</button>
|
||||
</xpath>
|
||||
<xpath expr="//div[@name='button_box']" position="after">
|
||||
<field name="image" widget='image' class="oe_avatar"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='event_type_id']" position="after">
|
||||
<field name="directory_id"/>
|
||||
<field name="project_id"/>
|
||||
<field name="benefit_club_id"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_event_search">
|
||||
<field name="name">event.event.search</field>
|
||||
<field name="model">event.event</field>
|
||||
<field name="inherit_id" ref="event.view_event_search"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='event_type_id']" position="after">
|
||||
<field name="organizer_id"/>
|
||||
<field name="project_id"/>
|
||||
</xpath>
|
||||
<!-- <xpath expr="//filter[@name='confirm']" position="after">-->
|
||||
<!-- <filter string="Done" name="done" domain="[('state','=','done')]"/>-->
|
||||
<!-- <filter string="Cancelled" name="cancel" domain="[('state','=','cancel')]"/>-->
|
||||
<!-- </xpath>-->
|
||||
<xpath expr="//filter[@name='upcoming']" position="after">
|
||||
<filter string="This Month" name="this_month" domain="[('date_begin', '>=', context_today().strftime('%Y-%m-01'))]"/>
|
||||
<filter string="Last Month" name="last_month" domain="['&', ('date_begin', '>=', (context_today() - relativedelta(months=1)).strftime('%Y-%m-01')), ('date_begin', '<', context_today().strftime('%Y-%m-01'))]"/>
|
||||
|
||||
<filter string="This Year" name="thisyear" domain="['|', ('date_begin', '=', False), '&',('date_begin','<=', time.strftime('%Y-12-31')),('date_begin','>=',time.strftime('%Y-01-01'))]"/>
|
||||
<filter name="lastyear" string="Last Year" domain="['&',('date_begin', '>=', (context_today()-relativedelta(years=1)).strftime('%Y-01-01')), ('date_begin', '<=', context_today().strftime('%Y-01-01')),]"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_event_track_search">
|
||||
<field name="name">event.track.search</field>
|
||||
<field name="model">event.track</field>
|
||||
<field name="inherit_id" ref="website_event_track.view_event_track_search"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//filter[@name='activities_upcoming_all']" position="after">
|
||||
<separator/>
|
||||
<filter string="This Month" name="this_month" domain="[('date', '>=', context_today().strftime('%Y-%m-01'))]"/>
|
||||
<filter string="Last Month" name="last_month" domain="['&', ('date', '>=', (context_today() - relativedelta(months=1)).strftime('%Y-%m-01')), ('date', '<', context_today().strftime('%Y-%m-01'))]"/>
|
||||
|
||||
<filter string="This Year" name="thisyear" domain="['|', ('date', '=', False), '&',('date','<=', time.strftime('%Y-12-31')),('date','>=',time.strftime('%Y-01-01'))]"/>
|
||||
<filter name="lastyear" string="Last Year" domain="['&',('date', '>=', (context_today()-relativedelta(years=1)).strftime('%Y-01-01')), ('date', '<=', context_today().strftime('%Y-01-01')),]"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="event_event_view_pivot" model="ir.ui.view" >
|
||||
<field name="name">event.event.view.pivot</field>
|
||||
<field name="model">event.event</field>
|
||||
<field name="inherit_id" ref="event.event_event_view_pivot"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//pivot" position="attributes">
|
||||
<attribute name="display_quantity" eval="true"/>
|
||||
</xpath>
|
||||
|
||||
<xpath expr="//field[@name='name']" position="before">
|
||||
<field name="event_type_id" type="row"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='seats_reserved']" position="before">
|
||||
<field name="seats_unconfirmed" type="measure"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='seats_reserved']" position="after">
|
||||
<field name="seats_used" type="measure"/>
|
||||
<field name="sponsor_count" type="measure"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="event_track_view_pivot" model="ir.ui.view" >
|
||||
<field name="name">event.track.view.pivot</field>
|
||||
<field name="model">event.track</field>
|
||||
<field name="arch" type="xml">
|
||||
<pivot string="Track" disable_linking="True">
|
||||
<field name="event_id" type="row"/>
|
||||
<field name="name" type="row"/>
|
||||
</pivot>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_event_track_view">
|
||||
<field name="name">Events track</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">event.track</field>
|
||||
<!-- <field name="view_type">form</field>-->
|
||||
<field name="view_mode">pivot</field>
|
||||
<field name="search_view_id" ref="website_event_track.view_event_track_search"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_event_sponsor_search">
|
||||
<field name="name">website_event_track.view_event_sponsor_search.search</field>
|
||||
<field name="model">event.sponsor</field>
|
||||
<field name="inherit_id" ref="website_event_track.event_sponsor_view_search"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='event_id']" position="after">
|
||||
<separator/>
|
||||
<filter string="This Month" name="this_month" domain="[('date', '>=', context_today().strftime('%Y-%m-01'))]"/>
|
||||
<filter string="Last Month" name="last_month" domain="['&', ('date', '>=', (context_today() - relativedelta(months=1)).strftime('%Y-%m-01')), ('date', '<', context_today().strftime('%Y-%m-01'))]"/>
|
||||
|
||||
<filter string="This Year" name="thisyear" domain="['|', ('date', '=', False), '&',('date','<=', time.strftime('%Y-12-31')),('date','>=',time.strftime('%Y-01-01'))]"/>
|
||||
<filter name="lastyear" string="Last Year" domain="['&',('date', '>=', (context_today()-relativedelta(years=1)).strftime('%Y-01-01')), ('date', '<=', context_today().strftime('%Y-01-01')),]"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="event_sponsor_view_pivot" model="ir.ui.view" >
|
||||
<field name="name">event.sponsor.view.pivot</field>
|
||||
<field name="model">event.sponsor</field>
|
||||
<field name="arch" type="xml">
|
||||
<pivot string="Sponsor" disable_linking="True">
|
||||
<field name="partner_id" type="row"/>
|
||||
<field name="sponsor_type_id" type="row"/>
|
||||
<field name="event_type_id" type="row"/>
|
||||
<field name="event_id" type="row"/>
|
||||
</pivot>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_event_sponsor_view">
|
||||
<field name="name">Events sponsor</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">event.sponsor</field>
|
||||
<!-- <field name="view_type">form</field>-->
|
||||
<field name="view_mode">pivot</field>
|
||||
</record>
|
||||
|
||||
<menuitem name="Events Tracks" id="menu_event_track" action="action_event_track_view" parent="event.menu_reporting_events"/>
|
||||
|
||||
<menuitem name="Events Sponsor" id="menu_event_sponsor" action="action_event_sponsor_view" parent="event.menu_reporting_events"/>
|
||||
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
'name': 'Event Registration Batch Confirm',
|
||||
'version': '1.0',
|
||||
'description': 'Event Registration Batch Confirm',
|
||||
'summary': 'Event Registration Batch Confirm',
|
||||
'author': 'Expert Co. Ltd.',
|
||||
'website': 'http://www.exp-sa.com',
|
||||
'license': 'LGPL-3',
|
||||
'category': 'Odex25-Event/Odex25-Event',
|
||||
'depends': [
|
||||
'event'
|
||||
],
|
||||
'data': [
|
||||
'data/ir_actions_server.xml'
|
||||
],
|
||||
'auto_install': True,
|
||||
}
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
|
||||
<record id="action_batch_confirm_event_registration" model="ir.actions.server">
|
||||
<field name="name">Confirm</field>
|
||||
<field name="model_id" ref="event.model_event_registration"/>
|
||||
<field name="binding_model_id" ref="event.model_event_registration"/>
|
||||
<field name="binding_view_types">list</field>
|
||||
<field name="state">code</field>
|
||||
<field name="code">records.action_confirm()</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from . import controllers
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
{
|
||||
'name': 'Events Website Custom',
|
||||
'version': '1.0',
|
||||
'website': 'https://www.odoo.com/page/events',
|
||||
'category': 'Odex25-Event/Odex25-Event',
|
||||
'summary': 'Add Extra Features to Event stander module',
|
||||
'description': """
|
||||
Events Custom.
|
||||
==============
|
||||
|
||||
Key Features
|
||||
------------
|
||||
* Edit in Email Schedule Add appility to send emails to Attendees after change in tracks
|
||||
* ...
|
||||
""",
|
||||
'depends': ['event_custom'],
|
||||
'data': [
|
||||
"views/events.xml",
|
||||
"views/event_details.xml"
|
||||
],
|
||||
'installable': True,
|
||||
'auto_install': False,
|
||||
}
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
from . import controllers
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from odoo import http,_
|
||||
from odoo.http import request
|
||||
import json
|
||||
|
||||
|
||||
class Event_sponsor(http.Controller):
|
||||
@http.route('/sponser/form', type='http', auth='public', methods=['GET'])
|
||||
def get_sponser_form(self):
|
||||
sponsoring_types = request.env['event.sponsor.type'].sudo().search([])
|
||||
li = ['sequence','name']
|
||||
if sponsoring_types:
|
||||
data = {'status': True, 'msg': (_('Sponsoring Types Found')), 'data':sponsoring_types.read(li)}
|
||||
else:
|
||||
data = {'status': False, 'msg': (_('Sponsoring Types Not Found')), 'data': {}}
|
||||
return json.dumps(data)
|
||||
|
||||
@http.route('/sponsor/submit', type='http', auth='public', csrf=False,methods=['POST'])
|
||||
def sponsor_submit(self,id,**kw):
|
||||
values = {}
|
||||
for field_name, field_value in kw.items():
|
||||
values[field_name] = field_value
|
||||
if field_name == 'event_id':
|
||||
field_value = request.env['event.event'].browse(int(id)).id
|
||||
values[field_name] = field_value
|
||||
sponsor = request.env['event.sponsor'].sudo().create(values)
|
||||
li = ['event_id','partner_id', 'url', 'sponsor_type_id']
|
||||
if sponsor:
|
||||
data = {'status': True, 'msg': (_('sponsor Registered')), 'data': sponsor.read(li)}
|
||||
else:
|
||||
data = {'status': False, 'msg': (_('sponsor Not Registered')), 'data': {}}
|
||||
return json.dumps(data)
|
||||
|
||||
|
||||
|
After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 6.9 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 121 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 7.3 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 62 KiB |
|
After Width: | Height: | Size: 34 KiB |
|
After Width: | Height: | Size: 21 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
|
@ -0,0 +1,347 @@
|
|||
/*event single page */
|
||||
@font-face {
|
||||
font-family: "cairo";
|
||||
src: url(/event_website_custom/static/fonts/Cairo-Bold.ttf);
|
||||
font-weight: 700;
|
||||
}
|
||||
@font-face {
|
||||
font-family: "cairo";
|
||||
src: url(/event_website_custom/static/fonts/Cairo-Regular.ttf);
|
||||
font-weight: normal;
|
||||
}
|
||||
@font-face {
|
||||
font-family: "cairo";
|
||||
src: url(/event_website_custom/static/fonts/Cairo-SemiBold.ttf);
|
||||
font-weight: 600;
|
||||
}
|
||||
.events_details_row {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
font-family: "cairo";
|
||||
}
|
||||
.events_details_row .event_div {
|
||||
flex-basis: 50%;
|
||||
padding: 0 15px;
|
||||
display: flex;
|
||||
}
|
||||
@media (max-width: 575px) {
|
||||
.events_details_row .event_div {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
@media (max-width: 991px) {
|
||||
.events_details_row .event_div {
|
||||
flex-basis: 100%;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
}
|
||||
.events_details_row .event_div .wrapper {
|
||||
background-color: #fff;
|
||||
border-radius: 12px;
|
||||
border: 1px solid #ccc;
|
||||
width: 100%;
|
||||
padding: 24px 32px;
|
||||
}
|
||||
@media (max-width: 575px) {
|
||||
.events_details_row .event_div .wrapper {
|
||||
padding: 16px;
|
||||
}
|
||||
}
|
||||
.events_details_row .event_div .wrapper h4 {
|
||||
font-weight: bold;
|
||||
display: inline-block;
|
||||
-webkit-margin-end: 8px;
|
||||
margin-inline-end: 8px;
|
||||
margin-bottom: 16px;
|
||||
text-transform: capitalize;
|
||||
color: #353a47;
|
||||
font-size: 20px;
|
||||
}
|
||||
@media (max-width: 575px) {
|
||||
.events_details_row .event_div .wrapper h4 {
|
||||
font-size: 16px;
|
||||
}
|
||||
}
|
||||
.events_details_row .event_div .wrapper .google_maps {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
text-decoration: underline;
|
||||
color: #3c5c95;
|
||||
}
|
||||
.events_details_row .event_div .wrapper .location,
|
||||
.events_details_row .event_div .wrapper .date,
|
||||
.events_details_row .event_div .wrapper .name {
|
||||
display: flex;
|
||||
margin-bottom: 16px;
|
||||
color: #b0a9a8;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.events_details_row .event_div .wrapper .location svg,
|
||||
.events_details_row .event_div .wrapper .date svg,
|
||||
.events_details_row .event_div .wrapper .name svg {
|
||||
-webkit-margin-end: 8px;
|
||||
margin-inline-end: 8px;
|
||||
}
|
||||
.events_details_row .event_div .wrapper .location br,
|
||||
.events_details_row .event_div .wrapper .location i,
|
||||
.events_details_row .event_div .wrapper .date br,
|
||||
.events_details_row .event_div .wrapper .date i,
|
||||
.events_details_row .event_div .wrapper .name br,
|
||||
.events_details_row .event_div .wrapper .name i {
|
||||
display: none;
|
||||
}
|
||||
@media (max-width: 991px) {
|
||||
.events_details_row .event_div:last-of-type {
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
}
|
||||
|
||||
/*sponsors_container*/
|
||||
.sponsors_container {
|
||||
padding: 0 30px;
|
||||
}
|
||||
@media (max-width: 575px) {
|
||||
.sponsors_container {
|
||||
padding: 0 15px;
|
||||
}
|
||||
}
|
||||
.sponsors_container .sponsors_wrapper {
|
||||
background-color: #fff;
|
||||
border-radius: 12px;
|
||||
border: 1px solid #ccc;
|
||||
padding: 24px 32px;
|
||||
}
|
||||
@media (max-width: 575px) {
|
||||
.sponsors_container .sponsors_wrapper {
|
||||
padding: 16px;
|
||||
}
|
||||
}
|
||||
.sponsors_container .sponsors_wrapper .row {
|
||||
display: flex;
|
||||
}
|
||||
@media (max-width: 575px) {
|
||||
.sponsors_container .sponsors_wrapper .row {
|
||||
flex-wrap: wrap;
|
||||
justify-content: center;
|
||||
}
|
||||
.sponsors_container .sponsors_wrapper .row .oe_sponsor {
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
}
|
||||
.sponsors_container .sponsors_wrapper h4 {
|
||||
font-weight: bold;
|
||||
display: inline-block;
|
||||
margin-bottom: 32px;
|
||||
text-transform: capitalize;
|
||||
color: #353a47;
|
||||
font-size: 20px;
|
||||
font-family: "cairo";
|
||||
}
|
||||
@media (max-width: 575px) {
|
||||
.sponsors_container .sponsors_wrapper h4 {
|
||||
font-size: 16px;
|
||||
}
|
||||
}
|
||||
|
||||
.join_us_container {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 30px;
|
||||
}
|
||||
|
||||
/*details_container*/
|
||||
.join_us {
|
||||
padding: 0px 15px;
|
||||
}
|
||||
@media (max-width: 575px) {
|
||||
.join_us {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
.join_us .oe_structure {
|
||||
display: none;
|
||||
}
|
||||
.join_us .wrapper {
|
||||
background-color: #fff;
|
||||
padding: 24px 32px;
|
||||
border-radius: 16px;
|
||||
border: 1px solid #ccc;
|
||||
margin-bottom: 32px;
|
||||
}
|
||||
@media (max-width: 575px) {
|
||||
.join_us .wrapper {
|
||||
padding: 16px;
|
||||
}
|
||||
}
|
||||
.join_us .wrapper h4 {
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
@media (max-width: 575px) {
|
||||
.join_us .wrapper h4 {
|
||||
font-size: 16px;
|
||||
}
|
||||
}
|
||||
.join_us #registration_form, .join_us .row.mt32.mb32 {
|
||||
margin: 0 !important;
|
||||
}
|
||||
.join_us .col-md-8 {
|
||||
width: 100%;
|
||||
flex: 1;
|
||||
max-width: 100%;
|
||||
}
|
||||
.join_us .col-md-8 .col-md-3 {
|
||||
flex: 1;
|
||||
max-width: 100%;
|
||||
}
|
||||
.join_us .col-md-8 .panel-default,
|
||||
.join_us .col-md-8 .panel-footer {
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
.join_us .col-md-8 .panel-footer {
|
||||
text-align: center;
|
||||
background-color: transparent;
|
||||
padding: 0;
|
||||
}
|
||||
.join_us .css_noprint,
|
||||
.join_us .panel-heading,
|
||||
.join_us hr {
|
||||
display: none;
|
||||
}
|
||||
.join_us .col-lg-offset-9 {
|
||||
margin-left: auto !important;
|
||||
margin-right: auto !important;
|
||||
width: 100% !important;
|
||||
}
|
||||
.join_us .col-lg-offset-9 button {
|
||||
display: inline !important;
|
||||
width: -moz-fit-content;
|
||||
width: fit-content;
|
||||
}
|
||||
|
||||
/*global calsses */
|
||||
.o_website_event .container.mt32.mb16.hidden-print {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.d-none {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.number_of_attendance {
|
||||
float: none;
|
||||
margin: auto;
|
||||
width: 100%;
|
||||
}
|
||||
@media (max-width: 425px) {
|
||||
.number_of_attendance {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
.number_of_attendance .my_label {
|
||||
display: inline-block;
|
||||
margin-bottom: 12px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.event_div .col-md-3 {
|
||||
width: 100% im !important;
|
||||
}
|
||||
|
||||
/*register modal */
|
||||
.custom_modal .modal-content .modal-header {
|
||||
border: none;
|
||||
min-height: auto;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
.custom_modal .modal-content .modal-header .modal-title {
|
||||
margin: 0;
|
||||
text-align: start;
|
||||
display: none;
|
||||
}
|
||||
.custom_modal .modal-content .modal-body {
|
||||
height: 275px;
|
||||
overflow: auto;
|
||||
/* Track */
|
||||
/* Handle */
|
||||
}
|
||||
@media (max-width: 575px) {
|
||||
.custom_modal .modal-content .modal-body {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
.custom_modal .modal-content .modal-body::-webkit-scrollbar {
|
||||
width: 4px;
|
||||
}
|
||||
.custom_modal .modal-content .modal-body::-webkit-scrollbar-track {
|
||||
background: #f1f1f1;
|
||||
}
|
||||
.custom_modal .modal-content .modal-body::-webkit-scrollbar-thumb {
|
||||
background: #3c5c95;
|
||||
}
|
||||
.custom_modal .modal-content .modal-body .attendans_wrapper label {
|
||||
display: none;
|
||||
}
|
||||
.custom_modal .modal-content .modal-body .page-header {
|
||||
border: none;
|
||||
margin-bottom: 16px;
|
||||
text-align: start;
|
||||
position: relative;
|
||||
width: -moz-fit-content;
|
||||
width: fit-content;
|
||||
padding-bottom: 16px;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
@media (max-width: 575px) {
|
||||
.custom_modal .modal-content .modal-body .page-header {
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
.custom_modal .modal-content .modal-body .page-header::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: -5px;
|
||||
width: 60%;
|
||||
height: 4px;
|
||||
background-color: #3c5c95;
|
||||
}
|
||||
.custom_modal .modal-content .modal-body .panel-body, .custom_modal .modal-content .modal-body .panel-footer {
|
||||
display: none !important;
|
||||
}
|
||||
/*crumb*/
|
||||
.crumb {
|
||||
padding: 0 15px;
|
||||
}
|
||||
@media (max-width: 575px) {
|
||||
.crumb {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
.crumb .breadcrumb {
|
||||
background-color: #fff;
|
||||
margin: 16px 0 16px 0 !important;
|
||||
border-radius: 8px;
|
||||
border: 1px solid #ccc;
|
||||
box-shadow: none;
|
||||
padding: 12px;
|
||||
}
|
||||
|
||||
.sponsors_wrapper {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex-direction: column;
|
||||
}
|
||||
.sponsors_wrapper .btn-block {
|
||||
display: block;
|
||||
width: -moz-fit-content;
|
||||
width: fit-content;
|
||||
padding: 8px 40px;
|
||||
}
|
||||
|
||||
.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control {
|
||||
background-color: #f5f5f5;
|
||||
}/*# sourceMappingURL=event_details.css.map */
|
||||
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"sources":["event_details.scss","event_details.css"],"names":[],"mappings":"AAAA,qBAAA;AAEA;EACI,oBAAA;EACA,2DAAA;EACA,gBAAA;ACAJ;ADGA;EACI,oBAAA;EACA,8DAAA;EACA,mBAAA;ACDJ;ADIA;EACI,oBAAA;EACA,+DAAA;EACA,gBAAA;ACFJ;ADOA;EACI,aAAA;EACA,eAAA;EACA,oBALI;ACAR;ADOI;EACI,eAAA;EACA,eAAA;EACA,aAAA;ACLR;ADMQ;EAJJ;IAKQ,UAAA;ECHV;AACF;ADIQ;EAPJ;IAQQ,gBAAA;IACA,mBAAA;ECDV;AACF;ADEQ;EACI,sBAAA;EACA,mBAAA;EACA,sBAAA;EACA,WAAA;EACA,kBAAA;ACAZ;ADCY;EANJ;IAOQ,aAAA;ECEd;AACF;ADAY;EACI,iBAAA;EACA,qBAAA;EACA,uBAAA;UAAA,sBAAA;EACA,mBAAA;EACA,0BAAA;EACA,cAAA;EACA,eAAA;ACEhB;ADDgB;EARJ;IASQ,eAAA;ECIlB;AACF;ADDY;EACI,eAAA;EACA,iBAAA;EACA,0BAAA;EACA,cAAA;ACGhB;ADAY;;;EAGI,aAAA;EACA,mBAAA;EACA,cAAA;EACA,eAAA;ACEhB;ADAgB;;;EACI,uBAAA;UAAA,sBAAA;ACIpB;ADDgB;;;;;;EAEI,aAAA;ACOpB;ADDQ;EADJ;IAEQ,kBAAA;ECIV;AACF;;ADAA,qBAAA;AAEA;EACI,eAAA;ACEJ;ADDI;EAFJ;IAGQ,eAAA;ECIN;AACF;ADFI;EACI,sBAAA;EACA,mBAAA;EACA,sBAAA;EACA,kBAAA;ACIR;ADHQ;EALJ;IAMQ,aAAA;ECMV;AACF;ADLQ;EACI,aAAA;ACOZ;ADNY;EAFJ;IAGQ,eAAA;IACA,uBAAA;ECSd;EDRc;IACI,mBAAA;ECUlB;AACF;ADNQ;EACI,iBAAA;EACA,qBAAA;EACA,mBAAA;EACA,0BAAA;EACA,cAAA;EACA,eAAA;EACA,oBA5GJ;ACoHR;ADPY;EARJ;IASQ,eAAA;ECUd;AACF;;ADJA;EACI,aAAA;EACA,eAAA;EACA,SAAA;ACOJ;;ADLA,oBAAA;AACA;EACI,iBAAA;ACQJ;ADPI;EAFJ;IAGQ,UAAA;ECUN;AACF;ADTI;EACI,aAAA;ACWR;ADTI;EACI,sBAAA;EACA,kBAAA;EACA,mBAAA;EACA,sBAAA;EACA,mBAAA;ACWR;ADVQ;EANJ;IAOQ,aAAA;ECaV;AACF;ADZQ;EACI,kBAAA;EACA,iBAAA;EACA,mBAAA;ACcZ;ADbY;EAJJ;IAKQ,eAAA;ECgBd;AACF;ADZI;EACI,oBAAA;ACcR;ADZI;EACI,WAAA;EACA,OAAA;EACA,eAAA;ACcR;ADbQ;EACI,OAAA;EACA,eAAA;ACeZ;ADZQ;;EAEI,YAAA;EACA,gBAAA;ACcZ;ADZQ;EACI,kBAAA;EACA,6BAAA;EACA,UAAA;ACcZ;ADVI;;;EAGI,aAAA;ACYR;ADTI;EACI,4BAAA;EACA,6BAAA;EACA,sBAAA;ACWR;ADVQ;EACI,0BAAA;EACA,uBAAA;EAAA,kBAAA;ACYZ;;ADNA,kBAAA;AAEI;EACI,aAAA;ACQR;;ADJA;EACI,wBAAA;ACOJ;;ADJA;EACI,WAAA;EACA,YAAA;EACA,WAAA;ACOJ;ADNI;EAJJ;IAKQ,WAAA;ECSN;AACF;ADRI;EACI,qBAAA;EACA,mBAAA;EACA,iBAAA;ACUR;;ADLA;EACI,yBAAA;ACQJ;;ADNA,kBAAA;AAKQ;EACI,YAAA;EACA,gBAAA;EACA,iBAAA;ACKZ;ADJY;EACI,SAAA;EACA,iBAAA;EACA,aAAA;ACMhB;ADHQ;EACI,aAAA;EACA,cAAA;EASE,UAAA;EAKA,WAAA;ACPd;ADNY;EAHJ;IAIQ,WAAA;ECSd;AACF;ADPY;EACI,UAAA;ACShB;ADLY;EACI,mBAAA;ACOhB;ADHY;EACI,mBAAA;ACKhB;ADFgB;EACI,aAAA;ACIpB;ADDY;EACI,YAAA;EACA,mBAAA;EACA,iBAAA;EACA,kBAAA;EACA,uBAAA;EAAA,kBAAA;EACA,oBAAA;EACA,mBAAA;ACGhB;ADFgB;EARJ;IASQ,eAAA;ECKlB;AACF;ADJgB;EACI,WAAA;EACA,kBAAA;EACA,OAAA;EACA,YAAA;EACA,UAAA;EACA,WAAA;EACA,yBAAA;ACMpB;ADHY;EACI,wBAAA;ACKhB;ADQA,QAAA;AAEA;EACI,eAAA;ACPJ;ADQI;EAFJ;IAGQ,UAAA;ECLN;AACF;ADMI;EACI,sBAAA;EACA,gCAAA;EACA,kBAAA;EACA,sBAAA;EACA,gBAAA;EACA,aAAA;ACJR;;ADQA;EACI,aAAA;EACA,mBAAA;EACA,uBAAA;EACA,sBAAA;ACLJ;ADMI;EACI,cAAA;EACJ,uBAAA;EAAA,kBAAA;EACA,iBAAA;ACJJ;;ADQA;EAEI,yBAAA;ACNJ","file":"event_details.css"}
|
||||
|
|
@ -0,0 +1,349 @@
|
|||
/*event single page */
|
||||
|
||||
@font-face {
|
||||
font-family: "cairo";
|
||||
src: url(/event_website_custom/static/fonts/Cairo-Bold.ttf);
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "cairo";
|
||||
src: url(/event_website_custom/static/fonts/Cairo-Regular.ttf);
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "cairo";
|
||||
src: url(/event_website_custom/static/fonts/Cairo-SemiBold.ttf);
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
$cairo :"cairo";
|
||||
|
||||
.events_details_row {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
font-family: $cairo ;
|
||||
|
||||
.event_div {
|
||||
flex-basis: 50%;
|
||||
padding: 0 15px;
|
||||
display: flex;
|
||||
@media(max-width:575px){
|
||||
padding: 0;
|
||||
}
|
||||
@media(max-width:991px){
|
||||
flex-basis:100%;
|
||||
margin-bottom:24px
|
||||
}
|
||||
.wrapper {
|
||||
background-color: #fff;
|
||||
border-radius: 12px;
|
||||
border: 1px solid #ccc;
|
||||
width: 100%;
|
||||
padding: 24px 32px;
|
||||
@media(max-width:575px){
|
||||
padding: 16px;
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-weight: bold;
|
||||
display: inline-block;
|
||||
margin-inline-end: 8px;
|
||||
margin-bottom: 16px;
|
||||
text-transform: capitalize;
|
||||
color: #353a47;
|
||||
font-size: 20px;
|
||||
@media(max-width:575px){
|
||||
font-size:16px
|
||||
}
|
||||
}
|
||||
|
||||
.google_maps {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
text-decoration: underline;
|
||||
color: #3c5c95;
|
||||
}
|
||||
|
||||
.location,
|
||||
.date,
|
||||
.name {
|
||||
display: flex;
|
||||
margin-bottom: 16px;
|
||||
color: #b0a9a8;
|
||||
flex-wrap:wrap;
|
||||
|
||||
svg {
|
||||
margin-inline-end: 8px;
|
||||
}
|
||||
|
||||
br,
|
||||
i {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.event_div:last-of-type{
|
||||
@media(max-width:991px){
|
||||
margin-bottom:0px
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*sponsors_container*/
|
||||
|
||||
.sponsors_container {
|
||||
padding: 0 30px;
|
||||
@media(max-width:575px){
|
||||
padding: 0 15px;
|
||||
}
|
||||
|
||||
.sponsors_wrapper {
|
||||
background-color: #fff;
|
||||
border-radius: 12px;
|
||||
border: 1px solid #ccc;
|
||||
padding: 24px 32px;
|
||||
@media(max-width:575px){
|
||||
padding: 16px;
|
||||
}
|
||||
.row{
|
||||
display:flex;
|
||||
@media(max-width:575px){
|
||||
flex-wrap: wrap;
|
||||
justify-content: center;
|
||||
.oe_sponsor{
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-weight: bold;
|
||||
display: inline-block;
|
||||
margin-bottom: 32px;
|
||||
text-transform: capitalize;
|
||||
color: #353a47;
|
||||
font-size: 20px;
|
||||
font-family: $cairo;
|
||||
@media(max-width:575px){
|
||||
font-size:16px
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.join_us_container{
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 30px;
|
||||
}
|
||||
/*details_container*/
|
||||
.join_us {
|
||||
padding: 0px 15px ;
|
||||
@media(max-width:575px){
|
||||
padding: 0;
|
||||
}
|
||||
.oe_structure{
|
||||
display: none;
|
||||
}
|
||||
.wrapper{
|
||||
background-color: #fff;
|
||||
padding: 24px 32px;
|
||||
border-radius: 16px;
|
||||
border: 1px solid #ccc;
|
||||
margin-bottom: 32px;
|
||||
@media(max-width:575px){
|
||||
padding: 16px;
|
||||
}
|
||||
h4{
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
margin-bottom: 16px;
|
||||
@media(max-width:575px){
|
||||
font-size:16px
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#registration_form, .row.mt32.mb32{
|
||||
margin: 0 !important;
|
||||
}
|
||||
.col-md-8 {
|
||||
width: 100%;
|
||||
flex: 1;
|
||||
max-width: 100%;
|
||||
.col-md-3{
|
||||
flex: 1;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.panel-default,
|
||||
.panel-footer {
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
.panel-footer{
|
||||
text-align:center;
|
||||
background-color: transparent;
|
||||
padding:0;
|
||||
}
|
||||
}
|
||||
|
||||
.css_noprint,
|
||||
.panel-heading,
|
||||
hr {
|
||||
display: none
|
||||
}
|
||||
|
||||
.col-lg-offset-9 {
|
||||
margin-left: auto !important;
|
||||
margin-right: auto !important;
|
||||
width: 100% !important;
|
||||
button{
|
||||
display: inline !important;
|
||||
width: fit-content;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/*global calsses */
|
||||
.o_website_event {
|
||||
.container.mt32.mb16.hidden-print{
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.d-none{
|
||||
display:none !important
|
||||
}
|
||||
|
||||
.number_of_attendance{
|
||||
float:none;
|
||||
margin:auto;
|
||||
width: 100%;
|
||||
@media(max-width:425px){
|
||||
width: 100%;
|
||||
}
|
||||
.my_label{
|
||||
display: inline-block;
|
||||
margin-bottom: 12px;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.event_div .col-md-3{
|
||||
width: 100% im !important;
|
||||
}
|
||||
/*register modal */
|
||||
|
||||
.custom_modal{
|
||||
|
||||
.modal-content{
|
||||
.modal-header{
|
||||
border:none;
|
||||
min-height:auto;
|
||||
padding-bottom:0;
|
||||
.modal-title{
|
||||
margin:0;
|
||||
text-align:start;
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
.modal-body{
|
||||
height:275px;
|
||||
overflow:auto;
|
||||
@media(max-width:575px){
|
||||
width:100%;
|
||||
|
||||
}
|
||||
&::-webkit-scrollbar {
|
||||
width: 4px;
|
||||
}
|
||||
|
||||
/* Track */
|
||||
&::-webkit-scrollbar-track {
|
||||
background: #f1f1f1;
|
||||
}
|
||||
|
||||
/* Handle */
|
||||
&::-webkit-scrollbar-thumb {
|
||||
background: #3c5c95;
|
||||
}
|
||||
.attendans_wrapper{
|
||||
label{
|
||||
display:none;
|
||||
}
|
||||
}
|
||||
.page-header{
|
||||
border:none;
|
||||
margin-bottom: 16px;
|
||||
text-align: start;
|
||||
position: relative;
|
||||
width:fit-content;
|
||||
padding-bottom: 16px;
|
||||
margin-bottom: 24px;
|
||||
@media(max-width:575px){
|
||||
font-size:14px
|
||||
}
|
||||
&::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: -5px;
|
||||
width: 60%;
|
||||
height: 4px;
|
||||
background-color: #3c5c95;
|
||||
}
|
||||
}
|
||||
.panel-body, .panel-footer{
|
||||
display:none !important
|
||||
}
|
||||
|
||||
}
|
||||
.modal-footer{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*crumb*/
|
||||
|
||||
.crumb{
|
||||
padding: 0 15px;
|
||||
@media(max-width:575px){
|
||||
padding: 0;
|
||||
}
|
||||
.breadcrumb {
|
||||
background-color: #fff;
|
||||
margin: 16px 0 16px 0 !important;
|
||||
border-radius: 8px;
|
||||
border: 1px solid #ccc;
|
||||
box-shadow: none;
|
||||
padding: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
.sponsors_wrapper{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex-direction: column;
|
||||
.btn-block{
|
||||
display: block;
|
||||
width: fit-content;
|
||||
padding: 8px 40px;
|
||||
}
|
||||
}
|
||||
|
||||
.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control{
|
||||
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
|
|
@ -0,0 +1,136 @@
|
|||
body {
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
|
||||
.events_title {
|
||||
color: #353a47;
|
||||
font-weight: bold;
|
||||
position: relative;
|
||||
width: -moz-fit-content;
|
||||
width: fit-content;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
.events_title::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: -5px;
|
||||
width: 50%;
|
||||
height: 4px;
|
||||
background-color: #3c5c95;
|
||||
}
|
||||
|
||||
.main_events_container .breadcrumb {
|
||||
-webkit-padding-start: 0;
|
||||
padding-inline-start: 0;
|
||||
}
|
||||
.main_events_container .events_row {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
@media (max-width: 1200px) {
|
||||
.main_events_container #middle_column {
|
||||
width: 70%;
|
||||
}
|
||||
}
|
||||
@media (max-width: 991px) {
|
||||
.main_events_container #middle_column {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
.main_events_container .events_list {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
padding: 0;
|
||||
background-color: #fff;
|
||||
padding: 24px 9px 0;
|
||||
border-radius: 16px;
|
||||
margin: 0;
|
||||
height: 100%;
|
||||
}
|
||||
.main_events_container .events_list .single_event {
|
||||
flex-basis: 50%;
|
||||
padding: 0 15px;
|
||||
margin: 0;
|
||||
display: flex;
|
||||
list-style: none;
|
||||
}
|
||||
@media (max-width: 767px) {
|
||||
.main_events_container .events_list .single_event {
|
||||
width: 100%;
|
||||
flex-basis: 100%;
|
||||
}
|
||||
}
|
||||
.main_events_container .events_list .single_event .event_content {
|
||||
padding: 16px;
|
||||
background-color: #f8f8f8;
|
||||
margin-bottom: 24px;
|
||||
border: 1px solid #eaeaea;
|
||||
border-radius: 8px;
|
||||
width: 100%;
|
||||
}
|
||||
.main_events_container .events_list .single_event .event_content h4 {
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
.main_events_container .events_list .single_event .event_content h4 a {
|
||||
color: #353a47;
|
||||
font-weight: bold;
|
||||
-webkit-margin-end: 6px;
|
||||
margin-inline-end: 6px;
|
||||
text-transform: capitalize;
|
||||
}
|
||||
.main_events_container .events_list .single_event .event_content .event_data {
|
||||
margin-bottom: 12px;
|
||||
color: #b0a9a8;
|
||||
}
|
||||
.main_events_container .events_list .single_event .event_content .event_data i {
|
||||
-webkit-margin-end: 4px;
|
||||
margin-inline-end: 4px;
|
||||
}
|
||||
.main_events_container .events_list .single_event .event_content .event_data:last-of-type {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
/*categories */
|
||||
@media (max-width: 1200px) {
|
||||
.events_categories {
|
||||
width: 30%;
|
||||
}
|
||||
}
|
||||
@media (max-width: 991px) {
|
||||
.events_categories {
|
||||
width: 100%;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
}
|
||||
.events_categories .nav-pills {
|
||||
background-color: #fff;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
border-radius: 16px;
|
||||
}
|
||||
.events_categories .nav-pills li a {
|
||||
color: #b6bab7;
|
||||
transition: 0.3s all ease-in-out;
|
||||
padding: 8px 16px;
|
||||
font-weight: 600;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
.events_categories .nav-pills li.active a {
|
||||
background-color: #e1e6ef;
|
||||
color: #3c5c95;
|
||||
}
|
||||
|
||||
/*media */
|
||||
@media (max-width: 767px) {
|
||||
.single_event {
|
||||
flex-basis: 100%;
|
||||
}
|
||||
.single_event .event_content h4 {
|
||||
font-size: 16px;
|
||||
}
|
||||
}
|
||||
/*global styles */
|
||||
.fa-fw {
|
||||
width: unset;
|
||||
}/*# sourceMappingURL=events.css.map */
|
||||
|
|
@ -0,0 +1 @@
|
|||
{"version":3,"sources":["events.scss","events.css"],"names":[],"mappings":"AAAA;EACI,yBAAA;ACCJ;;ADEA;EACI,cAAA;EACA,iBAAA;EACA,kBAAA;EACA,uBAAA;EAAA,kBAAA;EACA,mBAAA;ACCJ;ADCI;EACI,WAAA;EACA,kBAAA;EACA,OAAA;EACA,YAAA;EACA,UAAA;EACA,WAAA;EACA,yBAAA;ACCR;;ADII;EACI,wBAAA;UAAA,uBAAA;ACDR;ADII;EACI,aAAA;EACA,eAAA;ACFR;ADMQ;EADJ;IAEQ,UAAA;ECHV;AACF;ADIQ;EAJJ;IAKQ,WAAA;ECDV;AACF;ADGI;EACI,aAAA;EACA,eAAA;EACA,UAAA;EACA,sBAAA;EACA,mBAAA;EACA,mBAAA;EACA,SAAA;EACA,YAAA;ACDR;ADGQ;EACI,eAAA;EACA,eAAA;EACA,SAAA;EACA,aAAA;EACA,gBAAA;ACDZ;ADEY;EANJ;IAOQ,WAAA;IACA,gBAAA;ECCd;AACF;ADEY;EACI,aAAA;EACA,yBAAA;EACA,mBAAA;EACA,yBAAA;EACA,kBAAA;EACA,WAAA;ACAhB;ADEgB;EACI,mBAAA;ACApB;ADEoB;EACI,cAAA;EACA,iBAAA;EACA,uBAAA;UAAA,sBAAA;EACA,0BAAA;ACAxB;ADIgB;EACI,mBAAA;EACA,cAAA;ACFpB;ADIoB;EACI,uBAAA;UAAA,sBAAA;ACFxB;ADMgB;EACI,gBAAA;ACJpB;;ADaA,cAAA;AAEI;EADJ;IAEQ,UAAA;ECVN;AACF;ADWI;EAJJ;IAKQ,WAAA;IACA,mBAAA;ECRN;AACF;ADSI;EACI,sBAAA;EACA,YAAA;EACA,gBAAA;EACA,mBAAA;ACPR;ADUY;EACI,cAAA;EACA,gCAAA;EACA,iBAAA;EACA,gBAAA;EACA,kBAAA;ACRhB;ADYQ;EACI,yBAAA;EACA,cAAA;ACVZ;;ADgBA,SAAA;AAEA;EACI;IACI,gBAAA;ECdN;EDiBU;IACI,eAAA;ECfd;AACF;ADoBA,iBAAA;AAEA;EACI,YAAA;ACnBJ","file":"events.css"}
|
||||
|
|
@ -0,0 +1,152 @@
|
|||
body {
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
|
||||
.events_title {
|
||||
color: #353a47;
|
||||
font-weight: bold;
|
||||
position: relative;
|
||||
width: fit-content;
|
||||
margin-bottom: 16px;
|
||||
|
||||
&::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: -5px;
|
||||
width: 50%;
|
||||
height: 4px;
|
||||
background-color: #3c5c95;
|
||||
}
|
||||
}
|
||||
|
||||
.main_events_container {
|
||||
.breadcrumb {
|
||||
padding-inline-start: 0
|
||||
}
|
||||
|
||||
.events_row {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
#middle_column{
|
||||
@media(max-width:1200px){
|
||||
width:70%;
|
||||
}
|
||||
@media(max-width:991px){
|
||||
width:100%;
|
||||
}
|
||||
}
|
||||
.events_list {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
padding: 0;
|
||||
background-color: #fff;
|
||||
padding: 24px 9px 0;
|
||||
border-radius: 16px;
|
||||
margin: 0;
|
||||
height: 100%;
|
||||
|
||||
.single_event {
|
||||
flex-basis: 50%;
|
||||
padding: 0 15px;
|
||||
margin: 0;
|
||||
display: flex;
|
||||
list-style: none;
|
||||
@media(max-width:767px){
|
||||
width:100%;
|
||||
flex-basis:100%;
|
||||
|
||||
}
|
||||
|
||||
.event_content {
|
||||
padding: 16px;
|
||||
background-color: #f8f8f8;
|
||||
margin-bottom: 24px;
|
||||
border: 1px solid #eaeaea;
|
||||
border-radius: 8px;
|
||||
width: 100%;
|
||||
|
||||
h4 {
|
||||
margin-bottom: 16px;
|
||||
|
||||
a {
|
||||
color: #353a47;
|
||||
font-weight: bold;
|
||||
margin-inline-end: 6px;
|
||||
text-transform: capitalize;
|
||||
}
|
||||
}
|
||||
|
||||
.event_data {
|
||||
margin-bottom: 12px;
|
||||
color: #b0a9a8;
|
||||
|
||||
i {
|
||||
margin-inline-end: 4px;
|
||||
}
|
||||
}
|
||||
|
||||
.event_data:last-of-type {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*categories */
|
||||
.events_categories {
|
||||
@media(max-width:1200px){
|
||||
width:30%
|
||||
}
|
||||
@media(max-width:991px){
|
||||
width:100%;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
.nav-pills {
|
||||
background-color: #fff;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
border-radius: 16px;
|
||||
|
||||
li {
|
||||
a {
|
||||
color: #b6bab7;
|
||||
transition: .3s all ease-in-out;
|
||||
padding: 8px 16px;
|
||||
font-weight: 600;
|
||||
margin-bottom: 8px
|
||||
}
|
||||
}
|
||||
|
||||
li.active a {
|
||||
background-color: #e1e6ef;
|
||||
color: #3c5c95
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*media */
|
||||
|
||||
@media(max-width:767px) {
|
||||
.single_event {
|
||||
flex-basis: 100%;
|
||||
|
||||
.event_content {
|
||||
h4 {
|
||||
font-size: 16px
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*global styles */
|
||||
|
||||
.fa-fw {
|
||||
width: unset;
|
||||
}
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
$(document).ready(function () {
|
||||
$('.trigger_sponsors_modal').click(function () {
|
||||
$('#sponsors_modal').modal('show');
|
||||
})
|
||||
// integrate the sponsors types API
|
||||
let typeURL = "/sponser/form";
|
||||
fetch(typeURL)
|
||||
.then(response => response.json())
|
||||
.then(res => {
|
||||
typeList = res.data;
|
||||
console.log(typeList);
|
||||
typeList.forEach(function (index) {
|
||||
$('#sponsprs_types').append(`<option id="${index.id}" value="${index.id}">${index.name} </option>`);
|
||||
})
|
||||
});
|
||||
|
||||
|
||||
let create_sponsor = "/sponsor/submit";
|
||||
$('form#sponsors_form_reg').on('submit', function (evt) {
|
||||
console.log('form is submitting now !!');
|
||||
evt.preventDefault();
|
||||
var sponsors_data = {
|
||||
id: $('#sponsors_form_reg #eid').val(),
|
||||
sponsor_type_id: $('#sponsprs_types').val(),
|
||||
partner_id: $('#userId').val(),
|
||||
event_id: $('#eventId').val(),
|
||||
url: $('#url').val()
|
||||
}
|
||||
$.ajax({
|
||||
url: `${create_sponsor}?id=${sponsors_data.id}&sponsor_type_id=${sponsors_data.sponsor_type_id}&partner_id=${sponsors_data.partner_id}&event_id=${sponsors_data.event_id}&url="${sponsors_data.url}"`,
|
||||
type: "POST",
|
||||
data: sponsors_data,
|
||||
success: function (response) {
|
||||
console.log(response);
|
||||
console.log('data sent successfully !!!');
|
||||
$('.new_sponsor').append(`<p class="alert alert-success"> ${response.msg} </p>`)
|
||||
setTimeout(function () {
|
||||
$('.new_sponsor').hide();
|
||||
location.reload();
|
||||
}, 4000);
|
||||
},
|
||||
error: function (err) {
|
||||
console.log(err);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
|
@ -0,0 +1,395 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<template id="event_details" inherit_id="website_event.event_details" name="Events Details">
|
||||
<xpath expr="//div[@class='container']" position="replace">
|
||||
<div class="container bread_container">
|
||||
<div class="crumb" id="event_menu">
|
||||
<ol class="breadcrumb mb0" t-if="not event.menu_id">
|
||||
<li><a href="/event">All Events</a></li>
|
||||
<li t-if="event.event_type_id">
|
||||
<a t-attf-href="/event?type=#{event.event_type_id.id}" t-esc="event.event_type_id.name"/>
|
||||
</li>
|
||||
<li t-if="event.country_id">
|
||||
<a t-attf-href="/event?country=#{event.country_id.id}" t-esc="event.country_id.name"/>
|
||||
</li>
|
||||
<li class="active">
|
||||
<span t-field="event.name"/>
|
||||
</li>
|
||||
</ol>
|
||||
<ol name="Event Menu" class="breadcrumb mb0" id="event_menu" t-if="event.menu_id" t-att-data-content_menu_id="editable and event.menu_id.id">
|
||||
<t t-foreach="event.menu_id.child_id" t-as="submenu">
|
||||
<t t-call="website.submenu"/>
|
||||
</t>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
<div itemscope="itemscope" itemtype="http://schema.org/Event" class="container details_container">
|
||||
<div class="events_details_row mb32">
|
||||
<!-- Event organizer info -->
|
||||
<div class="event_div">
|
||||
<div class="wrapper">
|
||||
<h4 itemprop="name" class="event_name" t-field="event.name"></h4>
|
||||
|
||||
<div class="event_info">
|
||||
<div class="name">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-user" width="16" height="16" viewBox="0 0 24 24" stroke-width="1.5" stroke="#2c3e50" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
|
||||
<circle cx="12" cy="7" r="4" />
|
||||
<path d="M6 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2" />
|
||||
</svg>
|
||||
<span class="org_name" t-field="event.organizer_id" t-options='{
|
||||
"widget": "contact",
|
||||
"fields": ["name"]
|
||||
}' />
|
||||
</div>
|
||||
<div class="date">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-calendar" width="16" height="16" viewBox="0 0 24 24" stroke-width="1.5" stroke="#2c3e50" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
|
||||
<rect x="4" y="5" width="16" height="16" rx="2" />
|
||||
<line x1="16" y1="3" x2="16" y2="7" />
|
||||
<line x1="8" y1="3" x2="8" y2="7" />
|
||||
<line x1="4" y1="11" x2="20" y2="11" />
|
||||
<line x1="11" y1="15" x2="12" y2="15" />
|
||||
<line x1="12" y1="15" x2="12" y2="18" />
|
||||
</svg>
|
||||
<span t-field="event.with_context(tz=event.date_tz).date_begin" t-options='{"hide_seconds":"True"}'> </span>
|
||||
</div>
|
||||
<div class="location">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-map-pin" width="16" height="16" viewBox="0 0 24 24" stroke-width="1.5" stroke="#2c3e50" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
|
||||
<circle cx="12" cy="11" r="3" />
|
||||
<path d="M17.657 16.657l-4.243 4.243a2 2 0 0 1 -2.827 0l-4.244 -4.243a8 8 0 1 1 11.314 0z" />
|
||||
</svg>
|
||||
<span t-field="event.organizer_id" t-options='{
|
||||
"widget": "contact",
|
||||
"fields": ["address"]
|
||||
}' />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- location on the map -->
|
||||
<div class="event_div">
|
||||
<div class="wrapper">
|
||||
<h4> Location on the Map </h4>
|
||||
<span>
|
||||
<t t-if="event.google_map_img()">
|
||||
<a t-att-href="event.google_map_link()" target="_BLANK">
|
||||
<img t-att-src="event.google_map_img()" width="100%%"/>
|
||||
</a>
|
||||
</t>
|
||||
<t t-else="1">
|
||||
<a class="google_maps" t-att-href="event.google_map_link()" target="_BLANK">Google Maps</a>
|
||||
</t>
|
||||
</span>
|
||||
<div class="event_info">
|
||||
<div class="location">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-map-pin" width="16" height="16" viewBox="0 0 24 24" stroke-width="1.5" stroke="#2c3e50" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
|
||||
<circle cx="12" cy="11" r="3" />
|
||||
<path d="M17.657 16.657l-4.243 4.243a2 2 0 0 1 -2.827 0l-4.244 -4.243a8 8 0 1 1 11.314 0z" />
|
||||
</svg>
|
||||
<span t-field="event.organizer_id" t-options='{
|
||||
"widget": "contact",
|
||||
"fields": ["address"]
|
||||
}' />
|
||||
</div>
|
||||
<div class="location">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-phone" width="16" height="16" viewBox="0 0 24 24" stroke-width="1.5" stroke="#2c3e50" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
|
||||
<path d="M5 4h4l2 5l-2.5 1.5a11 11 0 0 0 5 5l1.5 -2.5l5 2v4a2 2 0 0 1 -2 2a16 16 0 0 1 -15 -15a2 2 0 0 1 2 -2" />
|
||||
</svg>
|
||||
<span t-field="event.organizer_id" t-options='{
|
||||
"widget": "contact",
|
||||
"fields": ["phone", "mobile"]
|
||||
}' />
|
||||
</div>
|
||||
<div class="location">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-mail-opened" width="16" height="16" viewBox="0 0 24 24" stroke-width="1.5" stroke="#2c3e50" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path stroke="none" d="M0 0h24v24H0z" fill="none"/>
|
||||
<polyline points="3 9 12 15 21 9 12 3 3 9" />
|
||||
<path d="M21 9v10a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-10" />
|
||||
<line x1="3" y1="19" x2="9" y2="13" />
|
||||
<line x1="15" y1="13" x2="21" y2="19" />
|
||||
</svg>
|
||||
<span t-field="event.organizer_id" t-options='{
|
||||
"widget": "contact",
|
||||
"fields": ["email"]
|
||||
}' />
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="container events_details_row ">
|
||||
<div class="join_us event_div">
|
||||
<div class="wrapper sponsors_wrapper">
|
||||
<h4> Join us now in <t t-esc="event.name"/> </h4>
|
||||
<div class="row mt32 mb32">
|
||||
<t t-raw="0"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="join_us event_div">
|
||||
<div class="wrapper">
|
||||
<h4> Join as a Sponsor </h4>
|
||||
<span class="trigger_sponsors_modal btn btn-primary btn-block"> Join </span>
|
||||
<div id="response"></div>
|
||||
<div id="sponsors_modal" class="modal custom_modal fade" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<form id="sponsors_form_reg" method="POST" class="form">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">x</button>
|
||||
<h4 class="modal-title" id="myModalLabel"><strong>Sponsors</strong></h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<!-- <input type="hidden" name="csrf_token" t-att-value="request.csrf_token()"/> -->
|
||||
<input type="hidden" id="eid" name="id" t-att-value="event.id"/>
|
||||
<div class="form-group">
|
||||
<label for="sponsprs_types"> Sponsor Type </label>
|
||||
<select name="sponsor_type_id" id="sponsprs_types" class="form-control custom-select">
|
||||
<option value="-- Select Type --" id="select_type" disabled="disabled"> -- Select Type -- </option>
|
||||
</select>
|
||||
</div>
|
||||
<input type="hidden" id="userId" name="partner_id" t-att-value="request.env.user.id"/>
|
||||
<input type="hidden" id="eventId" name="event_id" t-att-value="event.id"/>
|
||||
<div class="form-group">
|
||||
<label> URL </label>
|
||||
<input type="text" id="url" name="url" class="input form-control"/>
|
||||
</div>
|
||||
<div class="new_sponsor w-100"></div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<div class="">
|
||||
<button type="submit" id="submit" class="btn btn-primary submit_sponsors">Continue</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container sponsors_container mb16 hidden-print" t-if="event.sponsor_ids">
|
||||
<div class="sponsors_wrapper">
|
||||
<h4 class="text-center">Our Sponsors</h4>
|
||||
<div class="row">
|
||||
<div t-attf-class="oe_sponsor" t-foreach="event.sponsor_ids" t-as="sponsor">
|
||||
<t t-if="sponsor.url">
|
||||
<a t-att-href="sponsor.url" style="position: relative; display: inline-block;">
|
||||
<span t-field="sponsor.image_medium"
|
||||
t-options='{"widget": "image", "class": "shadow"}'/>
|
||||
<div class="ribbon-wrapper">
|
||||
<div t-field="sponsor.sponsor_type_id" t-attf-class="ribbon ribbon_#{sponsor.sponsor_type_id.name}"/>
|
||||
</div>
|
||||
</a>
|
||||
</t>
|
||||
<t t-if="not sponsor.url">
|
||||
<span style="position: relative; display: inline-block;">
|
||||
<span t-field="sponsor.image_medium"
|
||||
t-options='{"widget": "image", "class": "shadow"}'/>
|
||||
<div class="ribbon-wrapper">
|
||||
<div t-field="sponsor.sponsor_type_id" t-attf-class="ribbon ribbon_#{sponsor.sponsor_type_id.name}"/>
|
||||
</div>
|
||||
</span>
|
||||
</t>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</xpath>
|
||||
</template>
|
||||
|
||||
|
||||
|
||||
|
||||
<template id="sponsors_holder" inherit_id="website_event_track.event_sponsor" >
|
||||
<xpath expr="//div[hasclass('container')]" position="replace">
|
||||
|
||||
</xpath>
|
||||
|
||||
</template>
|
||||
<!-- modal_attendees_registration -->
|
||||
<template id="attendans" inherit_id="website_event.registration_attendee_details" >
|
||||
<xpath expr="//div[@id='modal_attendees_registration']" position="replace">
|
||||
<div id="modal_attendees_registration" class="modal custom_modal fade" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<form id="attendee_registration" t-attf-action="/event/#{slug(event)}/registration/confirm" method="post" class="js_website_submit_form">
|
||||
<input type="hidden" name="csrf_token" t-att-value="request.csrf_token()"/>
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">x</button>
|
||||
<h4 class="modal-title" id="myModalLabel"><strong>Attendees</strong></h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="container">
|
||||
<t t-set="counter_type" t-value="1"/>
|
||||
<t t-set="counter" t-value="0"/>
|
||||
<t t-foreach="tickets" t-as="ticket">
|
||||
<h4 class="page-header mt16">
|
||||
<strong>
|
||||
Ticket Type #<t t-raw="counter_type"/>: <t t-esc="ticket['name']"/>
|
||||
<t t-if="ticket['price'] == 0">(Free)</t>
|
||||
</strong>
|
||||
</h4>
|
||||
<t t-foreach="range(1, ticket['quantity'] + 1)" t-as="att_counter" name="attendee_loop">
|
||||
<t t-set="counter" t-value="counter + 1"/>
|
||||
<div class="row mb4">
|
||||
<t t-set="attendee_placeholder">Attendee #%s</t>
|
||||
<div class="attendans_wrapper">
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label> Name </label>
|
||||
<input class='form-control' type='text' t-attf-name="#{counter}-name" required="This field is required" t-att-placeholder="attendee_placeholder %counter"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label> Email </label>
|
||||
<input class='form-control' placeholder="Email" type='email' t-attf-name="#{counter}-email" required="This field is required"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<div class="form-group">
|
||||
<label> Phone </label>
|
||||
<input class='form-control' placeholder="Phone" type='tel' t-attf-name="#{counter}-phone"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<input class='hidden' type='text' t-attf-name="#{counter}-ticket_id" t-attf-value="#{ticket['id']}"/>
|
||||
</div>
|
||||
</t>
|
||||
<t t-id="myReg" t-call="website_event.registration_template">
|
||||
<div class="form-group">
|
||||
<label> Quantity </label>
|
||||
<div class="col-xs-6 col-md-3">
|
||||
|
||||
<t t-if="tickets_available">
|
||||
<link itemprop="availability" content="http://schema.org/InStock"/>
|
||||
<t t-raw="quantity"/>
|
||||
</t>
|
||||
<t t-else="">
|
||||
<span itemprop="availability" content="http://schema.org/SoldOut">
|
||||
Sold Out
|
||||
</span>
|
||||
</t>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-xs-6 col-md-3" t-raw="price"/>
|
||||
</div>
|
||||
<div class="registeration_end">
|
||||
Registration End Date
|
||||
<div class="col-xs-6 col-md-3" t-raw="registration_end"/>
|
||||
|
||||
</div>
|
||||
</t>
|
||||
|
||||
|
||||
|
||||
<t t-set="counter_type" t-value="counter_type + 1"/>
|
||||
</t>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<div class="pull-left">
|
||||
<button type="submit" class="btn btn-primary">Continue</button>
|
||||
<button type="button" class="btn btn-default js_goto_event" data-dismiss="modal">Cancel Registration</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</xpath>
|
||||
</template>
|
||||
|
||||
<!-- <template id="reg_temp" inherit_id="website_event.registration_template" name="event reg">-->
|
||||
<!-- <xpath expr="//form[@id='registration_form']" position="replace">-->
|
||||
<!-- <form id="registration_form" t-attf-action="/event/#{slug(event)}/registration/new" method="post" class="panel panel-default" t-if="buy">-->
|
||||
<!-- <input type="hidden" name="csrf_token" t-att-value="request.csrf_token()"/>-->
|
||||
<!-- <t t-id="tickets">-->
|
||||
<!-- <t t-set="registration_end">-->
|
||||
<!-- <t t-if="event.date_begin">-->
|
||||
<!-- Date : -->
|
||||
<!-- <span t-esc="event.date_begin_located"/>-->
|
||||
<!-- </t>-->
|
||||
<!-- <t t-if="not event.date_begin">-->
|
||||
<!-- <span>Unlimited</span>-->
|
||||
<!-- </t>-->
|
||||
<!-- </t>-->
|
||||
<!-- <t t-set="price">-->
|
||||
<!-- Price is -->
|
||||
<!-- <span itemprop="price" content="0">-->
|
||||
<!-- Free-->
|
||||
<!-- </span>-->
|
||||
<!-- </t>-->
|
||||
<!-- <t t-set="quantity">-->
|
||||
<!-- <span class="my_label"> Number of Attendance </span>-->
|
||||
<!-- <select name="nb_register-0" class="form-control">-->
|
||||
<!-- <t t-foreach="range(1, (event.seats_availability == 'unlimited' or event.seats_available > 9) and 10 or event.seats_available+1)" t-as="nb">-->
|
||||
<!-- <option t-esc="nb" t-att-selected="nb == 1 and 'selected'"/>-->
|
||||
<!-- </t>-->
|
||||
<!-- </select>-->
|
||||
<!-- </t>-->
|
||||
<!-- </t>-->
|
||||
<!-- <div class="panel-footer">-->
|
||||
<!-- <div class="row">-->
|
||||
<!-- <div class="col-md-4 col-md-offset-8 col-lg-3 col-lg-offset-9">-->
|
||||
<!-- <button type="submit" class="btn btn-primary btn-lg btn-block a-submit" t-attf-id="#{event.id}">-->
|
||||
<!-- Register Now-->
|
||||
<!-- </button>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- </form>-->
|
||||
<!-- </xpath>-->
|
||||
<!-- </template>-->
|
||||
|
||||
<!-- <template id="ticket_redesign" inherit_id="website_event.ticket" name="ticket design">-->
|
||||
<!-- <xpath expr="//div[@class='panel-body']" position="replace">-->
|
||||
<!-- <div class="panel-body">-->
|
||||
<!-- <div class="row" itemscope="itemscope" itemtype="http://schema.org/Offer">-->
|
||||
<!-- <div class="col-xs-6 d-none end_reg hidden-md hidden-lg">-->
|
||||
<!-- <h6>End of Registration</h6>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="col-xs-6 d-none col-md-3" itemprop="availabilityEnds" t-raw="registration_end"/>-->
|
||||
<!-- <div class="clearfix d-none hidden-md hidden-lg mb4"/>-->
|
||||
<!-- <div class="col-xs-6 d-none hidden-md hidden-lg">-->
|
||||
<!-- <h6>Price</h6>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="col-xs-6 col-md-3 d-none" t-raw="price"/>-->
|
||||
<!-- <div class="clearfix hidden-md d-none hidden-lg mb4"/>-->
|
||||
<!-- <div class="col-xs-6 hidden-md d-none hidden-lg">-->
|
||||
<!-- <h6>Quantity</h6>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="col-xs-6 number_of_attendance col-md-3">-->
|
||||
<!-- <t t-if="tickets_available">-->
|
||||
<!-- <link itemprop="availability" content="http://schema.org/InStock"/>-->
|
||||
<!-- <t t-raw="quantity"/>-->
|
||||
<!-- </t>-->
|
||||
<!-- <t t-else="">-->
|
||||
<!-- <span itemprop="availability" content="http://schema.org/SoldOut">-->
|
||||
<!-- Sold Out-->
|
||||
<!-- </span>-->
|
||||
<!-- </t>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <script src="/event_website_custom/static/src/js/sponsors.js"></script>-->
|
||||
<!-- </div>-->
|
||||
<!-- </xpath>-->
|
||||
<!-- </template>-->
|
||||
|
||||
<template id="events_details_assets" inherit_id="website.assets_frontend" name="events details">
|
||||
<xpath expr="." position="inside">
|
||||
<link rel="stylesheet" href="/event_website_custom/static/src/css/event_details.css"/>
|
||||
</xpath>
|
||||
</template>
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,101 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<template id="custom_events" inherit_id="website_event.index" name="Events Holder">
|
||||
<xpath expr="//div[@class='container']" position="replace">
|
||||
<div class="container main_events_container">
|
||||
<link rel="stylesheet" href="/event_website_custom/static/src/css/events.css"/>
|
||||
<h2 class="events_title"> Events </h2>
|
||||
<div class="row mt8">
|
||||
<div class="col-sm-12">
|
||||
<ol class="breadcrumb mb0">
|
||||
<li>
|
||||
<a href="/event">Our Events</a>
|
||||
</li>
|
||||
<li t-if="current_date"><t t-esc="current_date"/></li>
|
||||
<li t-if="current_type"><t t-esc="current_type.name"/></li>
|
||||
<li t-if="current_country"><t t-esc="current_country.name"/></li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-6 col-xs-offset-3">
|
||||
<t t-call="website.pager"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mt32 events_row mb32">
|
||||
<div class="col-lg-9" id="middle_column">
|
||||
<div class="text-center text-muted" t-if="not event_ids">
|
||||
<h1>No event found</h1>
|
||||
<p groups="event.group_event_manager">Use the top menu <i>'Content'</i> to create your first event.</p>
|
||||
</div>
|
||||
<ul class="events_list">
|
||||
<li t-foreach="event_ids" t-as="event" class="single_event">
|
||||
<div itemscope="itemscope" itemtype="http://schema.org/Event" class="event_content">
|
||||
<h4 class="media-heading">
|
||||
<a itemprop="url" t-att-class="event.state == 'done' and 'text-success'" t-attf-href="/event/#{ slug(event) }/#{(not event.menu_id) and 'register' or ''}">
|
||||
<span itemprop="name" t-field="event.name" class="event_name"> </span>
|
||||
</a>
|
||||
<small t-if="event.is_participating" class="label label-info">Participating</small>
|
||||
<small t-if="event.is_online" class="label label-info">Online</small>
|
||||
<small t-if="not event.website_published" class="label label-danger">unpublished</small>
|
||||
</h4>
|
||||
<div class="org_by event_data">
|
||||
<t t-if="event.organizer_id">
|
||||
Organized by: <span t-field="event.organizer_id"> </span>
|
||||
</t>
|
||||
</div>
|
||||
<div class="event_date event_data">
|
||||
<i class="fa fa-clock-o"></i> <span itemprop="startDate" t-field="event.with_context(tz=event.date_tz).date_begin" t-options='{"hide_seconds":"True"}'> </span> <i>to</i> <span itemprop="endDate" t-field="event.with_context(tz=event.date_tz).date_end" t-options='{"hide_seconds":"True"}'> </span>
|
||||
</div>
|
||||
<t t-if="not event.is_online">
|
||||
<div class="event_location event_data" itemprop="location" t-field="event.address_id" t-options='{
|
||||
"widget": "contact",
|
||||
"fields": ["city"]
|
||||
}'/>
|
||||
</t>
|
||||
<div class="text-muted event_tag event_data" t-if="event.event_type_id">
|
||||
<i class="fa fa-tag"></i> <span t-field="event.event_type_id"/>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- <div class="col-md-3 oe_structure" id="right_column">
|
||||
</div> -->
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-6 col-xs-offset-3">
|
||||
<t t-call="website.pager"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</xpath>
|
||||
</template>
|
||||
|
||||
<template id="event_left_column" customize_show="True" inherit_id="website_event.index" name="Filters">
|
||||
<xpath expr="//div[@id='middle_column']" position="attributes">
|
||||
<attribute name="class">col-md-6</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//div[@id='middle_column']" position="before">
|
||||
<div class="col-lg-3 css_noprint events_categories" id="left_column">
|
||||
<ul class="nav nav-pills nav-stacked">
|
||||
<t t-foreach="dates" t-as="date">
|
||||
<li t-att-class="searches.get('date') == date[0] and 'active' or None" t-if="date[3] or (date[0] in ('old','all'))">
|
||||
<a t-attf-href="/event?{{ keep_query('country', 'type', date=date[0]) }}"><t t-esc="date[1]"/>
|
||||
<span t-if="date[3]" class="badge pull-right"><t t-esc="date[3]"/></span>
|
||||
</a>
|
||||
</li>
|
||||
</t>
|
||||
</ul>
|
||||
</div>
|
||||
</xpath>
|
||||
<xpath expr="//div[@id='middle_column']" position="attributes">
|
||||
<attribute name="class">col-lg-9</attribute>
|
||||
</xpath>
|
||||
</template>
|
||||
|
||||
<!-- <template id="events_assets" inherit_id="website.assets_frontend" name="events">
|
||||
<xpath expr="." position="inside">
|
||||
</xpath>
|
||||
</template> -->
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,165 @@
|
|||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
|
||||
This version of the GNU Lesser General Public License incorporates
|
||||
the terms and conditions of version 3 of the GNU General Public
|
||||
License, supplemented by the additional permissions listed below.
|
||||
|
||||
0. Additional Definitions.
|
||||
|
||||
As used herein, "this License" refers to version 3 of the GNU Lesser
|
||||
General Public License, and the "GNU GPL" refers to version 3 of the GNU
|
||||
General Public License.
|
||||
|
||||
"The Library" refers to a covered work governed by this License,
|
||||
other than an Application or a Combined Work as defined below.
|
||||
|
||||
An "Application" is any work that makes use of an interface provided
|
||||
by the Library, but which is not otherwise based on the Library.
|
||||
Defining a subclass of a class defined by the Library is deemed a mode
|
||||
of using an interface provided by the Library.
|
||||
|
||||
A "Combined Work" is a work produced by combining or linking an
|
||||
Application with the Library. The particular version of the Library
|
||||
with which the Combined Work was made is also called the "Linked
|
||||
Version".
|
||||
|
||||
The "Minimal Corresponding Source" for a Combined Work means the
|
||||
Corresponding Source for the Combined Work, excluding any source code
|
||||
for portions of the Combined Work that, considered in isolation, are
|
||||
based on the Application, and not on the Linked Version.
|
||||
|
||||
The "Corresponding Application Code" for a Combined Work means the
|
||||
object code and/or source code for the Application, including any data
|
||||
and utility programs needed for reproducing the Combined Work from the
|
||||
Application, but excluding the System Libraries of the Combined Work.
|
||||
|
||||
1. Exception to Section 3 of the GNU GPL.
|
||||
|
||||
You may convey a covered work under sections 3 and 4 of this License
|
||||
without being bound by section 3 of the GNU GPL.
|
||||
|
||||
2. Conveying Modified Versions.
|
||||
|
||||
If you modify a copy of the Library, and, in your modifications, a
|
||||
facility refers to a function or data to be supplied by an Application
|
||||
that uses the facility (other than as an argument passed when the
|
||||
facility is invoked), then you may convey a copy of the modified
|
||||
version:
|
||||
|
||||
a) under this License, provided that you make a good faith effort to
|
||||
ensure that, in the event an Application does not supply the
|
||||
function or data, the facility still operates, and performs
|
||||
whatever part of its purpose remains meaningful, or
|
||||
|
||||
b) under the GNU GPL, with none of the additional permissions of
|
||||
this License applicable to that copy.
|
||||
|
||||
3. Object Code Incorporating Material from Library Header Files.
|
||||
|
||||
The object code form of an Application may incorporate material from
|
||||
a header file that is part of the Library. You may convey such object
|
||||
code under terms of your choice, provided that, if the incorporated
|
||||
material is not limited to numerical parameters, data structure
|
||||
layouts and accessors, or small macros, inline functions and templates
|
||||
(ten or fewer lines in length), you do both of the following:
|
||||
|
||||
a) Give prominent notice with each copy of the object code that the
|
||||
Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
|
||||
b) Accompany the object code with a copy of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
4. Combined Works.
|
||||
|
||||
You may convey a Combined Work under terms of your choice that,
|
||||
taken together, effectively do not restrict modification of the
|
||||
portions of the Library contained in the Combined Work and reverse
|
||||
engineering for debugging such modifications, if you also do each of
|
||||
the following:
|
||||
|
||||
a) Give prominent notice with each copy of the Combined Work that
|
||||
the Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
|
||||
b) Accompany the Combined Work with a copy of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
c) For a Combined Work that displays copyright notices during
|
||||
execution, include the copyright notice for the Library among
|
||||
these notices, as well as a reference directing the user to the
|
||||
copies of the GNU GPL and this license document.
|
||||
|
||||
d) Do one of the following:
|
||||
|
||||
0) Convey the Minimal Corresponding Source under the terms of this
|
||||
License, and the Corresponding Application Code in a form
|
||||
suitable for, and under terms that permit, the user to
|
||||
recombine or relink the Application with a modified version of
|
||||
the Linked Version to produce a modified Combined Work, in the
|
||||
manner specified by section 6 of the GNU GPL for conveying
|
||||
Corresponding Source.
|
||||
|
||||
1) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (a) uses at run time
|
||||
a copy of the Library already present on the user's computer
|
||||
system, and (b) will operate properly with a modified version
|
||||
of the Library that is interface-compatible with the Linked
|
||||
Version.
|
||||
|
||||
e) Provide Installation Information, but only if you would otherwise
|
||||
be required to provide such information under section 6 of the
|
||||
GNU GPL, and only to the extent that such information is
|
||||
necessary to install and execute a modified version of the
|
||||
Combined Work produced by recombining or relinking the
|
||||
Application with a modified version of the Linked Version. (If
|
||||
you use option 4d0, the Installation Information must accompany
|
||||
the Minimal Corresponding Source and Corresponding Application
|
||||
Code. If you use option 4d1, you must provide the Installation
|
||||
Information in the manner specified by section 6 of the GNU GPL
|
||||
for conveying Corresponding Source.)
|
||||
|
||||
5. Combined Libraries.
|
||||
|
||||
You may place library facilities that are a work based on the
|
||||
Library side by side in a single library together with other library
|
||||
facilities that are not Applications and are not covered by this
|
||||
License, and convey such a combined library under terms of your
|
||||
choice, if you do both of the following:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work based
|
||||
on the Library, uncombined with any other library facilities,
|
||||
conveyed under the terms of this License.
|
||||
|
||||
b) Give prominent notice with the combined library that part of it
|
||||
is a work based on the Library, and explaining where to find the
|
||||
accompanying uncombined form of the same work.
|
||||
|
||||
6. Revised Versions of the GNU Lesser General Public License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions
|
||||
of the GNU Lesser General Public License from time to time. Such new
|
||||
versions will be similar in spirit to the present version, but may
|
||||
differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Library as you received it specifies that a certain numbered version
|
||||
of the GNU Lesser General Public License "or any later version"
|
||||
applies to it, you have the option of following the terms and
|
||||
conditions either of that published version or of any later version
|
||||
published by the Free Software Foundation. If the Library as you
|
||||
received it does not specify a version number of the GNU Lesser
|
||||
General Public License, you may choose any version of the GNU Lesser
|
||||
General Public License ever published by the Free Software Foundation.
|
||||
|
||||
If the Library as you received it specifies that a proxy can decide
|
||||
whether future versions of the GNU Lesser General Public License shall
|
||||
apply, that proxy's public statement of acceptance of any version is
|
||||
permanent authorization for you to choose that version for the
|
||||
Library.
|
||||
|
|
@ -0,0 +1,120 @@
|
|||
==============
|
||||
MuK Autovacuum
|
||||
==============
|
||||
|
||||
Allows the administrator to create rules to automatically garbage collect
|
||||
a certain model. Every rule can have a different time interval additional
|
||||
constraints. An extra constraint can be for example to only delete inactive
|
||||
records.
|
||||
|
||||
Installation
|
||||
============
|
||||
|
||||
To install this module, you need to:
|
||||
|
||||
Download the module and add it to your Odoo addons folder. Afterward, log on to
|
||||
your Odoo server and go to the Apps menu. Trigger the debug mode and update the
|
||||
list by clicking on the "Update Apps List" link. Now install the module by
|
||||
clicking on the install button.
|
||||
|
||||
Another way to install this module is via the package management for Python
|
||||
(`PyPI <https://pypi.org/project/pip/>`_).
|
||||
|
||||
To install our modules using the package manager make sure
|
||||
`odoo-autodiscover <https://pypi.org/project/odoo-autodiscover/>`_ is installed
|
||||
correctly. Then open a console and install the module by entering the following
|
||||
command:
|
||||
|
||||
``pip install --extra-index-url https://nexus.mukit.at/repository/odoo/simple <module>``
|
||||
|
||||
The module name consists of the Odoo version and the module name, where
|
||||
underscores are replaced by a dash.
|
||||
|
||||
**Module:**
|
||||
|
||||
``odoo<version>-addon-<module_name>``
|
||||
|
||||
**Example:**
|
||||
|
||||
``sudo -H pip3 install --extra-index-url https://nexus.mukit.at/repository/odoo/simple odoo11-addon-muk-utils``
|
||||
|
||||
Once the installation has been successfully completed, the app is already in the
|
||||
correct folder. Log on to your Odoo server and go to the Apps menu. Trigger the
|
||||
debug mode and update the list by clicking on the "Update Apps List" link. Now
|
||||
install the module by clicking on the install button.
|
||||
|
||||
The biggest advantage of this variant is that you can now also update the app
|
||||
using the "pip" command. To do this, enter the following command in your console:
|
||||
|
||||
``pip install --upgrade --extra-index-url https://nexus.mukit.at/repository/odoo/simple <module>``
|
||||
|
||||
When the process is finished, restart your server and update the application in
|
||||
Odoo. The steps are the same as for the installation only the button has changed
|
||||
from "Install" to "Upgrade".
|
||||
|
||||
You can also view available Apps directly in our `repository <https://nexus.mukit.at/#browse/browse:odoo>`_
|
||||
and find a more detailed installation guide on our `website <https://mukit.at/page/open-source>`_.
|
||||
|
||||
For modules licensed under OPL-1, you will receive access data when you purchase
|
||||
the module. If the modules were not purchased directly from
|
||||
`MuK IT <https://www.mukit.at/>`_ please contact our support (support@mukit.at)
|
||||
with a confirmation of purchase to receive the corresponding access data.
|
||||
|
||||
Upgrade
|
||||
============
|
||||
|
||||
To upgrade this module, you need to:
|
||||
|
||||
Download the module and add it to your Odoo addons folder. Restart the server
|
||||
and log on to your Odoo server. Select the Apps menu and upgrade the module by
|
||||
clicking on the upgrade button.
|
||||
|
||||
If you installed the module using the "pip" command, you can also update the
|
||||
module in the same way. Just type the following command into the console:
|
||||
|
||||
``pip install --upgrade --extra-index-url https://nexus.mukit.at/repository/odoo/simple <module>``
|
||||
|
||||
When the process is finished, restart your server and update the application in
|
||||
Odoo, just like you would normally.
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
To configure this module, you need to:
|
||||
|
||||
#. Go to *Settings* while being in debug mode.
|
||||
#. Afterwards go to *Technical -> Automation -> Auto Vacuum Rules*.
|
||||
#. And create a new rule.
|
||||
|
||||
Usage
|
||||
=============
|
||||
|
||||
This module has no direct visible effect on the system. The garbage collections
|
||||
happens during the autovacuum cron job.
|
||||
|
||||
Credits
|
||||
=======
|
||||
|
||||
Contributors
|
||||
------------
|
||||
|
||||
* Mathias Markl <mathias.markl@mukit.at>
|
||||
|
||||
Images
|
||||
------------
|
||||
|
||||
Some pictures are based on or inspired by the icon set of Font Awesome:
|
||||
|
||||
* `Font Awesome <https://fontawesome.com>`_
|
||||
|
||||
Author & Maintainer
|
||||
-------------------
|
||||
|
||||
This module is maintained by the `MuK IT GmbH <https://www.mukit.at/>`_.
|
||||
|
||||
MuK IT is an Austrian company specialized in customizing and extending Odoo.
|
||||
We develop custom solutions for your individual needs to help you focus on
|
||||
your strength and expertise to grow your business.
|
||||
|
||||
If you want to get in touch please contact us via mail
|
||||
(sale@mukit.at) or visit our website (https://mukit.at).
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
###################################################################################
|
||||
#
|
||||
# Copyright (c) 2017-2019 MuK IT GmbH.
|
||||
#
|
||||
# This file is part of MuK Autovacuum
|
||||
# (see https://mukit.at).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
###################################################################################
|
||||
|
||||
from . import models
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
###################################################################################
|
||||
#
|
||||
# Copyright (c) 2017-2019 MuK IT GmbH.
|
||||
#
|
||||
# This file is part of MuK Autovacuum
|
||||
# (see https://mukit.at).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
###################################################################################
|
||||
|
||||
{
|
||||
'name': 'MuK Autovacuum',
|
||||
'summary': 'Configure automatic garbage collection',
|
||||
'version': '12.0.3.0.1',
|
||||
'category': 'Extra Tools',
|
||||
'license': 'LGPL-3',
|
||||
'author': 'MuK IT',
|
||||
'website': 'https://www.mukit.at',
|
||||
'live_test_url': 'https://mukit.at/r/SgN',
|
||||
'contributors': [
|
||||
'Mathias Markl <mathias.markl@mukit.at>',
|
||||
],
|
||||
'depends': [
|
||||
'muk_utils',
|
||||
],
|
||||
'data': [
|
||||
'security/ir.model.access.csv',
|
||||
'views/rules.xml',
|
||||
'data/rules.xml',
|
||||
],
|
||||
'qweb': [
|
||||
'static/src/xml/*.xml',
|
||||
],
|
||||
'images': [
|
||||
'static/description/banner.png'
|
||||
],
|
||||
'external_dependencies': {
|
||||
'python': [],
|
||||
'bin': [],
|
||||
},
|
||||
'application': False,
|
||||
'installable': True,
|
||||
'auto_install': False,
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!--
|
||||
|
||||
Copyright (c) 2017-2019 MuK IT GmbH.
|
||||
|
||||
This file is part of MuK Autovacuum
|
||||
(see https://mukit.at).
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Lesser General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
-->
|
||||
|
||||
<odoo noupdate="1">
|
||||
|
||||
<record id="data_autovacuum_logs" model="muk_autovacuum.rules">
|
||||
<field name="name">Delete Logs after 2 Weeks</field>
|
||||
<field name="model" ref="base.model_ir_logging"/>
|
||||
<field name="time_field" ref="base.field_ir_logging__create_date"/>
|
||||
<field name="active" eval="False" />
|
||||
<field name="state">time</field>
|
||||
<field name="time_type">weeks</field>
|
||||
<field name="time">2</field>
|
||||
<field name="protect_starred" eval="False" />
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
`2.1.0`
|
||||
-------
|
||||
|
||||
- Added Python Expressions
|
||||
|
||||
`2.0.0`
|
||||
-------
|
||||
|
||||
- Migrated to Python 3
|
||||
|
||||
`1.1.0`
|
||||
-------
|
||||
|
||||
- Add field selector
|
||||
|
||||
|
||||
`1.0.0`
|
||||
-------
|
||||
|
||||
- Init version
|
||||
|
|
@ -0,0 +1,120 @@
|
|||
==============
|
||||
MuK Autovacuum
|
||||
==============
|
||||
|
||||
Allows the administrator to create rules to automatically garbage collect
|
||||
a certain model. Every rule can have a different time interval additional
|
||||
constraints. An extra constraint can be for example to only delete inactive
|
||||
records.
|
||||
|
||||
Installation
|
||||
============
|
||||
|
||||
To install this module, you need to:
|
||||
|
||||
Download the module and add it to your Odoo addons folder. Afterward, log on to
|
||||
your Odoo server and go to the Apps menu. Trigger the debug mode and update the
|
||||
list by clicking on the "Update Apps List" link. Now install the module by
|
||||
clicking on the install button.
|
||||
|
||||
Another way to install this module is via the package management for Python
|
||||
(`PyPI <https://pypi.org/project/pip/>`_).
|
||||
|
||||
To install our modules using the package manager make sure
|
||||
`odoo-autodiscover <https://pypi.org/project/odoo-autodiscover/>`_ is installed
|
||||
correctly. Then open a console and install the module by entering the following
|
||||
command:
|
||||
|
||||
``pip install --extra-index-url https://nexus.mukit.at/repository/odoo/simple <module>``
|
||||
|
||||
The module name consists of the Odoo version and the module name, where
|
||||
underscores are replaced by a dash.
|
||||
|
||||
**Module:**
|
||||
|
||||
``odoo<version>-addon-<module_name>``
|
||||
|
||||
**Example:**
|
||||
|
||||
``sudo -H pip3 install --extra-index-url https://nexus.mukit.at/repository/odoo/simple odoo11-addon-muk-utils``
|
||||
|
||||
Once the installation has been successfully completed, the app is already in the
|
||||
correct folder. Log on to your Odoo server and go to the Apps menu. Trigger the
|
||||
debug mode and update the list by clicking on the "Update Apps List" link. Now
|
||||
install the module by clicking on the install button.
|
||||
|
||||
The biggest advantage of this variant is that you can now also update the app
|
||||
using the "pip" command. To do this, enter the following command in your console:
|
||||
|
||||
``pip install --upgrade --extra-index-url https://nexus.mukit.at/repository/odoo/simple <module>``
|
||||
|
||||
When the process is finished, restart your server and update the application in
|
||||
Odoo. The steps are the same as for the installation only the button has changed
|
||||
from "Install" to "Upgrade".
|
||||
|
||||
You can also view available Apps directly in our `repository <https://nexus.mukit.at/#browse/browse:odoo>`_
|
||||
and find a more detailed installation guide on our `website <https://mukit.at/page/open-source>`_.
|
||||
|
||||
For modules licensed under OPL-1, you will receive access data when you purchase
|
||||
the module. If the modules were not purchased directly from
|
||||
`MuK IT <https://www.mukit.at/>`_ please contact our support (support@mukit.at)
|
||||
with a confirmation of purchase to receive the corresponding access data.
|
||||
|
||||
Upgrade
|
||||
============
|
||||
|
||||
To upgrade this module, you need to:
|
||||
|
||||
Download the module and add it to your Odoo addons folder. Restart the server
|
||||
and log on to your Odoo server. Select the Apps menu and upgrade the module by
|
||||
clicking on the upgrade button.
|
||||
|
||||
If you installed the module using the "pip" command, you can also update the
|
||||
module in the same way. Just type the following command into the console:
|
||||
|
||||
``pip install --upgrade --extra-index-url https://nexus.mukit.at/repository/odoo/simple <module>``
|
||||
|
||||
When the process is finished, restart your server and update the application in
|
||||
Odoo, just like you would normally.
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
To configure this module, you need to:
|
||||
|
||||
#. Go to *Settings* while being in debug mode.
|
||||
#. Afterwards go to *Technical -> Automation -> Auto Vacuum Rules*.
|
||||
#. And create a new rule.
|
||||
|
||||
Usage
|
||||
=============
|
||||
|
||||
This module has no direct visible effect on the system. The garbage collections
|
||||
happens during the autovacuum cron job.
|
||||
|
||||
Credits
|
||||
=======
|
||||
|
||||
Contributors
|
||||
------------
|
||||
|
||||
* Mathias Markl <mathias.markl@mukit.at>
|
||||
|
||||
Images
|
||||
------------
|
||||
|
||||
Some pictures are based on or inspired by the icon set of Font Awesome:
|
||||
|
||||
* `Font Awesome <https://fontawesome.com>`_
|
||||
|
||||
Author & Maintainer
|
||||
-------------------
|
||||
|
||||
This module is maintained by the `MuK IT GmbH <https://www.mukit.at/>`_.
|
||||
|
||||
MuK IT is an Austrian company specialized in customizing and extending Odoo.
|
||||
We develop custom solutions for your individual needs to help you focus on
|
||||
your strength and expertise to grow your business.
|
||||
|
||||
If you want to get in touch please contact us via mail
|
||||
(sale@mukit.at) or visit our website (https://mukit.at).
|
||||
|
|
@ -0,0 +1,402 @@
|
|||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * muk_autovacuum
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 12.0-20190522\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2019-07-12 23:43+0000\n"
|
||||
"PO-Revision-Date: 2019-07-12 23:43+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>Warning</code>: Warning Exception to use with <code>raise</code>"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>b64encode</code>, <code>b64decode</code>: Base64 converter"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>date_format</code>, <code>datetime_format</code>: server date and time formats"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>env</code>: Odoo Environment on which the rule is triggered"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>logger.info(message)</code>: Python logging framework"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>model</code>: Odoo Model of the record on which the rule is triggered"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>time</code>, <code>datetime</code>, <code>dateutil</code>, <code>timezone</code>: useful Python libraries"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>uid</code>, <code>user</code>: User on which the rule is triggered"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__active
|
||||
msgid "Active"
|
||||
msgstr "نشط"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search
|
||||
msgid "All"
|
||||
msgstr "الكل"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.actions.act_window,name:muk_autovacuum.action_autovacuum_rule
|
||||
#: model:ir.model,name:muk_autovacuum.model_muk_autovacuum_rules
|
||||
#: model:ir.ui.menu,name:muk_autovacuum.menu_autovacuum_rules
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_tree
|
||||
msgid "Auto Vacuum Rules"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model,name:muk_autovacuum.model_ir_autovacuum
|
||||
msgid "Automatic Vacuum"
|
||||
msgstr "تفريغ تلقائي"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__code
|
||||
msgid "Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,state:0
|
||||
msgid "Code Based"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Code Settings"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__code
|
||||
msgid "Code which will be executed during the clean up."
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__create_uid
|
||||
msgid "Created by"
|
||||
msgstr "أنشئ بواسطة"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__create_date
|
||||
msgid "Created on"
|
||||
msgstr "أنشئ في"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Days"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__domain
|
||||
msgid "Delete all records which match the domain."
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__time
|
||||
msgid "Delete older data than x."
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size_parameter_value
|
||||
msgid "Delete records with am index greater than x."
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__display_name
|
||||
msgid "Display Name"
|
||||
msgstr "اسم العرض"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__protect_starred
|
||||
msgid "Do not delete starred records.\n"
|
||||
" Checks for the following fields:\n"
|
||||
" - starred\n"
|
||||
" - favorite\n"
|
||||
" - is_starred\n"
|
||||
" - is_favorite"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__domain
|
||||
msgid "Domain"
|
||||
msgstr "النطاق"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,state:0
|
||||
msgid "Domain Based"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Domain Settings"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Enter Python code here. Help about Python expression is available in the help tab of this document."
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,size_type:0
|
||||
msgid "Fixed Value"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/ir_autovacuum.py:64
|
||||
#: code:addons/muk_autovacuum/models/ir_autovacuum.py:74
|
||||
#, python-format
|
||||
msgid "GC domain: %s"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/ir_autovacuum.py:71
|
||||
#, python-format
|
||||
msgid "GC domain: [] order: %s limit: %s"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/ir_autovacuum.py:87
|
||||
#, python-format
|
||||
msgid "GC'd %s %s records"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/ir_autovacuum.py:83
|
||||
#, python-format
|
||||
msgid "GC'd %s attachments from %s entries"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search
|
||||
msgid "Group By"
|
||||
msgstr "تجميع حسب"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Help"
|
||||
msgstr "المساعدة"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Help with Python expressions"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Hours"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__id
|
||||
msgid "ID"
|
||||
msgstr "المعرف"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/rules.py:290
|
||||
#, python-format
|
||||
msgid "Import Template for Auto Vacuum Rules"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules____last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr "آخر تعديل في"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__write_uid
|
||||
msgid "Last Updated by"
|
||||
msgstr "آخر تحديث بواسطة"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__write_date
|
||||
msgid "Last Updated on"
|
||||
msgstr "آخر تحديث في"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Minutes"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__model
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search
|
||||
msgid "Model"
|
||||
msgstr "النموذج"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__model_name
|
||||
msgid "Model Name"
|
||||
msgstr "إسم النموذج"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__model
|
||||
msgid "Model on which the rule is applied."
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Months"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__name
|
||||
msgid "Name"
|
||||
msgstr "الاسم"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__only_inactive
|
||||
msgid "Only Archived"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__only_attachments
|
||||
msgid "Only Attachments"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__only_inactive
|
||||
msgid "Only delete archived records."
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__only_attachments
|
||||
msgid "Only delete record attachments."
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size_order
|
||||
msgid "Order by which the index is defined."
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__protect_starred
|
||||
msgid "Protect Starred"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__state
|
||||
msgid "Rule Type"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/rules.py:330
|
||||
#, python-format
|
||||
msgid "Rule validation has failed!"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__sequence
|
||||
msgid "Sequence"
|
||||
msgstr "التسلسل"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size
|
||||
msgid "Size"
|
||||
msgstr "الحجم"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,state:0
|
||||
msgid "Size Based"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_order
|
||||
msgid "Size Order"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Size Settings"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_type
|
||||
msgid "Size Type"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_parameter_value
|
||||
msgid "Size Value"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_parameter
|
||||
#: selection:muk_autovacuum.rules,size_type:0
|
||||
msgid "System Parameter"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time
|
||||
msgid "Time"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,state:0
|
||||
msgid "Time Based"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time_field
|
||||
msgid "Time Field"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Time Settings"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time_type
|
||||
msgid "Time Unit"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Various fields may use Python code or Python expressions. The following variables can be used:"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Weeks"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Years"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "e.g. Delete Logs after 30 Days"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -0,0 +1,408 @@
|
|||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * muk_autovacuum
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 12.0-20190522\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2019-07-12 23:43+0000\n"
|
||||
"PO-Revision-Date: 2019-07-12 23:43+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>Warning</code>: Warning Exception to use with <code>raise</code>"
|
||||
msgstr "<code>Warnung:</code> Warnausnahme, die bei <code>einer Erhöhung</code> Anwendung findet"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>b64encode</code>, <code>b64decode</code>: Base64 converter"
|
||||
msgstr "<code>b64encode</code>, <code>b64decode</code>: Base64 Converter"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>date_format</code>, <code>datetime_format</code>: server date and time formats"
|
||||
msgstr "<code>date_format</code>, <code>datetime_format</code>: Serverdatum und Zeitformate"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>env</code>: Odoo Environment on which the rule is triggered"
|
||||
msgstr "<code>env</code>: Odoo Umgebung in welcher die Regel angewendet wird"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>logger.info(message)</code>: Python logging framework"
|
||||
msgstr "<code>logger.info(message)</code>: Python-Protokollierungs-Framework"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>model</code>: Odoo Model of the record on which the rule is triggered"
|
||||
msgstr "<code>model</code>: Odoo Modell des Datensatzes, auf dem die Regel angewendet wird"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>time</code>, <code>datetime</code>, <code>dateutil</code>, <code>timezone</code>: useful Python libraries"
|
||||
msgstr "<code>time</code>, <code>datetime</code>, <code>dateutil</code>, <code>timezone:</code> nützliche Python-Bibliotheken"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>uid</code>, <code>user</code>: User on which the rule is triggered"
|
||||
msgstr "<code>uid</code>, <code>Benutzer</code>: Benutzer an dem die Regel angewendet wird"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__active
|
||||
msgid "Active"
|
||||
msgstr "Aktiv"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search
|
||||
msgid "All"
|
||||
msgstr "Alle"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.actions.act_window,name:muk_autovacuum.action_autovacuum_rule
|
||||
#: model:ir.model,name:muk_autovacuum.model_muk_autovacuum_rules
|
||||
#: model:ir.ui.menu,name:muk_autovacuum.menu_autovacuum_rules
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_tree
|
||||
msgid "Auto Vacuum Rules"
|
||||
msgstr "Auto Vacuum Regeln"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model,name:muk_autovacuum.model_ir_autovacuum
|
||||
msgid "Automatic Vacuum"
|
||||
msgstr "Automatisch aufräumen"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__code
|
||||
msgid "Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,state:0
|
||||
msgid "Code Based"
|
||||
msgstr "Codebasiert"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Code Settings"
|
||||
msgstr "Codeeinstellungen"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__code
|
||||
msgid "Code which will be executed during the clean up."
|
||||
msgstr "Code, der während der Bereinigung ausgeführt wird."
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__create_uid
|
||||
msgid "Created by"
|
||||
msgstr "Erstellt von"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__create_date
|
||||
msgid "Created on"
|
||||
msgstr "Erstellt am"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Days"
|
||||
msgstr "Tage"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__domain
|
||||
msgid "Delete all records which match the domain."
|
||||
msgstr "Löschen Sie alle Datensätze, die mit der Domäne übereinstimmen."
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__time
|
||||
msgid "Delete older data than x."
|
||||
msgstr "Ältere Daten als x löschen."
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size_parameter_value
|
||||
msgid "Delete records with am index greater than x."
|
||||
msgstr "Datensätze mit einem Index größer als x löschen."
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__display_name
|
||||
msgid "Display Name"
|
||||
msgstr "Anzeigename"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__protect_starred
|
||||
msgid "Do not delete starred records.\n"
|
||||
" Checks for the following fields:\n"
|
||||
" - starred\n"
|
||||
" - favorite\n"
|
||||
" - is_starred\n"
|
||||
" - is_favorite"
|
||||
msgstr "Löscht keine markierten Datensätze.\n"
|
||||
" Überprüft die folgenden Felder:\n"
|
||||
" - mit Sternen übersät\n"
|
||||
" - starred\n"
|
||||
" - favorite\n"
|
||||
" - is_starred\n"
|
||||
" - is_favorite"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__domain
|
||||
msgid "Domain"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,state:0
|
||||
msgid "Domain Based"
|
||||
msgstr "Domainenbasiert"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Domain Settings"
|
||||
msgstr "Domaineinstellungen"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Enter Python code here. Help about Python expression is available in the help tab of this document."
|
||||
msgstr "Geben Sie Pyhton-Code hier ein. Hife zu Python-Ausdrücken ist in der Hilfe-Registerkarte dieses Dokuments verfügbar."
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,size_type:0
|
||||
msgid "Fixed Value"
|
||||
msgstr "Fixpunktwert"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/ir_autovacuum.py:64
|
||||
#: code:addons/muk_autovacuum/models/ir_autovacuum.py:74
|
||||
#, python-format
|
||||
msgid "GC domain: %s"
|
||||
msgstr "GC Domain: %s"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/ir_autovacuum.py:71
|
||||
#, python-format
|
||||
msgid "GC domain: [] order: %s limit: %s"
|
||||
msgstr "GC Domain: [] order: %s limit: %s"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/ir_autovacuum.py:87
|
||||
#, python-format
|
||||
msgid "GC'd %s %s records"
|
||||
msgstr "GC'd %s %s Aufnahmen"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/ir_autovacuum.py:83
|
||||
#, python-format
|
||||
msgid "GC'd %s attachments from %s entries"
|
||||
msgstr "GC'd %s Anhänge aus %s Einträgen"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search
|
||||
msgid "Group By"
|
||||
msgstr "Gruppieren nach"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Help"
|
||||
msgstr "Hilfe"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Help with Python expressions"
|
||||
msgstr "Hilfe mit Python-Ausdrücken"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Hours"
|
||||
msgstr "Stunden"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__id
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/rules.py:290
|
||||
#, python-format
|
||||
msgid "Import Template for Auto Vacuum Rules"
|
||||
msgstr "Importvorlage für die automatischen Aufräumregeln"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules____last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr "Zuletzt geändert am"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__write_uid
|
||||
msgid "Last Updated by"
|
||||
msgstr "Zuletzt aktualisiert durch"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__write_date
|
||||
msgid "Last Updated on"
|
||||
msgstr "Zuletzt aktualisiert am"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Minutes"
|
||||
msgstr "Minuten"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__model
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search
|
||||
msgid "Model"
|
||||
msgstr "Modell"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__model_name
|
||||
msgid "Model Name"
|
||||
msgstr "Modellname"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__model
|
||||
msgid "Model on which the rule is applied."
|
||||
msgstr "Modell, auf das die Regel angewendet wird."
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Months"
|
||||
msgstr "Monate"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__name
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__only_inactive
|
||||
msgid "Only Archived"
|
||||
msgstr "Nur Archiviert"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__only_attachments
|
||||
msgid "Only Attachments"
|
||||
msgstr "Nur Anhänge"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__only_inactive
|
||||
msgid "Only delete archived records."
|
||||
msgstr "Löschen Sie nur archivierte Sätze."
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__only_attachments
|
||||
msgid "Only delete record attachments."
|
||||
msgstr "Löschen Sie nur Datensatzanhänge."
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size_order
|
||||
msgid "Order by which the index is defined."
|
||||
msgstr "Reihenfolge, in der der Index definiert ist."
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__protect_starred
|
||||
msgid "Protect Starred"
|
||||
msgstr "Schützt Favoriten"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__state
|
||||
msgid "Rule Type"
|
||||
msgstr "Regeltyp"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/rules.py:330
|
||||
#, python-format
|
||||
msgid "Rule validation has failed!"
|
||||
msgstr "Die Regelvalidierung ist fehlgeschlagen!"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__sequence
|
||||
msgid "Sequence"
|
||||
msgstr "Nummernfolge"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size
|
||||
msgid "Size"
|
||||
msgstr "Größe"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,state:0
|
||||
msgid "Size Based"
|
||||
msgstr "Größenbasierend"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_order
|
||||
msgid "Size Order"
|
||||
msgstr "Größensortierung"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Size Settings"
|
||||
msgstr "Größeneinstellung"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_type
|
||||
msgid "Size Type"
|
||||
msgstr "Größe Typ"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_parameter_value
|
||||
msgid "Size Value"
|
||||
msgstr "Größenwert"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_parameter
|
||||
#: selection:muk_autovacuum.rules,size_type:0
|
||||
msgid "System Parameter"
|
||||
msgstr "Systemparameter"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time
|
||||
msgid "Time"
|
||||
msgstr "Zeit"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,state:0
|
||||
msgid "Time Based"
|
||||
msgstr "Zeitbasiert"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time_field
|
||||
msgid "Time Field"
|
||||
msgstr "Zeitfeld"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Time Settings"
|
||||
msgstr "Zeiteinstellungen"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time_type
|
||||
msgid "Time Unit"
|
||||
msgstr "Zeiteinheit"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Various fields may use Python code or Python expressions. The following variables can be used:"
|
||||
msgstr "Einige Felder erlauben Python Code oder Python Ausdrücke. Die folgenden Variablen können verwendet werden:"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Weeks"
|
||||
msgstr "Wochen"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Years"
|
||||
msgstr "Jahre"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "e.g. Delete Logs after 30 Days"
|
||||
msgstr "z.B. Protokolle nach 30 Tagen löschen"
|
||||
|
||||
|
|
@ -0,0 +1,407 @@
|
|||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * muk_autovacuum
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 12.0-20190522\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2019-07-12 23:43+0000\n"
|
||||
"PO-Revision-Date: 2019-07-12 23:43+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>Warning</code>: Warning Exception to use with <code>raise</code>"
|
||||
msgstr "<code>Advertencia</code>: Excepción de Advertencia para usar con <code>aumento</code>"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>b64encode</code>, <code>b64decode</code>: Base64 converter"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>date_format</code>, <code>datetime_format</code>: server date and time formats"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>env</code>: Odoo Environment on which the rule is triggered"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>logger.info(message)</code>: Python logging framework"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>model</code>: Odoo Model of the record on which the rule is triggered"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>time</code>, <code>datetime</code>, <code>dateutil</code>, <code>timezone</code>: useful Python libraries"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>uid</code>, <code>user</code>: User on which the rule is triggered"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__active
|
||||
msgid "Active"
|
||||
msgstr "Activo"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search
|
||||
msgid "All"
|
||||
msgstr "Todos"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.actions.act_window,name:muk_autovacuum.action_autovacuum_rule
|
||||
#: model:ir.model,name:muk_autovacuum.model_muk_autovacuum_rules
|
||||
#: model:ir.ui.menu,name:muk_autovacuum.menu_autovacuum_rules
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_tree
|
||||
msgid "Auto Vacuum Rules"
|
||||
msgstr "Reglas de vacío automático"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model,name:muk_autovacuum.model_ir_autovacuum
|
||||
msgid "Automatic Vacuum"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__code
|
||||
msgid "Code"
|
||||
msgstr "Código"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,state:0
|
||||
msgid "Code Based"
|
||||
msgstr "Basado en código"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Code Settings"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__code
|
||||
msgid "Code which will be executed during the clean up."
|
||||
msgstr "Código que se ejecutará durante la limpieza."
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__create_uid
|
||||
msgid "Created by"
|
||||
msgstr "Creado por"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__create_date
|
||||
msgid "Created on"
|
||||
msgstr "Creado el"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Days"
|
||||
msgstr "Días"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__domain
|
||||
msgid "Delete all records which match the domain."
|
||||
msgstr "Elimina todos los registros que coincidan con el dominio."
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__time
|
||||
msgid "Delete older data than x."
|
||||
msgstr "Borrar datos anteriores a x."
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size_parameter_value
|
||||
msgid "Delete records with am index greater than x."
|
||||
msgstr "Eliminar registros con un índice am mayor que x."
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__display_name
|
||||
msgid "Display Name"
|
||||
msgstr "Nombre mostrado"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__protect_starred
|
||||
msgid "Do not delete starred records.\n"
|
||||
" Checks for the following fields:\n"
|
||||
" - starred\n"
|
||||
" - favorite\n"
|
||||
" - is_starred\n"
|
||||
" - is_favorite"
|
||||
msgstr "No borre los registros marcados con asterisco.\n"
|
||||
" Verifica los siguientes campos:\n"
|
||||
" - marcado\n"
|
||||
" - preferido\n"
|
||||
" - is_starred\n"
|
||||
" - is_favorite"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__domain
|
||||
msgid "Domain"
|
||||
msgstr "Dominio"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,state:0
|
||||
msgid "Domain Based"
|
||||
msgstr "Basado en dominio"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Domain Settings"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Enter Python code here. Help about Python expression is available in the help tab of this document."
|
||||
msgstr "Introduzca código Python aquí. Ayuda disponible sobre expresiones Python en la pestaña de ayuda de este documento."
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,size_type:0
|
||||
msgid "Fixed Value"
|
||||
msgstr "Valor Fijo"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/ir_autovacuum.py:64
|
||||
#: code:addons/muk_autovacuum/models/ir_autovacuum.py:74
|
||||
#, python-format
|
||||
msgid "GC domain: %s"
|
||||
msgstr "Dominio GC: %s"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/ir_autovacuum.py:71
|
||||
#, python-format
|
||||
msgid "GC domain: [] order: %s limit: %s"
|
||||
msgstr "Dominio GC: [] orden: Límite en %s: %s"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/ir_autovacuum.py:87
|
||||
#, python-format
|
||||
msgid "GC'd %s %s records"
|
||||
msgstr "GC'd %s %s registros"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/ir_autovacuum.py:83
|
||||
#, python-format
|
||||
msgid "GC'd %s attachments from %s entries"
|
||||
msgstr "GC'd %s adjuntos de las entradas %s"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search
|
||||
msgid "Group By"
|
||||
msgstr "Agrupar por"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Help"
|
||||
msgstr "Ayuda"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Help with Python expressions"
|
||||
msgstr "Ayuda con expresiones Python"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Hours"
|
||||
msgstr "Horas"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__id
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/rules.py:290
|
||||
#, python-format
|
||||
msgid "Import Template for Auto Vacuum Rules"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules____last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr "Última modificación en"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__write_uid
|
||||
msgid "Last Updated by"
|
||||
msgstr "Última actualización por"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__write_date
|
||||
msgid "Last Updated on"
|
||||
msgstr "Última actualización el"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Minutes"
|
||||
msgstr "Actas"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__model
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search
|
||||
msgid "Model"
|
||||
msgstr "Modelo"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__model_name
|
||||
msgid "Model Name"
|
||||
msgstr "Nombre del modelo"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__model
|
||||
msgid "Model on which the rule is applied."
|
||||
msgstr "Modelo sobre el que se aplica la norma."
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Months"
|
||||
msgstr "Meses"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__name
|
||||
msgid "Name"
|
||||
msgstr "Nombre"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__only_inactive
|
||||
msgid "Only Archived"
|
||||
msgstr "Sólo archivado"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__only_attachments
|
||||
msgid "Only Attachments"
|
||||
msgstr "Sólo archivos adjuntos"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__only_inactive
|
||||
msgid "Only delete archived records."
|
||||
msgstr "Borrar sólo registros archivados."
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__only_attachments
|
||||
msgid "Only delete record attachments."
|
||||
msgstr "Sólo borre los archivos adjuntos de los registros."
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size_order
|
||||
msgid "Order by which the index is defined."
|
||||
msgstr "Orden por el que se define el índice."
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__protect_starred
|
||||
msgid "Protect Starred"
|
||||
msgstr "Proteger Estrellado"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__state
|
||||
msgid "Rule Type"
|
||||
msgstr "Clase de regla"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/rules.py:330
|
||||
#, python-format
|
||||
msgid "Rule validation has failed!"
|
||||
msgstr "La validación de reglas ha fallado!"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__sequence
|
||||
msgid "Sequence"
|
||||
msgstr "Secuencia"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size
|
||||
msgid "Size"
|
||||
msgstr "Tamaño"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,state:0
|
||||
msgid "Size Based"
|
||||
msgstr "Basado en el tamaño"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_order
|
||||
msgid "Size Order"
|
||||
msgstr "Orden de tallas"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Size Settings"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_type
|
||||
msgid "Size Type"
|
||||
msgstr "Tamaño Tipo"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_parameter_value
|
||||
msgid "Size Value"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_parameter
|
||||
#: selection:muk_autovacuum.rules,size_type:0
|
||||
msgid "System Parameter"
|
||||
msgstr "Parámetros del sistema"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time
|
||||
msgid "Time"
|
||||
msgstr "Tiempo"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,state:0
|
||||
msgid "Time Based"
|
||||
msgstr "Basado en el tiempo"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time_field
|
||||
msgid "Time Field"
|
||||
msgstr "Campo de tiempo"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Time Settings"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time_type
|
||||
msgid "Time Unit"
|
||||
msgstr "Unidad de tiempo"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Various fields may use Python code or Python expressions. The following variables can be used:"
|
||||
msgstr "Varios campos pueden usar código Python o expresiones Python. Se pueden usar las siguientes variables:"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Weeks"
|
||||
msgstr "Semanas"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Years"
|
||||
msgstr "Años"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "e.g. Delete Logs after 30 Days"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -0,0 +1,407 @@
|
|||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * muk_autovacuum
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 12.0-20190522\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2019-07-12 23:43+0000\n"
|
||||
"PO-Revision-Date: 2019-07-12 23:43+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>Warning</code>: Warning Exception to use with <code>raise</code>"
|
||||
msgstr "<code/><code/>"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>b64encode</code>, <code>b64decode</code>: Base64 converter"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>date_format</code>, <code>datetime_format</code>: server date and time formats"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>env</code>: Odoo Environment on which the rule is triggered"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>logger.info(message)</code>: Python logging framework"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>model</code>: Odoo Model of the record on which the rule is triggered"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>time</code>, <code>datetime</code>, <code>dateutil</code>, <code>timezone</code>: useful Python libraries"
|
||||
msgstr "<code/><code/><code/><code/>"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>uid</code>, <code>user</code>: User on which the rule is triggered"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__active
|
||||
msgid "Active"
|
||||
msgstr "Actif"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search
|
||||
msgid "All"
|
||||
msgstr "Tous"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.actions.act_window,name:muk_autovacuum.action_autovacuum_rule
|
||||
#: model:ir.model,name:muk_autovacuum.model_muk_autovacuum_rules
|
||||
#: model:ir.ui.menu,name:muk_autovacuum.menu_autovacuum_rules
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_tree
|
||||
msgid "Auto Vacuum Rules"
|
||||
msgstr "Règles de l'aspirateur automatique"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model,name:muk_autovacuum.model_ir_autovacuum
|
||||
msgid "Automatic Vacuum"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__code
|
||||
msgid "Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,state:0
|
||||
msgid "Code Based"
|
||||
msgstr "Basé sur le code"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Code Settings"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__code
|
||||
msgid "Code which will be executed during the clean up."
|
||||
msgstr "Code qui sera exécuté pendant le nettoyage."
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__create_uid
|
||||
msgid "Created by"
|
||||
msgstr "Créé par"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__create_date
|
||||
msgid "Created on"
|
||||
msgstr "Créé le"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Days"
|
||||
msgstr "Jours"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__domain
|
||||
msgid "Delete all records which match the domain."
|
||||
msgstr "Supprimer tous les enregistrements qui correspondent au domaine."
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__time
|
||||
msgid "Delete older data than x."
|
||||
msgstr "Supprimer les données plus anciennes que x."
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size_parameter_value
|
||||
msgid "Delete records with am index greater than x."
|
||||
msgstr "Supprimer les enregistrements dont l'index am est supérieur à x."
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__display_name
|
||||
msgid "Display Name"
|
||||
msgstr "Nom affiché"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__protect_starred
|
||||
msgid "Do not delete starred records.\n"
|
||||
" Checks for the following fields:\n"
|
||||
" - starred\n"
|
||||
" - favorite\n"
|
||||
" - is_starred\n"
|
||||
" - is_favorite"
|
||||
msgstr "Ne supprimez pas les disques marqués d'une étoile.\n"
|
||||
" Vérification des champs suivants :\n"
|
||||
" - étoilés\n"
|
||||
" - favori\n"
|
||||
" - is_starred\n"
|
||||
" - is_favorite"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__domain
|
||||
msgid "Domain"
|
||||
msgstr "Domaine"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,state:0
|
||||
msgid "Domain Based"
|
||||
msgstr "Basé sur le domaine"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Domain Settings"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Enter Python code here. Help about Python expression is available in the help tab of this document."
|
||||
msgstr "Entrer du code Python ici. Une aide sur l'expression Python est disponible dans l'onglet d'aide de ce document."
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,size_type:0
|
||||
msgid "Fixed Value"
|
||||
msgstr "Valeur fixe"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/ir_autovacuum.py:64
|
||||
#: code:addons/muk_autovacuum/models/ir_autovacuum.py:74
|
||||
#, python-format
|
||||
msgid "GC domain: %s"
|
||||
msgstr "Domaine GC : %s"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/ir_autovacuum.py:71
|
||||
#, python-format
|
||||
msgid "GC domain: [] order: %s limit: %s"
|
||||
msgstr "GC : (] Ordre : Limite %s : %s"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/ir_autovacuum.py:87
|
||||
#, python-format
|
||||
msgid "GC'd %s %s records"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/ir_autovacuum.py:83
|
||||
#, python-format
|
||||
msgid "GC'd %s attachments from %s entries"
|
||||
msgstr "GC'd %s pièces jointes à partir d'entrées %s"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search
|
||||
msgid "Group By"
|
||||
msgstr "Regrouper par"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Help"
|
||||
msgstr "Aide"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Help with Python expressions"
|
||||
msgstr "Aide sur les expressions Python"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Hours"
|
||||
msgstr "Heures"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__id
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/rules.py:290
|
||||
#, python-format
|
||||
msgid "Import Template for Auto Vacuum Rules"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules____last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr "Dernière modification le"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__write_uid
|
||||
msgid "Last Updated by"
|
||||
msgstr "Dernière mise à jour par"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__write_date
|
||||
msgid "Last Updated on"
|
||||
msgstr "Dernière mise à jour le"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Minutes"
|
||||
msgstr "Procès-verbal"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__model
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search
|
||||
msgid "Model"
|
||||
msgstr "Modèle"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__model_name
|
||||
msgid "Model Name"
|
||||
msgstr "Nom de Modèle"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__model
|
||||
msgid "Model on which the rule is applied."
|
||||
msgstr "Modèle sur lequel la règle est appliquée."
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Months"
|
||||
msgstr "Mois"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__name
|
||||
msgid "Name"
|
||||
msgstr "Nom"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__only_inactive
|
||||
msgid "Only Archived"
|
||||
msgstr "Uniquement archivé"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__only_attachments
|
||||
msgid "Only Attachments"
|
||||
msgstr "Uniquement les pièces jointes"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__only_inactive
|
||||
msgid "Only delete archived records."
|
||||
msgstr "Ne supprimez que les enregistrements archivés."
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__only_attachments
|
||||
msgid "Only delete record attachments."
|
||||
msgstr "Ne supprimez que les pièces jointes d'enregistrement."
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size_order
|
||||
msgid "Order by which the index is defined."
|
||||
msgstr "Ordre dans lequel l'indice est défini."
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__protect_starred
|
||||
msgid "Protect Starred"
|
||||
msgstr "Protéger Starred"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__state
|
||||
msgid "Rule Type"
|
||||
msgstr "Type de règle"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/rules.py:330
|
||||
#, python-format
|
||||
msgid "Rule validation has failed!"
|
||||
msgstr "La validation des règles a échoué !"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__sequence
|
||||
msgid "Sequence"
|
||||
msgstr "Séquence"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size
|
||||
msgid "Size"
|
||||
msgstr "Taille"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,state:0
|
||||
msgid "Size Based"
|
||||
msgstr "Basé sur la taille"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_order
|
||||
msgid "Size Order"
|
||||
msgstr "Taille Commande"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Size Settings"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_type
|
||||
msgid "Size Type"
|
||||
msgstr "Taille Type"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_parameter_value
|
||||
msgid "Size Value"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_parameter
|
||||
#: selection:muk_autovacuum.rules,size_type:0
|
||||
msgid "System Parameter"
|
||||
msgstr "Paramètres du système"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time
|
||||
msgid "Time"
|
||||
msgstr "Temps"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,state:0
|
||||
msgid "Time Based"
|
||||
msgstr "Basé sur le temps"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time_field
|
||||
msgid "Time Field"
|
||||
msgstr "Champ horaire"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Time Settings"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time_type
|
||||
msgid "Time Unit"
|
||||
msgstr "Unité de temps"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Various fields may use Python code or Python expressions. The following variables can be used:"
|
||||
msgstr "Divers champs peuvent utiliser du code ou des expressions Python. Les variables suivantes peuvent être utilisées :"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Weeks"
|
||||
msgstr "Semaines"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Years"
|
||||
msgstr "Années"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "e.g. Delete Logs after 30 Days"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -0,0 +1,402 @@
|
|||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * muk_autovacuum
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 12.0-20190522\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2019-07-12 23:44+0000\n"
|
||||
"PO-Revision-Date: 2019-07-12 23:44+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>Warning</code>: Warning Exception to use with <code>raise</code>"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>b64encode</code>, <code>b64decode</code>: Base64 converter"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>date_format</code>, <code>datetime_format</code>: server date and time formats"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>env</code>: Odoo Environment on which the rule is triggered"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>logger.info(message)</code>: Python logging framework"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>model</code>: Odoo Model of the record on which the rule is triggered"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>time</code>, <code>datetime</code>, <code>dateutil</code>, <code>timezone</code>: useful Python libraries"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>uid</code>, <code>user</code>: User on which the rule is triggered"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__active
|
||||
msgid "Active"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search
|
||||
msgid "All"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.actions.act_window,name:muk_autovacuum.action_autovacuum_rule
|
||||
#: model:ir.model,name:muk_autovacuum.model_muk_autovacuum_rules
|
||||
#: model:ir.ui.menu,name:muk_autovacuum.menu_autovacuum_rules
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_tree
|
||||
msgid "Auto Vacuum Rules"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model,name:muk_autovacuum.model_ir_autovacuum
|
||||
msgid "Automatic Vacuum"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__code
|
||||
msgid "Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,state:0
|
||||
msgid "Code Based"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Code Settings"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__code
|
||||
msgid "Code which will be executed during the clean up."
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__create_uid
|
||||
msgid "Created by"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__create_date
|
||||
msgid "Created on"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Days"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__domain
|
||||
msgid "Delete all records which match the domain."
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__time
|
||||
msgid "Delete older data than x."
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size_parameter_value
|
||||
msgid "Delete records with am index greater than x."
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__display_name
|
||||
msgid "Display Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__protect_starred
|
||||
msgid "Do not delete starred records.\n"
|
||||
" Checks for the following fields:\n"
|
||||
" - starred\n"
|
||||
" - favorite\n"
|
||||
" - is_starred\n"
|
||||
" - is_favorite"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__domain
|
||||
msgid "Domain"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,state:0
|
||||
msgid "Domain Based"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Domain Settings"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Enter Python code here. Help about Python expression is available in the help tab of this document."
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,size_type:0
|
||||
msgid "Fixed Value"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/ir_autovacuum.py:64
|
||||
#: code:addons/muk_autovacuum/models/ir_autovacuum.py:74
|
||||
#, python-format
|
||||
msgid "GC domain: %s"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/ir_autovacuum.py:71
|
||||
#, python-format
|
||||
msgid "GC domain: [] order: %s limit: %s"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/ir_autovacuum.py:87
|
||||
#, python-format
|
||||
msgid "GC'd %s %s records"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/ir_autovacuum.py:83
|
||||
#, python-format
|
||||
msgid "GC'd %s attachments from %s entries"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search
|
||||
msgid "Group By"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Help"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Help with Python expressions"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Hours"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__id
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/rules.py:290
|
||||
#, python-format
|
||||
msgid "Import Template for Auto Vacuum Rules"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules____last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__write_uid
|
||||
msgid "Last Updated by"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__write_date
|
||||
msgid "Last Updated on"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Minutes"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__model
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search
|
||||
msgid "Model"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__model_name
|
||||
msgid "Model Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__model
|
||||
msgid "Model on which the rule is applied."
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Months"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__name
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__only_inactive
|
||||
msgid "Only Archived"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__only_attachments
|
||||
msgid "Only Attachments"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__only_inactive
|
||||
msgid "Only delete archived records."
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__only_attachments
|
||||
msgid "Only delete record attachments."
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size_order
|
||||
msgid "Order by which the index is defined."
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__protect_starred
|
||||
msgid "Protect Starred"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__state
|
||||
msgid "Rule Type"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/rules.py:330
|
||||
#, python-format
|
||||
msgid "Rule validation has failed!"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__sequence
|
||||
msgid "Sequence"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,state:0
|
||||
msgid "Size Based"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_order
|
||||
msgid "Size Order"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Size Settings"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_type
|
||||
msgid "Size Type"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_parameter_value
|
||||
msgid "Size Value"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_parameter
|
||||
#: selection:muk_autovacuum.rules,size_type:0
|
||||
msgid "System Parameter"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time
|
||||
msgid "Time"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,state:0
|
||||
msgid "Time Based"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time_field
|
||||
msgid "Time Field"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Time Settings"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time_type
|
||||
msgid "Time Unit"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Various fields may use Python code or Python expressions. The following variables can be used:"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Weeks"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Years"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "e.g. Delete Logs after 30 Days"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -0,0 +1,402 @@
|
|||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * muk_autovacuum
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 12.0-20190522\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2019-07-12 23:44+0000\n"
|
||||
"PO-Revision-Date: 2019-07-12 23:44+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>Warning</code>: Warning Exception to use with <code>raise</code>"
|
||||
msgstr "<code>Waarschuwing</code>: Waarschuwingsfout te gebruiken met <code>roep op</code>"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>b64encode</code>, <code>b64decode</code>: Base64 converter"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>date_format</code>, <code>datetime_format</code>: server date and time formats"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>env</code>: Odoo Environment on which the rule is triggered"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>logger.info(message)</code>: Python logging framework"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>model</code>: Odoo Model of the record on which the rule is triggered"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>time</code>, <code>datetime</code>, <code>dateutil</code>, <code>timezone</code>: useful Python libraries"
|
||||
msgstr "<code>time</code>, <code>datetime</code>, <code>dateutil</code>, <code>timezone</code>: handige Python libraries"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>uid</code>, <code>user</code>: User on which the rule is triggered"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__active
|
||||
msgid "Active"
|
||||
msgstr "Actief"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search
|
||||
msgid "All"
|
||||
msgstr "Alle"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.actions.act_window,name:muk_autovacuum.action_autovacuum_rule
|
||||
#: model:ir.model,name:muk_autovacuum.model_muk_autovacuum_rules
|
||||
#: model:ir.ui.menu,name:muk_autovacuum.menu_autovacuum_rules
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_tree
|
||||
msgid "Auto Vacuum Rules"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model,name:muk_autovacuum.model_ir_autovacuum
|
||||
msgid "Automatic Vacuum"
|
||||
msgstr "Automatisch vacuum"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__code
|
||||
msgid "Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,state:0
|
||||
msgid "Code Based"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Code Settings"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__code
|
||||
msgid "Code which will be executed during the clean up."
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__create_uid
|
||||
msgid "Created by"
|
||||
msgstr "Aangemaakt door"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__create_date
|
||||
msgid "Created on"
|
||||
msgstr "Aangemaakt op"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Days"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__domain
|
||||
msgid "Delete all records which match the domain."
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__time
|
||||
msgid "Delete older data than x."
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size_parameter_value
|
||||
msgid "Delete records with am index greater than x."
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__display_name
|
||||
msgid "Display Name"
|
||||
msgstr "Weergavenaam"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__protect_starred
|
||||
msgid "Do not delete starred records.\n"
|
||||
" Checks for the following fields:\n"
|
||||
" - starred\n"
|
||||
" - favorite\n"
|
||||
" - is_starred\n"
|
||||
" - is_favorite"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__domain
|
||||
msgid "Domain"
|
||||
msgstr "Domein"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,state:0
|
||||
msgid "Domain Based"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Domain Settings"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Enter Python code here. Help about Python expression is available in the help tab of this document."
|
||||
msgstr "Geef hier Python code in. Help over het gebruik van Python expressies is beschikbaar in de help tab van dit document."
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,size_type:0
|
||||
msgid "Fixed Value"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/ir_autovacuum.py:64
|
||||
#: code:addons/muk_autovacuum/models/ir_autovacuum.py:74
|
||||
#, python-format
|
||||
msgid "GC domain: %s"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/ir_autovacuum.py:71
|
||||
#, python-format
|
||||
msgid "GC domain: [] order: %s limit: %s"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/ir_autovacuum.py:87
|
||||
#, python-format
|
||||
msgid "GC'd %s %s records"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/ir_autovacuum.py:83
|
||||
#, python-format
|
||||
msgid "GC'd %s attachments from %s entries"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search
|
||||
msgid "Group By"
|
||||
msgstr "Groepeer op"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Help"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Help with Python expressions"
|
||||
msgstr "Help met Python expressies"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Hours"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__id
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/rules.py:290
|
||||
#, python-format
|
||||
msgid "Import Template for Auto Vacuum Rules"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules____last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr "Laatst gewijzigd op"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__write_uid
|
||||
msgid "Last Updated by"
|
||||
msgstr "Laatst bijgewerkt door"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__write_date
|
||||
msgid "Last Updated on"
|
||||
msgstr "Laatst bijgewerkt op"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Minutes"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__model
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search
|
||||
msgid "Model"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__model_name
|
||||
msgid "Model Name"
|
||||
msgstr "Modelnaam"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__model
|
||||
msgid "Model on which the rule is applied."
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Months"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__name
|
||||
msgid "Name"
|
||||
msgstr "Naam"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__only_inactive
|
||||
msgid "Only Archived"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__only_attachments
|
||||
msgid "Only Attachments"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__only_inactive
|
||||
msgid "Only delete archived records."
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__only_attachments
|
||||
msgid "Only delete record attachments."
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size_order
|
||||
msgid "Order by which the index is defined."
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__protect_starred
|
||||
msgid "Protect Starred"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__state
|
||||
msgid "Rule Type"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/rules.py:330
|
||||
#, python-format
|
||||
msgid "Rule validation has failed!"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__sequence
|
||||
msgid "Sequence"
|
||||
msgstr "Volgorde"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size
|
||||
msgid "Size"
|
||||
msgstr "Grootte"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,state:0
|
||||
msgid "Size Based"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_order
|
||||
msgid "Size Order"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Size Settings"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_type
|
||||
msgid "Size Type"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_parameter_value
|
||||
msgid "Size Value"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_parameter
|
||||
#: selection:muk_autovacuum.rules,size_type:0
|
||||
msgid "System Parameter"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time
|
||||
msgid "Time"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,state:0
|
||||
msgid "Time Based"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time_field
|
||||
msgid "Time Field"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Time Settings"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time_type
|
||||
msgid "Time Unit"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Various fields may use Python code or Python expressions. The following variables can be used:"
|
||||
msgstr "Verschillende velden mogen Python code of Python expressies gebruiken. De volgende variabelen mogen worden gebruikt:"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Weeks"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Years"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "e.g. Delete Logs after 30 Days"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -0,0 +1,402 @@
|
|||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * muk_autovacuum
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 12.0-20190522\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2019-07-12 23:44+0000\n"
|
||||
"PO-Revision-Date: 2019-07-12 23:44+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>Warning</code>: Warning Exception to use with <code>raise</code>"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>b64encode</code>, <code>b64decode</code>: Base64 converter"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>date_format</code>, <code>datetime_format</code>: server date and time formats"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>env</code>: Odoo Environment on which the rule is triggered"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>logger.info(message)</code>: Python logging framework"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>model</code>: Odoo Model of the record on which the rule is triggered"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>time</code>, <code>datetime</code>, <code>dateutil</code>, <code>timezone</code>: useful Python libraries"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>uid</code>, <code>user</code>: User on which the rule is triggered"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__active
|
||||
msgid "Active"
|
||||
msgstr "Ativo"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search
|
||||
msgid "All"
|
||||
msgstr "Todas"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.actions.act_window,name:muk_autovacuum.action_autovacuum_rule
|
||||
#: model:ir.model,name:muk_autovacuum.model_muk_autovacuum_rules
|
||||
#: model:ir.ui.menu,name:muk_autovacuum.menu_autovacuum_rules
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_tree
|
||||
msgid "Auto Vacuum Rules"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model,name:muk_autovacuum.model_ir_autovacuum
|
||||
msgid "Automatic Vacuum"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__code
|
||||
msgid "Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,state:0
|
||||
msgid "Code Based"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Code Settings"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__code
|
||||
msgid "Code which will be executed during the clean up."
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__create_uid
|
||||
msgid "Created by"
|
||||
msgstr "Criado por"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__create_date
|
||||
msgid "Created on"
|
||||
msgstr "Criada em"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Days"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__domain
|
||||
msgid "Delete all records which match the domain."
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__time
|
||||
msgid "Delete older data than x."
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size_parameter_value
|
||||
msgid "Delete records with am index greater than x."
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__display_name
|
||||
msgid "Display Name"
|
||||
msgstr "Nome a Exibir"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__protect_starred
|
||||
msgid "Do not delete starred records.\n"
|
||||
" Checks for the following fields:\n"
|
||||
" - starred\n"
|
||||
" - favorite\n"
|
||||
" - is_starred\n"
|
||||
" - is_favorite"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__domain
|
||||
msgid "Domain"
|
||||
msgstr "Domínio"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,state:0
|
||||
msgid "Domain Based"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Domain Settings"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Enter Python code here. Help about Python expression is available in the help tab of this document."
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,size_type:0
|
||||
msgid "Fixed Value"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/ir_autovacuum.py:64
|
||||
#: code:addons/muk_autovacuum/models/ir_autovacuum.py:74
|
||||
#, python-format
|
||||
msgid "GC domain: %s"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/ir_autovacuum.py:71
|
||||
#, python-format
|
||||
msgid "GC domain: [] order: %s limit: %s"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/ir_autovacuum.py:87
|
||||
#, python-format
|
||||
msgid "GC'd %s %s records"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/ir_autovacuum.py:83
|
||||
#, python-format
|
||||
msgid "GC'd %s attachments from %s entries"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search
|
||||
msgid "Group By"
|
||||
msgstr "Agrupar Por"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Help"
|
||||
msgstr "Ajuda"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Help with Python expressions"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Hours"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__id
|
||||
msgid "ID"
|
||||
msgstr "Id."
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/rules.py:290
|
||||
#, python-format
|
||||
msgid "Import Template for Auto Vacuum Rules"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules____last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr "Última Modificação em"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__write_uid
|
||||
msgid "Last Updated by"
|
||||
msgstr "Última Atualização por"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__write_date
|
||||
msgid "Last Updated on"
|
||||
msgstr "Última Atualização em"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Minutes"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__model
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search
|
||||
msgid "Model"
|
||||
msgstr "Modelo"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__model_name
|
||||
msgid "Model Name"
|
||||
msgstr "Nome do Modelo"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__model
|
||||
msgid "Model on which the rule is applied."
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Months"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__name
|
||||
msgid "Name"
|
||||
msgstr "Nome"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__only_inactive
|
||||
msgid "Only Archived"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__only_attachments
|
||||
msgid "Only Attachments"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__only_inactive
|
||||
msgid "Only delete archived records."
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__only_attachments
|
||||
msgid "Only delete record attachments."
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size_order
|
||||
msgid "Order by which the index is defined."
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__protect_starred
|
||||
msgid "Protect Starred"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__state
|
||||
msgid "Rule Type"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/rules.py:330
|
||||
#, python-format
|
||||
msgid "Rule validation has failed!"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__sequence
|
||||
msgid "Sequence"
|
||||
msgstr "Sequência"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size
|
||||
msgid "Size"
|
||||
msgstr "Tamanho"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,state:0
|
||||
msgid "Size Based"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_order
|
||||
msgid "Size Order"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Size Settings"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_type
|
||||
msgid "Size Type"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_parameter_value
|
||||
msgid "Size Value"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_parameter
|
||||
#: selection:muk_autovacuum.rules,size_type:0
|
||||
msgid "System Parameter"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time
|
||||
msgid "Time"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,state:0
|
||||
msgid "Time Based"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time_field
|
||||
msgid "Time Field"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Time Settings"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time_type
|
||||
msgid "Time Unit"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Various fields may use Python code or Python expressions. The following variables can be used:"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Weeks"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Years"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "e.g. Delete Logs after 30 Days"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -0,0 +1,402 @@
|
|||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * muk_autovacuum
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 12.0-20190522\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2019-07-12 23:45+0000\n"
|
||||
"PO-Revision-Date: 2019-07-12 23:45+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>Warning</code>: Warning Exception to use with <code>raise</code>"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>b64encode</code>, <code>b64decode</code>: Base64 converter"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>date_format</code>, <code>datetime_format</code>: server date and time formats"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>env</code>: Odoo Environment on which the rule is triggered"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>logger.info(message)</code>: Python logging framework"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>model</code>: Odoo Model of the record on which the rule is triggered"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>time</code>, <code>datetime</code>, <code>dateutil</code>, <code>timezone</code>: useful Python libraries"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "<code>uid</code>, <code>user</code>: User on which the rule is triggered"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__active
|
||||
msgid "Active"
|
||||
msgstr "Активно"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search
|
||||
msgid "All"
|
||||
msgstr "Все"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.actions.act_window,name:muk_autovacuum.action_autovacuum_rule
|
||||
#: model:ir.model,name:muk_autovacuum.model_muk_autovacuum_rules
|
||||
#: model:ir.ui.menu,name:muk_autovacuum.menu_autovacuum_rules
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_tree
|
||||
msgid "Auto Vacuum Rules"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model,name:muk_autovacuum.model_ir_autovacuum
|
||||
msgid "Automatic Vacuum"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__code
|
||||
msgid "Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,state:0
|
||||
msgid "Code Based"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Code Settings"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__code
|
||||
msgid "Code which will be executed during the clean up."
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__create_uid
|
||||
msgid "Created by"
|
||||
msgstr "Создано"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__create_date
|
||||
msgid "Created on"
|
||||
msgstr "Создан"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Days"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__domain
|
||||
msgid "Delete all records which match the domain."
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__time
|
||||
msgid "Delete older data than x."
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size_parameter_value
|
||||
msgid "Delete records with am index greater than x."
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__display_name
|
||||
msgid "Display Name"
|
||||
msgstr "Отображаемое Имя"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__protect_starred
|
||||
msgid "Do not delete starred records.\n"
|
||||
" Checks for the following fields:\n"
|
||||
" - starred\n"
|
||||
" - favorite\n"
|
||||
" - is_starred\n"
|
||||
" - is_favorite"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__domain
|
||||
msgid "Domain"
|
||||
msgstr "Домен"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,state:0
|
||||
msgid "Domain Based"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Domain Settings"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Enter Python code here. Help about Python expression is available in the help tab of this document."
|
||||
msgstr "Введите код Python здесь. Помощь о Python доступна в колонке справка в этом документе."
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,size_type:0
|
||||
msgid "Fixed Value"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/ir_autovacuum.py:64
|
||||
#: code:addons/muk_autovacuum/models/ir_autovacuum.py:74
|
||||
#, python-format
|
||||
msgid "GC domain: %s"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/ir_autovacuum.py:71
|
||||
#, python-format
|
||||
msgid "GC domain: [] order: %s limit: %s"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/ir_autovacuum.py:87
|
||||
#, python-format
|
||||
msgid "GC'd %s %s records"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/ir_autovacuum.py:83
|
||||
#, python-format
|
||||
msgid "GC'd %s attachments from %s entries"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search
|
||||
msgid "Group By"
|
||||
msgstr "Группировать по"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Help"
|
||||
msgstr "Помощь"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Help with Python expressions"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Hours"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__id
|
||||
msgid "ID"
|
||||
msgstr "Номер"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/rules.py:290
|
||||
#, python-format
|
||||
msgid "Import Template for Auto Vacuum Rules"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules____last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr "Последнее изменение"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__write_uid
|
||||
msgid "Last Updated by"
|
||||
msgstr "Последний раз обновил"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__write_date
|
||||
msgid "Last Updated on"
|
||||
msgstr "Последнее обновление"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Minutes"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__model
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_search
|
||||
msgid "Model"
|
||||
msgstr "Модель"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__model_name
|
||||
msgid "Model Name"
|
||||
msgstr "Название модели"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__model
|
||||
msgid "Model on which the rule is applied."
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Months"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__name
|
||||
msgid "Name"
|
||||
msgstr "Название"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__only_inactive
|
||||
msgid "Only Archived"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__only_attachments
|
||||
msgid "Only Attachments"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__only_inactive
|
||||
msgid "Only delete archived records."
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__only_attachments
|
||||
msgid "Only delete record attachments."
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,help:muk_autovacuum.field_muk_autovacuum_rules__size_order
|
||||
msgid "Order by which the index is defined."
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__protect_starred
|
||||
msgid "Protect Starred"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__state
|
||||
msgid "Rule Type"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: code:addons/muk_autovacuum/models/rules.py:330
|
||||
#, python-format
|
||||
msgid "Rule validation has failed!"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__sequence
|
||||
msgid "Sequence"
|
||||
msgstr "Нумерация"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size
|
||||
msgid "Size"
|
||||
msgstr "Размер"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,state:0
|
||||
msgid "Size Based"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_order
|
||||
msgid "Size Order"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Size Settings"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_type
|
||||
msgid "Size Type"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_parameter_value
|
||||
msgid "Size Value"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__size_parameter
|
||||
#: selection:muk_autovacuum.rules,size_type:0
|
||||
msgid "System Parameter"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time
|
||||
msgid "Time"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,state:0
|
||||
msgid "Time Based"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time_field
|
||||
msgid "Time Field"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Time Settings"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model:ir.model.fields,field_description:muk_autovacuum.field_muk_autovacuum_rules__time_type
|
||||
msgid "Time Unit"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "Various fields may use Python code or Python expressions. The following variables can be used:"
|
||||
msgstr "Различные поля могут использовать код Python или выражения Python. Могут использоваться следующие переменные:"
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Weeks"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: selection:muk_autovacuum.rules,time_type:0
|
||||
msgid "Years"
|
||||
msgstr ""
|
||||
|
||||
#. module: muk_autovacuum
|
||||
#: model_terms:ir.ui.view,arch_db:muk_autovacuum.view_autovacuum_rule_form
|
||||
msgid "e.g. Delete Logs after 30 Days"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
###################################################################################
|
||||
#
|
||||
# Copyright (c) 2017-2019 MuK IT GmbH.
|
||||
#
|
||||
# This file is part of MuK Autovacuum
|
||||
# (see https://mukit.at).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
###################################################################################
|
||||
|
||||
from . import rules
|
||||
from . import ir_autovacuum
|
||||
|
|
@ -0,0 +1,90 @@
|
|||
###################################################################################
|
||||
#
|
||||
# Copyright (c) 2017-2019 MuK IT GmbH.
|
||||
#
|
||||
# This file is part of MuK Autovacuum
|
||||
# (see https://mukit.at).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
###################################################################################
|
||||
|
||||
import time
|
||||
import logging
|
||||
import datetime
|
||||
import dateutil
|
||||
|
||||
from odoo import _
|
||||
from odoo import models, api, fields
|
||||
from odoo.tools.safe_eval import safe_eval
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
_types = {
|
||||
'days': lambda interval: datetime.timedelta(days=interval),
|
||||
'years': lambda interval: datetime.timedelta(weeks=interval*52),
|
||||
'hours': lambda interval: datetime.timedelta(hours=interval),
|
||||
'weeks': lambda interval: datetime.timedelta(weeks=interval),
|
||||
'months': lambda interval: datetime.timedelta(days=interval*30),
|
||||
'minutes': lambda interval: datetime.timedelta(minutes=interval),
|
||||
}
|
||||
|
||||
class AutoVacuum(models.AbstractModel):
|
||||
|
||||
_inherit = 'ir.autovacuum'
|
||||
|
||||
@api.model
|
||||
def power_on(self, *args, **kwargs):
|
||||
res = super(AutoVacuum, self).power_on(*args, **kwargs)
|
||||
rules = self.env['muk_autovacuum.rules'].sudo().search([], order='sequence asc')
|
||||
for rule in rules:
|
||||
if rule.state in ['time', 'size', 'domain']:
|
||||
model = self.env[rule.model.model].sudo()
|
||||
records = self.env[rule.model.model]
|
||||
if rule.state == 'time':
|
||||
computed_time = datetime.datetime.utcnow() - _types[rule.time_type](rule.time)
|
||||
domain = [(rule.time_field.name, '<', fields.Datetime.to_string(computed_time))]
|
||||
if rule.protect_starred:
|
||||
for field in rule.model.field_id:
|
||||
if field.name in ['starred', 'favorite', 'is_starred', 'is_favorite']:
|
||||
domain.append((field.name, '=', False))
|
||||
if rule.only_inactive and "active" in rule.model.field_id.mapped("name"):
|
||||
domain.append(('active', '=', False))
|
||||
_logger.info(_("GC domain: %s"), domain)
|
||||
records = model.with_context(active_test=False).search(domain)
|
||||
elif rule.state == 'size':
|
||||
size = rule.size if rule.size_type == 'fixed' else rule.size_parameter_value
|
||||
count = model.with_context(active_test=False).search([], count=True)
|
||||
if size and size > 0 and count > size:
|
||||
limit = count - size
|
||||
_logger.info(_("GC domain: [] order: %s limit: %s"), rule.size_order, limit)
|
||||
records = model.with_context(active_test=False).search([], order=rule.size_order, limit=limit)
|
||||
elif rule.state == 'domain':
|
||||
_logger.info(_("GC domain: %s"), rule.domain)
|
||||
domain = safe_eval(rule.domain or "[]", rules._get_eval_domain_context())
|
||||
records = model.with_context(active_test=False).search(domain)
|
||||
if rule.only_attachments:
|
||||
attachments = self.env['ir.attachment'].sudo().search([
|
||||
('res_model', '=', rule.model.model),
|
||||
('res_id', 'in', records.mapped('id'))])
|
||||
count = len(attachments)
|
||||
attachments.unlink()
|
||||
_logger.info(_("GC'd %s attachments from %s entries"), count, rule.model.model)
|
||||
else:
|
||||
count = len(records)
|
||||
records.unlink()
|
||||
_logger.info(_("GC'd %s %s records"), count, rule.model.model)
|
||||
elif rule.state == 'code':
|
||||
safe_eval(rule.code.strip(), rules._get_eval_code_context(rule), mode="exec")
|
||||
return res
|
||||
|
|
@ -0,0 +1,330 @@
|
|||
###################################################################################
|
||||
#
|
||||
# Copyright (c) 2017-2019 MuK IT GmbH.
|
||||
#
|
||||
# This file is part of MuK Autovacuum
|
||||
# (see https://mukit.at).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
###################################################################################
|
||||
|
||||
import time
|
||||
import base64
|
||||
import logging
|
||||
import datetime
|
||||
import dateutil
|
||||
|
||||
from pytz import timezone
|
||||
|
||||
from odoo import _
|
||||
from odoo import models, api, fields
|
||||
from odoo.exceptions import ValidationError, Warning
|
||||
from odoo.tools import DEFAULT_SERVER_DATE_FORMAT
|
||||
from odoo.tools import DEFAULT_SERVER_DATETIME_FORMAT
|
||||
from odoo.tools.safe_eval import safe_eval, test_python_expr
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
class AutoVacuumRules(models.Model):
|
||||
|
||||
_name = 'muk_autovacuum.rules'
|
||||
_description = "Auto Vacuum Rules"
|
||||
_order = "sequence asc"
|
||||
|
||||
#----------------------------------------------------------
|
||||
# Defaults
|
||||
#----------------------------------------------------------
|
||||
|
||||
def _default_sequence(self):
|
||||
record = self.sudo().search([], order='sequence desc', limit=1)
|
||||
if record.exists():
|
||||
return record.sequence + 1
|
||||
else:
|
||||
return 1
|
||||
|
||||
#----------------------------------------------------------
|
||||
# Database
|
||||
#----------------------------------------------------------
|
||||
|
||||
name = fields.Char(
|
||||
string='Name',
|
||||
required=True)
|
||||
|
||||
active = fields.Boolean(
|
||||
string='Active',
|
||||
default=True)
|
||||
|
||||
state = fields.Selection(
|
||||
selection=[
|
||||
('time', 'Time Based'),
|
||||
('size', 'Size Based'),
|
||||
('domain', 'Domain Based'),
|
||||
('code', 'Code Based')],
|
||||
string='Rule Type',
|
||||
default='time',
|
||||
required=True)
|
||||
|
||||
sequence = fields.Integer(
|
||||
string='Sequence',
|
||||
default=lambda self: self._default_sequence(),
|
||||
required=True)
|
||||
|
||||
model = fields.Many2one(
|
||||
comodel_name='ir.model',
|
||||
string="Model",
|
||||
required=True,
|
||||
ondelete='cascade',
|
||||
help="Model on which the rule is applied.")
|
||||
|
||||
model_name = fields.Char(
|
||||
related='model.model',
|
||||
string="Model Name",
|
||||
readonly=True,
|
||||
store=True)
|
||||
|
||||
time_field = fields.Many2one(
|
||||
comodel_name='ir.model.fields',
|
||||
domain="[('model_id', '=', model), ('ttype', '=', 'datetime')]",
|
||||
string='Time Field',
|
||||
ondelete='cascade',
|
||||
states={
|
||||
'time': [('required', True)],
|
||||
'size': [('invisible', True)],
|
||||
'domain': [('invisible', True)],
|
||||
'code': [('invisible', True)]})
|
||||
|
||||
time_type = fields.Selection(
|
||||
selection=[
|
||||
('minutes', 'Minutes'),
|
||||
('hours', 'Hours'),
|
||||
('days', 'Days'),
|
||||
('weeks', 'Weeks'),
|
||||
('months', 'Months'),
|
||||
('years', 'Years')],
|
||||
string='Time Unit',
|
||||
default='months',
|
||||
states={
|
||||
'time': [('required', True)],
|
||||
'size': [('invisible', True)],
|
||||
'domain': [('invisible', True)],
|
||||
'code': [('invisible', True)]})
|
||||
|
||||
time = fields.Integer(
|
||||
string='Time',
|
||||
default=1,
|
||||
states={
|
||||
'time': [('required', True)],
|
||||
'size': [('invisible', True)],
|
||||
'domain': [('invisible', True)],
|
||||
'code': [('invisible', True)]},
|
||||
help="Delete older data than x.")
|
||||
|
||||
size_type = fields.Selection(
|
||||
selection=[
|
||||
('fixed', 'Fixed Value'),
|
||||
('parameter', 'System Parameter')],
|
||||
string='Size Type',
|
||||
default='fixed',
|
||||
states={
|
||||
'time': [('invisible', True)],
|
||||
'size': [('required', True)],
|
||||
'domain': [('invisible', True)],
|
||||
'code': [('invisible', True)]})
|
||||
|
||||
size_parameter = fields.Many2one(
|
||||
comodel_name='ir.config_parameter',
|
||||
string='System Parameter',
|
||||
ondelete='cascade',
|
||||
states={
|
||||
'time': [('invisible', True)],
|
||||
'size': [('required', True)],
|
||||
'domain': [('invisible', True)],
|
||||
'code': [('invisible', True)]})
|
||||
|
||||
size_parameter_value = fields.Integer(
|
||||
compute='_compute_size_parameter_value',
|
||||
string='Size Value',
|
||||
states={
|
||||
'time': [('invisible', True)],
|
||||
'size': [('readonly', True)],
|
||||
'domain': [('invisible', True)],
|
||||
'code': [('invisible', True)]},
|
||||
help="Delete records with am index greater than x.")
|
||||
|
||||
size_order = fields.Char(
|
||||
string='Size Order',
|
||||
default='create_date desc',
|
||||
states={
|
||||
'time': [('invisible', True)],
|
||||
'size': [('required', True)],
|
||||
'domain': [('invisible', True)],
|
||||
'code': [('invisible', True)]},
|
||||
help="Order by which the index is defined.")
|
||||
|
||||
size = fields.Integer(
|
||||
string='Size',
|
||||
default=200,
|
||||
states={
|
||||
'time': [('invisible', True)],
|
||||
'size': [('required', True)],
|
||||
'domain': [('invisible', True)],
|
||||
'code': [('invisible', True)]},
|
||||
help="Delete records with am index greater than x.")
|
||||
|
||||
domain = fields.Char(
|
||||
string='Domain',
|
||||
states={
|
||||
'time': [('invisible', True)],
|
||||
'size': [('invisible', True)],
|
||||
'domain': [('required', True)],
|
||||
'code': [('invisible', True)]},
|
||||
help="Delete all records which match the domain.")
|
||||
|
||||
code = fields.Text(
|
||||
string='Code',
|
||||
states={
|
||||
'time': [('invisible', True)],
|
||||
'size': [('invisible', True)],
|
||||
'domain': [('invisible', True)] ,
|
||||
'code': [('required', True)]},
|
||||
default="# Enter Python code here. Help about Python expression is available in the help tab of this document.",
|
||||
help="Code which will be executed during the clean up.")
|
||||
|
||||
protect_starred = fields.Boolean(
|
||||
string='Protect Starred',
|
||||
default=True,
|
||||
states={
|
||||
'time': [('invisible', False)],
|
||||
'size': [('invisible', True)],
|
||||
'domain': [('invisible', True)],
|
||||
'code': [('invisible', True)]},
|
||||
help="""Do not delete starred records.
|
||||
Checks for the following fields:
|
||||
- starred
|
||||
- favorite
|
||||
- is_starred
|
||||
- is_favorite""")
|
||||
|
||||
only_inactive = fields.Boolean(
|
||||
string='Only Archived',
|
||||
default=False,
|
||||
states={
|
||||
'time': [('invisible', False)],
|
||||
'size': [('invisible', True)],
|
||||
'domain': [('invisible', True)],
|
||||
'code': [('invisible', True)]},
|
||||
help="Only delete archived records.")
|
||||
|
||||
only_attachments = fields.Boolean(
|
||||
string='Only Attachments',
|
||||
default=False,
|
||||
states={
|
||||
'time': [('invisible', False)],
|
||||
'size': [('invisible', False)],
|
||||
'domain': [('invisible', False)],
|
||||
'code': [('invisible', True)]},
|
||||
help="Only delete record attachments.")
|
||||
|
||||
#----------------------------------------------------------
|
||||
# Functions
|
||||
#----------------------------------------------------------
|
||||
|
||||
@api.model
|
||||
def _get_eval_domain_context(self):
|
||||
return {
|
||||
'datetime': datetime,
|
||||
'dateutil': dateutil,
|
||||
'timezone': timezone,
|
||||
'time': time,
|
||||
'uid': self.env.uid,
|
||||
'user': self.env.user
|
||||
}
|
||||
|
||||
@api.model
|
||||
def _get_eval_code_context(self, rule):
|
||||
return {
|
||||
'env': self.env,
|
||||
'model': self.env[rule.model_name],
|
||||
'uid': self.env.user.id,
|
||||
'user': self.env.user,
|
||||
'time': time,
|
||||
'datetime': datetime,
|
||||
'dateutil': dateutil,
|
||||
'timezone': timezone,
|
||||
'b64encode': base64.b64encode,
|
||||
'b64decode': base64.b64decode,
|
||||
'date_format': DEFAULT_SERVER_DATE_FORMAT,
|
||||
'datetime_format': DEFAULT_SERVER_DATETIME_FORMAT,
|
||||
'Warning': Warning,
|
||||
'logger': logging.getLogger("%s (%s)" % (__name__, rule.name)),
|
||||
}
|
||||
|
||||
#----------------------------------------------------------
|
||||
# View
|
||||
#----------------------------------------------------------
|
||||
|
||||
@api.onchange('model')
|
||||
def _onchange_model(self):
|
||||
field_domain = [
|
||||
('model_id', '=', self.model.id),
|
||||
('ttype', '=', 'datetime'),
|
||||
('name', '=', 'create_date')]
|
||||
model = self.env['ir.model.fields'].sudo()
|
||||
self.time_field = model.search(field_domain, limit=1)
|
||||
|
||||
@api.model
|
||||
def get_import_templates(self):
|
||||
return [{
|
||||
'label': _('Import Template for Auto Vacuum Rules'),
|
||||
'template': '/muk_autovacuum/static/xls/muk_autovacuum_rules.xls'
|
||||
}]
|
||||
|
||||
#----------------------------------------------------------
|
||||
# Read
|
||||
#----------------------------------------------------------
|
||||
|
||||
@api.depends('size_parameter')
|
||||
def _compute_size_parameter_value(self):
|
||||
for record in self:
|
||||
try:
|
||||
record.size_parameter_value = int(record.size_parameter.value)
|
||||
except ValueError:
|
||||
record.size_parameter_value = None
|
||||
|
||||
#----------------------------------------------------------
|
||||
# Create, Update, Delete
|
||||
#----------------------------------------------------------
|
||||
|
||||
@api.constrains('code')
|
||||
def _check_code(self):
|
||||
for record in self.sudo().filtered('code'):
|
||||
message = test_python_expr(expr=record.code.strip(), mode="exec")
|
||||
if message:
|
||||
raise ValidationError(message)
|
||||
|
||||
@api.constrains(
|
||||
'state', 'model', 'domain', 'code',
|
||||
'time_field', 'time_type', 'time',
|
||||
'size_type', 'size_parameter', 'size_order', 'size')
|
||||
def _validate(self):
|
||||
validators = {
|
||||
'time': lambda rec: rec.time_field and rec.time_type and rec.time,
|
||||
'size': lambda rec: rec.size_order and (rec.size_parameter or rec.size),
|
||||
'domain': lambda rec: rec.domain,
|
||||
'code': lambda rec: rec.code,
|
||||
}
|
||||
for record in self:
|
||||
if not validators[record.state](record):
|
||||
raise ValidationError(_("Rule validation has failed!"))
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink
|
||||
|
||||
access_muk_autovacuum_rules_group_cron,muk_autovacuum_rules group_rules,model_muk_autovacuum_rules,base.group_system,1,1,1,1
|
||||
|
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 9.1 KiB |
|
|
@ -0,0 +1,38 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generator: Gravit.io -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="isolation:isolate" viewBox="0 0 250 250" width="250" height="250">
|
||||
<defs>
|
||||
<filter id="6h5zhs6EsmCdYqoDWpQdye92PuVIAFlM" x="-200%" y="-200%" width="400%" height="400%" filterUnits="objectBoundingBox" color-interpolation-filters="sRGB">
|
||||
<feOffset in="SourceGraphic" dx="0" dy="3" />
|
||||
<feGaussianBlur stdDeviation="2.146804531419514" result="pf_100_offsetBlur" />
|
||||
<feComposite in="SourceGraphic" in2="pf_100_offsetBlur" result="pf_100_inverse" operator="out" />
|
||||
<feFlood flood-color="#FFFFFF" flood-opacity="0.5" result="pf_100_color" />
|
||||
<feComposite in="pf_100_color" in2="pf_100_inverse" operator="in" result="pf_100_shadow" />
|
||||
<feComposite in="pf_100_shadow" in2="SourceGraphic" operator="over" result="_out_uR74cLfpCM9hl8SPG68bUNeAvlHMO7D6" />
|
||||
<feOffset in="_out_uR74cLfpCM9hl8SPG68bUNeAvlHMO7D6" dx="0" dy="-3" />
|
||||
<feGaussianBlur stdDeviation="2.146804531419514" result="pf_101_offsetBlur" />
|
||||
<feComposite in="_out_uR74cLfpCM9hl8SPG68bUNeAvlHMO7D6" in2="pf_101_offsetBlur" result="pf_101_inverse" operator="out" />
|
||||
<feFlood flood-color="#000000" flood-opacity="0.5" result="pf_101_color" />
|
||||
<feComposite in="pf_101_color" in2="pf_101_inverse" operator="in" result="pf_101_shadow" />
|
||||
<feComposite in="pf_101_shadow" in2="_out_uR74cLfpCM9hl8SPG68bUNeAvlHMO7D6" operator="over" result="_out_Oq5ydn0Hq6rxbDiq5dZm4MzQyVH9DQcs" />
|
||||
<feMerge>
|
||||
<feMergeNode in="_out_Oq5ydn0Hq6rxbDiq5dZm4MzQyVH9DQcs" />
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
<g filter="url(#6h5zhs6EsmCdYqoDWpQdye92PuVIAFlM)">
|
||||
<path d="M 15 0 L 235 0 C 243.279 0 250 6.721 250 15 L 250 235 C 250 243.279 243.279 250 235 250 L 15 250 C 6.721 250 0 243.279 0 235 L 0 15 C 0 6.721 6.721 0 15 0 Z" style="stroke:none;fill:#243742;stroke-miterlimit:10;" />
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="3ix5SvWnYst0fHrBWMeRNC0a7ShQ7jfe" x="-200%" y="-200%" width="400%" height="400%" filterUnits="objectBoundingBox" color-interpolation-filters="sRGB">
|
||||
<feGaussianBlur in="SourceGraphic" stdDeviation="2.146804531419514" />
|
||||
<feOffset dx="-5" dy="5" result="pf_100_offsetBlur" />
|
||||
<feFlood flood-color="#000000" flood-opacity="0.5" />
|
||||
<feComposite in2="pf_100_offsetBlur" operator="in" result="pf_100_dropShadow" />
|
||||
<feBlend in="SourceGraphic" in2="pf_100_dropShadow" mode="normal" />
|
||||
</filter>
|
||||
</defs>
|
||||
<g filter="url(#3ix5SvWnYst0fHrBWMeRNC0a7ShQ7jfe)">
|
||||
<path d=" M 114.779 103.281 L 114.779 172.271 C 114.779 174.388 113.063 176.104 110.946 176.104 L 103.281 176.104 C 101.164 176.104 99.448 174.388 99.448 172.271 L 99.448 103.281 C 99.448 101.164 101.164 99.448 103.281 99.448 L 110.946 99.448 C 113.063 99.448 114.779 101.164 114.779 103.281 Z M 146.719 99.448 L 139.054 99.448 C 136.937 99.448 135.221 101.164 135.221 103.281 L 135.221 172.271 C 135.221 174.388 136.937 176.104 139.054 176.104 L 146.719 176.104 C 148.836 176.104 150.552 174.388 150.552 172.271 L 150.552 103.281 C 150.552 101.164 148.836 99.448 146.719 99.448 Z M 188.88 68.786 C 193.113 68.786 196.545 72.218 196.545 76.452 L 196.545 80.284 C 196.545 82.401 194.829 84.117 192.712 84.117 L 186.324 84.117 L 186.324 191.435 C 186.324 199.902 179.461 206.766 170.993 206.766 L 79.007 206.766 C 70.539 206.766 63.676 199.902 63.676 191.435 L 63.676 84.117 L 57.288 84.117 C 55.171 84.117 53.455 82.401 53.455 80.284 L 53.455 76.452 C 53.455 72.218 56.887 68.786 61.12 68.786 L 84.887 68.786 L 95.752 50.677 C 98.523 46.06 103.514 43.234 108.899 43.234 L 141.101 43.234 C 146.487 43.234 151.477 46.06 154.248 50.677 L 165.113 68.786 L 188.88 68.786 Z M 102.766 68.786 L 147.234 68.786 L 141.66 59.496 C 141.313 58.918 140.69 58.565 140.016 58.565 L 109.984 58.565 C 109.311 58.565 108.687 58.918 108.341 59.496 L 102.766 68.786 Z M 170.993 84.117 L 79.007 84.117 L 79.007 189.518 C 79.007 190.577 79.865 191.435 80.923 191.435 L 169.077 191.435 C 170.135 191.435 170.993 190.577 170.993 189.518 L 170.993 84.117 Z " id="trash-alt-regular" fill="rgb(255,255,255)" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.2 KiB |
|
|
@ -0,0 +1,128 @@
|
|||
<section class="oe_container">
|
||||
<div class="oe_row oe_spaced">
|
||||
<h2 class="oe_slogan">MuK Auto Vacuum</h2>
|
||||
<h3 class="oe_slogan">Configure automatic garbage collection</h3>
|
||||
<h4 class="oe_slogan" style="font-size: 23px;">MuK IT GmbH -
|
||||
www.mukit.at</h4>
|
||||
<div class="oe_demo oe_screenshot"
|
||||
style="max-width: 84%; margin: 16px 8%;">
|
||||
<img src="screenshot.png">
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="oe_container">
|
||||
<div class="oe_row oe_spaced">
|
||||
<div class="text-justify" style="max-width: 84%; margin: 16px 8%;">
|
||||
<h3 class="oe_slogan">Overview</h3>
|
||||
<p class="oe_mt32">Allows the administrator to create rules to
|
||||
automatically garbage collect a certain model. Every rule can have a
|
||||
different time interval additional constraints. An extra constraint
|
||||
can be for example to only delete inactive records.</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="oe_container oe_dark">
|
||||
<div class="oe_row oe_spaced">
|
||||
<h3 class="oe_slogan">Our Services</h3>
|
||||
<div
|
||||
style="display: flex; padding-top: 20px; justify-content: space-between;">
|
||||
<div style="flex-basis: 18%;">
|
||||
<a href="https://mukit.at/r/MQ5" target="_blank">
|
||||
<div
|
||||
style="width: 75px; height: 75px; border-radius: 100%; margin: auto;">
|
||||
<img src="service_implementation.png"
|
||||
style="width: 100%; border-radius: 100%;">
|
||||
</div>
|
||||
<h3 class="oe_slogan"
|
||||
style="text-align: center; font-size: 14px; width: 100%; margin: 0; margin-top: 14px; color: #000 !important; margin-top: 5px; opacity: 1 !important; line-height: 17px;">
|
||||
Odoo <br>Implementation
|
||||
</h3>
|
||||
</a>
|
||||
</div>
|
||||
<div style="flex-basis: 18%;">
|
||||
<a href="https://mukit.at/r/u7c" target="_blank">
|
||||
<div
|
||||
style="width: 75px; height: 75px; border-radius: 100%; margin: auto;">
|
||||
<img src="service_integration.png"
|
||||
style="width: 100%; border-radius: 100%;">
|
||||
</div>
|
||||
<h3 class="oe_slogan"
|
||||
style="text-align: center; font-size: 14px; width: 100%; margin: 0; margin-top: 14px; color: #000 !important; margin-top: 5px; opacity: 1 !important; line-height: 17px;">
|
||||
Odoo <br>Integration
|
||||
</h3>
|
||||
</a>
|
||||
</div>
|
||||
<div style="flex-basis: 18%;">
|
||||
<a href="https://mukit.at/r/xDJ" target="_blank">
|
||||
<div
|
||||
style="width: 75px; height: 75px; border-radius: 100%; margin: auto;">
|
||||
<img src="service_customization.png"
|
||||
style="width: 100%; border-radius: 100%;">
|
||||
</div>
|
||||
<h3 class="oe_slogan"
|
||||
style="text-align: center; font-size: 14px; width: 100%; margin: 0; margin-top: 14px; color: #000 !important; margin-top: 5px; opacity: 1 !important; line-height: 17px;">
|
||||
Odoo <br>Customization
|
||||
</h3>
|
||||
</a>
|
||||
</div>
|
||||
<div style="flex-basis: 18%;">
|
||||
<a href=" https://mukit.at/r/J3A" target="_blank">
|
||||
<div
|
||||
style="width: 75px; height: 75px; border-radius: 100%; margin: auto;">
|
||||
<img src="service_development.png"
|
||||
style="width: 100%; border-radius: 100%;">
|
||||
</div>
|
||||
<h3 class="oe_slogan"
|
||||
style="text-align: center; font-size: 14px; width: 100%; margin: 0; margin-top: 14px; color: #000 !important; margin-top: 5px; opacity: 1 !important; line-height: 17px;">
|
||||
Odoo <br>Development
|
||||
</h3>
|
||||
</a>
|
||||
</div>
|
||||
<div style="flex-basis: 18%;">
|
||||
<a href=" https://mukit.at/r/R1v" target="_blank">
|
||||
<div
|
||||
style="width: 75px; height: 75px; border-radius: 100%; margin: auto;">
|
||||
<img src="service_support.png"
|
||||
style="width: 100%; border-radius: 100%;">
|
||||
</div>
|
||||
<h3 class="oe_slogan"
|
||||
style="text-align: center; font-size: 14px; width: 100%; margin: 0; margin-top: 14px; color: #000 !important; margin-top: 5px; opacity: 1 !important; line-height: 17px;">
|
||||
Odoo <br>Support
|
||||
</h3>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="oe_container" style="padding: 32px 0;">
|
||||
<div class="oe_row oe_spaced" style="margin: auto;">
|
||||
<div class="oe_demo oe_picture oe_screenshot">
|
||||
<a href="https://mukit.at/r/SgN" target="_blank"> <img src="preview.png">
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="oe_container oe_dark">
|
||||
<h3 class="oe_slogan">Help and Support</h3>
|
||||
<h5 class="oe_slogan" style="font-size: 20px;">Feel free to
|
||||
contact us, if you need any help with your Odoo integration or
|
||||
addiontal features.</h5>
|
||||
<div class="oe_slogan">
|
||||
<a class="btn btn-primary btn-lg mt8" href="https://mukit.at" target="_blank">
|
||||
<i class="fa fa-globe"></i> Website
|
||||
</a>
|
||||
<a class="btn btn-primary btn-lg mt8" href="mailto:sale@mukit.at">
|
||||
<i class="fa fa-envelope"></i> Contact Us
|
||||
</a>
|
||||
<a class="btn btn-primary btn-lg mt8" href="https://github.com/muk-it" target="_blank">
|
||||
<i class="fa fa-github"></i> Issues
|
||||
</a>
|
||||
</div>
|
||||
<img src="logo.png"
|
||||
style="width: 200px; margin-bottom: 20px; display: block;"
|
||||
class="mx-auto center-block">
|
||||
</section>
|
||||
|
After Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 44 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
|
@ -0,0 +1,23 @@
|
|||
###################################################################################
|
||||
#
|
||||
# Copyright (c) 2017-2019 MuK IT GmbH.
|
||||
#
|
||||
# This file is part of MuK Autovacuum
|
||||
# (see https://mukit.at).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
###################################################################################
|
||||
|
||||
from . import test_autovacuum
|
||||
|
|
@ -0,0 +1,99 @@
|
|||
###################################################################################
|
||||
#
|
||||
# Copyright (c) 2017-2019 MuK IT GmbH.
|
||||
#
|
||||
# This file is part of MuK Autovacuum
|
||||
# (see https://mukit.at).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
###################################################################################
|
||||
|
||||
import logging
|
||||
import datetime
|
||||
|
||||
from odoo.tests import common
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
class AutoVacuumTestCase(common.TransactionCase):
|
||||
|
||||
def setUp(self):
|
||||
super(AutoVacuumTestCase, self).setUp()
|
||||
self.logs = self.env['ir.logging']
|
||||
self.rules = self.env['muk_autovacuum.rules']
|
||||
self.model_model = self.env['ir.model']
|
||||
self.model_fields = self.env['ir.model.fields']
|
||||
self.model_logs = self.model_model.search([('model', '=', 'ir.logging')], limit=1)
|
||||
time_field_domain = [
|
||||
('model_id', '=', self.model_logs.id),
|
||||
('ttype', '=', 'datetime'),
|
||||
('name', '=', 'create_date')]
|
||||
self.time_field_logs = self.model_fields.search(time_field_domain, limit=1)
|
||||
|
||||
def test_autovacuum_time(self):
|
||||
self.create_logs()
|
||||
self.rules.create({
|
||||
'name': "Delete Logs after 1 Minute",
|
||||
'state': 'time',
|
||||
'model': self.model_logs.id,
|
||||
'time_field': self.time_field_logs.id,
|
||||
'time_type': 'minutes',
|
||||
'time': 1})
|
||||
self.run_autovacuum()
|
||||
|
||||
def test_autovacuum_size(self):
|
||||
self.create_logs()
|
||||
self.rules.create({
|
||||
'name': "Delete Logs Count > 1",
|
||||
'state': 'size',
|
||||
'model': self.model_logs.id,
|
||||
'size': 1,
|
||||
'size_order': "id desc",
|
||||
'size_type': 'fixed'})
|
||||
self.run_autovacuum()
|
||||
|
||||
def test_autovacuum_domain(self):
|
||||
self.create_logs()
|
||||
self.rules.create({
|
||||
'name': "Delete Logs with Domain",
|
||||
'state': 'domain',
|
||||
'model': self.model_logs.id,
|
||||
'domain': "[]"})
|
||||
self.run_autovacuum()
|
||||
|
||||
def create_logs(self):
|
||||
ids = []
|
||||
time = datetime.datetime.utcnow()
|
||||
for index in range(0, 10):
|
||||
log = self.logs.create({
|
||||
'create_date': time - datetime.timedelta(days=index),
|
||||
'create_uid': self.env.user.id,
|
||||
'name': "Test %s" % index,
|
||||
'type': 'server',
|
||||
'dbname': self.env.cr.dbname,
|
||||
'level': "INFO",
|
||||
'message': "TEST",
|
||||
'path': "PATH",
|
||||
'func': "TEST",
|
||||
'line': 1})
|
||||
ids.append(log.id)
|
||||
return ids
|
||||
|
||||
def run_autovacuum(self):
|
||||
count_before = self.env['ir.logging'].search([], count=True)
|
||||
self.env['ir.cron'].search([('model_id', '=', 'ir.autovacuum')]).ir_actions_server_id.run()
|
||||
count_after = self.env['ir.logging'].search([], count=True)
|
||||
self.assertTrue(count_before > count_after)
|
||||
|
||||
|
|
@ -0,0 +1,161 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!--
|
||||
|
||||
Copyright (c) 2017-2019 MuK IT GmbH.
|
||||
|
||||
This file is part of MuK Autovacuum
|
||||
(see https://mukit.at).
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Lesser General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
-->
|
||||
|
||||
<odoo>
|
||||
|
||||
<record id="view_autovacuum_rule_search" model="ir.ui.view">
|
||||
<field name="name">muk_autovacuum_rules.search</field>
|
||||
<field name="model">muk_autovacuum.rules</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Auto Vacuum Rules">
|
||||
<field name="name" filter_domain="[('name', 'ilike', self)]" />
|
||||
<field name="model" />
|
||||
<field name="state" />
|
||||
<field name="active" />
|
||||
<filter string="All" name="all" domain="['|', ('active', '=', False), ('active', '=', True)]" />
|
||||
<group expand="0" name="group_by" string="Group By">
|
||||
<filter name="group_by_model" string="Model" domain="[]" context="{'group_by': 'model'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_autovacuum_rule_tree" model="ir.ui.view">
|
||||
<field name="name">muk_autovacuum_rules.tree</field>
|
||||
<field name="model">muk_autovacuum.rules</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Auto Vacuum Rules" decoration-muted="(not active)">
|
||||
<field name="sequence" widget="handle"/>
|
||||
<field name="name"/>
|
||||
<field name="model"/>
|
||||
<field name="state"/>
|
||||
<field name="active"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_autovacuum_rule_form" model="ir.ui.view">
|
||||
<field name="name">muk_autovacuum_rules.form</field>
|
||||
<field name="model">muk_autovacuum.rules</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Auto Vacuum Rules">
|
||||
<sheet>
|
||||
<div class="oe_button_box" name="button_box">
|
||||
<button name="toggle_active" type="object" class="oe_stat_button" icon="fa-bell">
|
||||
<field name="active" widget="boolean_button"/>
|
||||
</button>
|
||||
</div>
|
||||
<div class="oe_title">
|
||||
<label for="name" class="oe_edit_only"/>
|
||||
<h1>
|
||||
<field name="name" placeholder="e.g. Delete Logs after 30 Days"/>
|
||||
</h1>
|
||||
</div>
|
||||
<group>
|
||||
<group>
|
||||
<field name="sequence"/>
|
||||
<field name="model"/>
|
||||
<field name="model_name" invisible="1"/>
|
||||
<field name="state"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="protect_starred"/>
|
||||
<field name="only_inactive"/>
|
||||
<field name="only_attachments"/>
|
||||
</group>
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="Time Settings" name='time' autofocus="autofocus"
|
||||
attrs="{'invisible': [('state', '!=', 'time')]}">
|
||||
<group>
|
||||
<group>
|
||||
<field name="time_field"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="time_type"/>
|
||||
<field name="time"/>
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Size Settings" name='size' autofocus="autofocus"
|
||||
attrs="{'invisible': [('state', '!=', 'size')]}">
|
||||
<group>
|
||||
<group>
|
||||
<field name="size_type"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="size_parameter"
|
||||
attrs="{'invisible': [('size_type', '!=', 'parameter')]}"/>
|
||||
<field name="size_parameter_value"
|
||||
attrs="{'invisible': [('size_type', '!=', 'parameter')]}"/>
|
||||
<field name="size"
|
||||
attrs="{'invisible': [('size_type', '!=', 'fixed')]}"/>
|
||||
<field name="size_order"/>
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Domain Settings" name='domain' autofocus="autofocus"
|
||||
attrs="{'invisible': [('state', '!=', 'domain')]}">
|
||||
<field name="domain" widget="domain" options="{'model': 'model_name'}" />
|
||||
</page>
|
||||
<page string="Code Settings" name='code' autofocus="autofocus"
|
||||
attrs="{'invisible': [('state', '!=', 'code')]}">
|
||||
<field name="code" widget="ace" options="{'mode': 'python'}"
|
||||
placeholder="Enter Python code here. Help about Python expression is available in the help tab of this document."/>
|
||||
</page>
|
||||
<page string="Help" attrs="{'invisible': [('state', '!=', 'code')]}">
|
||||
<group>
|
||||
<div style="margin-top: 4px;">
|
||||
<h3>Help with Python expressions</h3>
|
||||
<p>Various fields may use Python code or Python expressions. The following variables can be used:</p>
|
||||
<ul>
|
||||
<li><code>uid</code>, <code>user</code>: User on which the rule is triggered</li>
|
||||
<li><code>env</code>: Odoo Environment on which the rule is triggered</li>
|
||||
<li><code>model</code>: Odoo Model of the record on which the rule is triggered</li>
|
||||
<li><code>b64encode</code>, <code>b64decode</code>: Base64 converter</li>
|
||||
<li><code>time</code>, <code>datetime</code>, <code>dateutil</code>, <code>timezone</code>: useful Python libraries</li>
|
||||
<li><code>date_format</code>, <code>datetime_format</code>: server date and time formats</li>
|
||||
<li><code>logger.info(message)</code>: Python logging framework</li>
|
||||
<li><code>Warning</code>: Warning Exception to use with <code>raise</code></li>
|
||||
</ul>
|
||||
</div>
|
||||
</group>
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_autovacuum_rule" model="ir.actions.act_window">
|
||||
<field name="name">Auto Vacuum Rules</field>
|
||||
<field name="res_model">muk_autovacuum.rules</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="context">{'search_default_all': 1}</field>
|
||||
</record>
|
||||
|
||||
<menuitem id="menu_autovacuum_rules" name="Auto Vacuum Rules"
|
||||
parent="base.menu_automation" action="action_autovacuum_rule"/>
|
||||
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,165 @@
|
|||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
|
||||
This version of the GNU Lesser General Public License incorporates
|
||||
the terms and conditions of version 3 of the GNU General Public
|
||||
License, supplemented by the additional permissions listed below.
|
||||
|
||||
0. Additional Definitions.
|
||||
|
||||
As used herein, "this License" refers to version 3 of the GNU Lesser
|
||||
General Public License, and the "GNU GPL" refers to version 3 of the GNU
|
||||
General Public License.
|
||||
|
||||
"The Library" refers to a covered work governed by this License,
|
||||
other than an Application or a Combined Work as defined below.
|
||||
|
||||
An "Application" is any work that makes use of an interface provided
|
||||
by the Library, but which is not otherwise based on the Library.
|
||||
Defining a subclass of a class defined by the Library is deemed a mode
|
||||
of using an interface provided by the Library.
|
||||
|
||||
A "Combined Work" is a work produced by combining or linking an
|
||||
Application with the Library. The particular version of the Library
|
||||
with which the Combined Work was made is also called the "Linked
|
||||
Version".
|
||||
|
||||
The "Minimal Corresponding Source" for a Combined Work means the
|
||||
Corresponding Source for the Combined Work, excluding any source code
|
||||
for portions of the Combined Work that, considered in isolation, are
|
||||
based on the Application, and not on the Linked Version.
|
||||
|
||||
The "Corresponding Application Code" for a Combined Work means the
|
||||
object code and/or source code for the Application, including any data
|
||||
and utility programs needed for reproducing the Combined Work from the
|
||||
Application, but excluding the System Libraries of the Combined Work.
|
||||
|
||||
1. Exception to Section 3 of the GNU GPL.
|
||||
|
||||
You may convey a covered work under sections 3 and 4 of this License
|
||||
without being bound by section 3 of the GNU GPL.
|
||||
|
||||
2. Conveying Modified Versions.
|
||||
|
||||
If you modify a copy of the Library, and, in your modifications, a
|
||||
facility refers to a function or data to be supplied by an Application
|
||||
that uses the facility (other than as an argument passed when the
|
||||
facility is invoked), then you may convey a copy of the modified
|
||||
version:
|
||||
|
||||
a) under this License, provided that you make a good faith effort to
|
||||
ensure that, in the event an Application does not supply the
|
||||
function or data, the facility still operates, and performs
|
||||
whatever part of its purpose remains meaningful, or
|
||||
|
||||
b) under the GNU GPL, with none of the additional permissions of
|
||||
this License applicable to that copy.
|
||||
|
||||
3. Object Code Incorporating Material from Library Header Files.
|
||||
|
||||
The object code form of an Application may incorporate material from
|
||||
a header file that is part of the Library. You may convey such object
|
||||
code under terms of your choice, provided that, if the incorporated
|
||||
material is not limited to numerical parameters, data structure
|
||||
layouts and accessors, or small macros, inline functions and templates
|
||||
(ten or fewer lines in length), you do both of the following:
|
||||
|
||||
a) Give prominent notice with each copy of the object code that the
|
||||
Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
|
||||
b) Accompany the object code with a copy of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
4. Combined Works.
|
||||
|
||||
You may convey a Combined Work under terms of your choice that,
|
||||
taken together, effectively do not restrict modification of the
|
||||
portions of the Library contained in the Combined Work and reverse
|
||||
engineering for debugging such modifications, if you also do each of
|
||||
the following:
|
||||
|
||||
a) Give prominent notice with each copy of the Combined Work that
|
||||
the Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
|
||||
b) Accompany the Combined Work with a copy of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
c) For a Combined Work that displays copyright notices during
|
||||
execution, include the copyright notice for the Library among
|
||||
these notices, as well as a reference directing the user to the
|
||||
copies of the GNU GPL and this license document.
|
||||
|
||||
d) Do one of the following:
|
||||
|
||||
0) Convey the Minimal Corresponding Source under the terms of this
|
||||
License, and the Corresponding Application Code in a form
|
||||
suitable for, and under terms that permit, the user to
|
||||
recombine or relink the Application with a modified version of
|
||||
the Linked Version to produce a modified Combined Work, in the
|
||||
manner specified by section 6 of the GNU GPL for conveying
|
||||
Corresponding Source.
|
||||
|
||||
1) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (a) uses at run time
|
||||
a copy of the Library already present on the user's computer
|
||||
system, and (b) will operate properly with a modified version
|
||||
of the Library that is interface-compatible with the Linked
|
||||
Version.
|
||||
|
||||
e) Provide Installation Information, but only if you would otherwise
|
||||
be required to provide such information under section 6 of the
|
||||
GNU GPL, and only to the extent that such information is
|
||||
necessary to install and execute a modified version of the
|
||||
Combined Work produced by recombining or relinking the
|
||||
Application with a modified version of the Linked Version. (If
|
||||
you use option 4d0, the Installation Information must accompany
|
||||
the Minimal Corresponding Source and Corresponding Application
|
||||
Code. If you use option 4d1, you must provide the Installation
|
||||
Information in the manner specified by section 6 of the GNU GPL
|
||||
for conveying Corresponding Source.)
|
||||
|
||||
5. Combined Libraries.
|
||||
|
||||
You may place library facilities that are a work based on the
|
||||
Library side by side in a single library together with other library
|
||||
facilities that are not Applications and are not covered by this
|
||||
License, and convey such a combined library under terms of your
|
||||
choice, if you do both of the following:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work based
|
||||
on the Library, uncombined with any other library facilities,
|
||||
conveyed under the terms of this License.
|
||||
|
||||
b) Give prominent notice with the combined library that part of it
|
||||
is a work based on the Library, and explaining where to find the
|
||||
accompanying uncombined form of the same work.
|
||||
|
||||
6. Revised Versions of the GNU Lesser General Public License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions
|
||||
of the GNU Lesser General Public License from time to time. Such new
|
||||
versions will be similar in spirit to the present version, but may
|
||||
differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Library as you received it specifies that a certain numbered version
|
||||
of the GNU Lesser General Public License "or any later version"
|
||||
applies to it, you have the option of following the terms and
|
||||
conditions either of that published version or of any later version
|
||||
published by the Free Software Foundation. If the Library as you
|
||||
received it does not specify a version number of the GNU Lesser
|
||||
General Public License, you may choose any version of the GNU Lesser
|
||||
General Public License ever published by the Free Software Foundation.
|
||||
|
||||
If the Library as you received it specifies that a proxy can decide
|
||||
whether future versions of the GNU Lesser General Public License shall
|
||||
apply, that proxy's public statement of acceptance of any version is
|
||||
permanent authorization for you to choose that version for the
|
||||
Library.
|
||||
|
|
@ -0,0 +1,123 @@
|
|||
==============================
|
||||
MuK Document Management System
|
||||
==============================
|
||||
|
||||
MuK Documents is a module to create, manage and view files directly within Odoo.
|
||||
In addition to views for files and folders, it offers its own all in one view
|
||||
to make working with documents easier. This module is only the basis for an
|
||||
entire ecosystem of apps that extend and seamlessly integrate with the document
|
||||
management system.
|
||||
|
||||
Installation
|
||||
============
|
||||
|
||||
To install this module, you need to:
|
||||
|
||||
Download the module and add it to your Odoo addons folder. Afterward, log on to
|
||||
your Odoo server and go to the Apps menu. Trigger the debug mode and update the
|
||||
list by clicking on the "Update Apps List" link. Now install the module by
|
||||
clicking on the install button.
|
||||
|
||||
Another way to install this module is via the package management for Python
|
||||
(`PyPI <https://pypi.org/project/pip/>`_).
|
||||
|
||||
To install our modules using the package manager make sure
|
||||
`odoo-autodiscover <https://pypi.org/project/odoo-autodiscover/>`_ is installed
|
||||
correctly. Then open a console and install the module by entering the following
|
||||
command:
|
||||
|
||||
``pip install --extra-index-url https://nexus.mukit.at/repository/odoo/simple <module>``
|
||||
|
||||
The module name consists of the Odoo version and the module name, where
|
||||
underscores are replaced by a dash.
|
||||
|
||||
**Module:**
|
||||
|
||||
``odoo<version>-addon-<module_name>``
|
||||
|
||||
**Example:**
|
||||
|
||||
``sudo -H pip3 install --extra-index-url https://nexus.mukit.at/repository/odoo/simple odoo11-addon-muk-utils``
|
||||
|
||||
Once the installation has been successfully completed, the app is already in the
|
||||
correct folder. Log on to your Odoo server and go to the Apps menu. Trigger the
|
||||
debug mode and update the list by clicking on the "Update Apps List" link. Now
|
||||
install the module by clicking on the install button.
|
||||
|
||||
The biggest advantage of this variant is that you can now also update the app
|
||||
using the "pip" command. To do this, enter the following command in your console:
|
||||
|
||||
``pip install --upgrade --extra-index-url https://nexus.mukit.at/repository/odoo/simple <module>``
|
||||
|
||||
When the process is finished, restart your server and update the application in
|
||||
Odoo. The steps are the same as for the installation only the button has changed
|
||||
from "Install" to "Upgrade".
|
||||
|
||||
You can also view available Apps directly in our `repository <https://nexus.mukit.at/#browse/browse:odoo>`_
|
||||
and find a more detailed installation guide on our `website <https://mukit.at/page/open-source>`_.
|
||||
|
||||
For modules licensed under OPL-1, you will receive access data when you purchase
|
||||
the module. If the modules were not purchased directly from
|
||||
`MuK IT <https://www.mukit.at/>`_ please contact our support (support@mukit.at)
|
||||
with a confirmation of purchase to receive the corresponding access data.
|
||||
|
||||
Upgrade
|
||||
============
|
||||
|
||||
To upgrade this module, you need to:
|
||||
|
||||
Download the module and add it to your Odoo addons folder. Restart the server
|
||||
and log on to your Odoo server. Select the Apps menu and upgrade the module by
|
||||
clicking on the upgrade button.
|
||||
|
||||
If you installed the module using the "pip" command, you can also update the
|
||||
module in the same way. Just type the following command into the console:
|
||||
|
||||
``pip install --upgrade --extra-index-url https://nexus.mukit.at/repository/odoo/simple <module>``
|
||||
|
||||
When the process is finished, restart your server and update the application in
|
||||
Odoo, just like you would normally.
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
To configure this module, you need to:
|
||||
|
||||
#. Go to *Documents -> Configuration -> Storages*.
|
||||
#. Create a new document setting.
|
||||
#. Afterwards go to *Documents -> Directories*.
|
||||
#. Create a new directory, mark it as root and select the previously created setting.
|
||||
|
||||
Usage
|
||||
=============
|
||||
|
||||
The best way to manage the documents is to switch to the Documents view. Existing
|
||||
documents can be managed there and new documents can be created.
|
||||
|
||||
Credits
|
||||
=======
|
||||
|
||||
Contributors
|
||||
------------
|
||||
|
||||
* Mathias Markl <mathias.markl@mukit.at>
|
||||
|
||||
Images
|
||||
------------
|
||||
|
||||
Some pictures are based on or inspired by:
|
||||
|
||||
* `Roundicons <https://www.flaticon.com/authors/roundicons>`_
|
||||
* `Smashicons <https://www.flaticon.com/authors/smashicons>`_
|
||||
|
||||
Author & Maintainer
|
||||
-------------------
|
||||
|
||||
This module is maintained by the `MuK IT GmbH <https://www.mukit.at/>`_.
|
||||
|
||||
MuK IT is an Austrian company specialized in customizing and extending Odoo.
|
||||
We develop custom solutions for your individual needs to help you focus on
|
||||
your strength and expertise to grow your business.
|
||||
|
||||
If you want to get in touch please contact us via mail
|
||||
(sale@mukit.at) or visit our website (https://mukit.at).
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
###################################################################################
|
||||
#
|
||||
# Copyright (c) 2017-2019 MuK IT GmbH.
|
||||
#
|
||||
# This file is part of MuK Documents
|
||||
# (see https://mukit.at).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
###################################################################################
|
||||
|
||||
from . import models
|
||||
from . import controllers
|
||||
|
|
@ -0,0 +1,73 @@
|
|||
###################################################################################
|
||||
#
|
||||
# Copyright (c) 2017-2019 MuK IT GmbH.
|
||||
#
|
||||
# This file is part of MuK Documents
|
||||
# (see https://mukit.at).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
###################################################################################
|
||||
|
||||
{
|
||||
"name": "MuK Documents",
|
||||
"summary": """Document Management System""",
|
||||
"version": '12.0.3.0.12',
|
||||
"category": 'Document Management',
|
||||
"license": "LGPL-3",
|
||||
"website": "http://www.mukit.at",
|
||||
'live_test_url': 'https://mukit.at/r/SgN',
|
||||
"author": "MuK IT",
|
||||
"contributors": [
|
||||
"Mathias Markl <mathias.markl@mukit.at>",
|
||||
],
|
||||
"depends": [
|
||||
"muk_security",
|
||||
"muk_web_searchpanel",
|
||||
],
|
||||
"data": [
|
||||
"security/security.xml",
|
||||
"security/ir.model.access.csv",
|
||||
"actions/file.xml",
|
||||
"template/assets.xml",
|
||||
"template/onboarding.xml",
|
||||
"views/menu.xml",
|
||||
"views/tag.xml",
|
||||
"views/category.xml",
|
||||
"views/file.xml",
|
||||
"views/directory.xml",
|
||||
"views/storage.xml",
|
||||
"views/res_config_settings.xml",
|
||||
],
|
||||
"demo": [
|
||||
"demo/res_users.xml",
|
||||
"demo/category.xml",
|
||||
"demo/tag.xml",
|
||||
"demo/storage.xml",
|
||||
"demo/directory.xml",
|
||||
"demo/file.xml",
|
||||
],
|
||||
"qweb": [
|
||||
"static/src/xml/*.xml",
|
||||
],
|
||||
"images": [
|
||||
'static/description/banner.png'
|
||||
],
|
||||
"external_dependencies": {
|
||||
"python": [],
|
||||
"bin": [],
|
||||
},
|
||||
"application": True,
|
||||
"installable": True,
|
||||
}
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!--
|
||||
|
||||
Copyright (c) 2017-2019 MuK IT GmbH.
|
||||
|
||||
This file is part of MuK Documents
|
||||
(see https://mukit.at).
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Lesser General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
-->
|
||||
|
||||
<odoo>
|
||||
|
||||
<record id="action_dms_attachment_migrate" model="ir.actions.server">
|
||||
<field name="name">Migrate</field>
|
||||
<field name="model_id" ref="model_muk_dms_file" />
|
||||
<field name="binding_model_id" ref="muk_dms.model_muk_dms_file" />
|
||||
<field name="state">code</field>
|
||||
<field name="code">records.action_migrate()</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
###################################################################################
|
||||
#
|
||||
# Copyright (c) 2017-2019 MuK IT GmbH.
|
||||
#
|
||||
# This file is part of MuK Documents
|
||||
# (see https://mukit.at).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
###################################################################################
|
||||
|
||||
from . import backend
|
||||
from . import onboarding
|
||||