update description

This commit is contained in:
Ivan Office
2023-09-01 01:25:56 +08:00
parent 3a3eb09932
commit 61e3578c8e
15 changed files with 171 additions and 190 deletions

View File

@@ -6,13 +6,11 @@
<field name="model">account.account</field> <field name="model">account.account</field>
<field name="inherit_id" ref="account.view_account_search"/> <field name="inherit_id" ref="account.view_account_search"/>
<field name="arch" type="xml"> <field name="arch" type="xml">
<xpath expr="//search/searchpanel" position="replace"> <xpath expr="//search/searchpanel" position="inside">
<searchpanel> <field name="account_type"/>
<field name="user_type_id"/> </xpath>
<!--<field name="tag_ids"/>--> <xpath expr="//search/searchpanel" position="attributes">
<field name="group_id"/> <attribute name="class"/>
<field name="root_id" icon="fa-filter"/>
</searchpanel>
</xpath> </xpath>
</field> </field>
</record> </record>
@@ -52,13 +50,16 @@
<field name="model">account.move.line</field> <field name="model">account.move.line</field>
<field name="inherit_id" ref="account.view_account_move_line_filter"/> <field name="inherit_id" ref="account.view_account_move_line_filter"/>
<field name="arch" type="xml"> <field name="arch" type="xml">
<xpath expr="//search"> <xpath expr="//search/searchpanel" position="attributes">
<searchpanel view_types="list,kanban,pivot,graph"> <attribute name="view_types">list,kanban,pivot,graph</attribute>
<field name="company_id" groups="base.group_multi_company" icon="fa-building"/> </xpath>
<xpath expr="//search/searchpanel" position="attributes">
<attribute name="class"/>
</xpath>
<xpath expr="//search/searchpanel" position="inside">
<field name="journal_id"/> <field name="journal_id"/>
<field name="partner_id"/> <field name="partner_id"/>
<field name="account_id"/> <field name="company_id" groups="base.group_multi_company" icon="fa-building"/>
</searchpanel>
</xpath> </xpath>
</field> </field>
</record> </record>

View File

@@ -6,8 +6,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Odoo Server 16.0+e-20230721\n" "Project-Id-Version: Odoo Server 16.0+e-20230721\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-26 14:52+0000\n" "POT-Creation-Date: 2023-08-29 10:37+0000\n"
"PO-Revision-Date: 2023-08-26 14:52+0000\n" "PO-Revision-Date: 2023-08-29 10:37+0000\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@@ -660,6 +660,11 @@ msgstr ""
msgid "ATM sign" msgid "ATM sign"
msgstr "" msgstr ""
#. module: app_chatgpt
#: model:ir.model.fields,field_description:app_chatgpt.field_ai_robot__active
msgid "Active"
msgstr ""
#. module: app_chatgpt #. module: app_chatgpt
#. odoo-javascript #. odoo-javascript
#: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 #: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0
@@ -684,12 +689,39 @@ msgstr "上下文连接超时(秒)"
msgid "Ai Center Setup" msgid "Ai Center Setup"
msgstr "Ai智能服务中心设置" msgstr "Ai智能服务中心设置"
#. module: app_chatgpt
#: model:ir.model.fields,field_description:app_chatgpt.field_mail_channel__description
msgid "Ai Character"
msgstr "Ai角色设定"
#. module: app_chatgpt
#: model_terms:ir.ui.view,arch_db:app_chatgpt.ai_mail_channel_view_form
msgid "Ai Character Set"
msgstr "Ai角色风格设定"
#. module: app_chatgpt
#: model_terms:ir.ui.view,arch_db:app_chatgpt.ai_robot_search_view
msgid "Ai Provider"
msgstr ""
#. module: app_chatgpt
#: model:ir.actions.act_window,name:app_chatgpt.action_ai_robot
#: model:ir.model,name:app_chatgpt.model_ai_robot
#: model:ir.ui.menu,name:app_chatgpt.menu_ai_robot
msgid "Ai Robot"
msgstr "GPT机器人"
#. module: app_chatgpt #. module: app_chatgpt
#: model:ir.model.fields,field_description:app_chatgpt.field_res_partner_ai_use__ai_user_id #: model:ir.model.fields,field_description:app_chatgpt.field_res_partner_ai_use__ai_user_id
#: model_terms:ir.ui.view,arch_db:app_chatgpt.app_view_users_search #: model_terms:ir.ui.view,arch_db:app_chatgpt.app_view_users_search
msgid "Ai User" msgid "Ai User"
msgstr "Ai用户" msgstr "Ai用户"
#. module: app_chatgpt
#: model:ir.model.fields,help:app_chatgpt.field_mail_channel__description
msgid "Ai would help you act as the Character set."
msgstr "Ai将按你设置的角色来对你的问题进行反馈"
#. module: app_chatgpt #. module: app_chatgpt
#: model_terms:ir.ui.view,arch_db:app_chatgpt.ai_mail_channel_view_form #: model_terms:ir.ui.view,arch_db:app_chatgpt.ai_mail_channel_view_form
msgid "Ai常规设定" msgid "Ai常规设定"
@@ -705,16 +737,6 @@ msgstr ""
msgid "Ai自动判断" msgid "Ai自动判断"
msgstr "" msgstr ""
#. module: app_chatgpt
#: model:ir.model.fields,field_description:app_chatgpt.field_mail_channel__description
msgid "Ai角色设定"
msgstr ""
#. module: app_chatgpt
#: model_terms:ir.ui.view,arch_db:app_chatgpt.ai_mail_channel_view_form
msgid "Ai角色风格设定"
msgstr ""
#. module: app_chatgpt #. module: app_chatgpt
#: model:ir.model.fields,field_description:app_chatgpt.field_res_config_settings__module_app_ai_ali #: model:ir.model.fields,field_description:app_chatgpt.field_res_config_settings__module_app_ai_ali
msgid "Ali Ai China" msgid "Ali Ai China"
@@ -764,6 +786,11 @@ msgstr ""
msgid "Aquarius" msgid "Aquarius"
msgstr "" msgstr ""
#. module: app_chatgpt
#: model_terms:ir.ui.view,arch_db:app_chatgpt.ai_robot_search_view
msgid "Archived"
msgstr ""
#. module: app_chatgpt #. module: app_chatgpt
#. odoo-javascript #. odoo-javascript
#: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 #: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0
@@ -991,6 +1018,11 @@ msgstr ""
msgid "Chatgpt 4 32k" msgid "Chatgpt 4 32k"
msgstr "" msgstr ""
#. module: app_chatgpt
#: model:ir.model.fields,help:app_chatgpt.field_mail_channel__is_private
msgid "Check to set Private, Can only use by user, not Public"
msgstr "勾选后,即为私人频道,仅个人使用。"
#. module: app_chatgpt #. module: app_chatgpt
#. odoo-javascript #. odoo-javascript
#: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 #: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0
@@ -1261,12 +1293,6 @@ msgstr ""
msgid "Fuji" msgid "Fuji"
msgstr "" msgstr ""
#. module: app_chatgpt
#: model:ir.actions.act_window,name:app_chatgpt.action_ai_robot
#: model:ir.ui.menu,name:app_chatgpt.menu_ai_robot
msgid "GPT Robot"
msgstr ""
#. module: app_chatgpt #. module: app_chatgpt
#. odoo-javascript #. odoo-javascript
#: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0 #: code:addons/app_chatgpt/static/src/models_data/emoji_data.js:0
@@ -1302,13 +1328,9 @@ msgstr "获取Model Info"
msgid "Google Bard Ai" msgid "Google Bard Ai"
msgstr "" msgstr ""
#. module: app_chatgpt
#: model:ir.model,name:app_chatgpt.model_ai_robot
msgid "Gpt Robot"
msgstr "GPT机器人"
#. module: app_chatgpt #. module: app_chatgpt
#: model_terms:ir.ui.view,arch_db:app_chatgpt.ai_mail_channel_view_search #: model_terms:ir.ui.view,arch_db:app_chatgpt.ai_mail_channel_view_search
#: model_terms:ir.ui.view,arch_db:app_chatgpt.ai_robot_search_view
msgid "Group By" msgid "Group By"
msgstr "" msgstr ""
@@ -1670,7 +1692,7 @@ msgstr ""
#. module: app_chatgpt #. module: app_chatgpt
#: model_terms:ir.actions.act_window,help:app_chatgpt.action_ai_robot #: model_terms:ir.actions.act_window,help:app_chatgpt.action_ai_robot
msgid "Let's create a GPT Robot." msgid "Let's create a Ai Robot."
msgstr "" msgstr ""
#. module: app_chatgpt #. module: app_chatgpt
@@ -1703,6 +1725,16 @@ msgstr ""
msgid "Mahjong red dragon" msgid "Mahjong red dragon"
msgstr "" msgstr ""
#. module: app_chatgpt
#: model:ir.model.fields,field_description:app_chatgpt.field_mail_channel__ai_partner_id
msgid "Main Ai"
msgstr "专属主Ai"
#. module: app_chatgpt
#: model:ir.model.fields,help:app_chatgpt.field_mail_channel__ai_partner_id
msgid "Main Ai is the robot help you default."
msgstr "主Ai是主要对话对象当没有 @ 操作时由主Ai回答"
#. module: app_chatgpt #. module: app_chatgpt
#: model:ir.model.fields,field_description:app_chatgpt.field_res_partner_ai_use__max_number #: model:ir.model.fields,field_description:app_chatgpt.field_res_partner_ai_use__max_number
msgid "Max Number of Call" msgid "Max Number of Call"
@@ -2028,6 +2060,11 @@ msgstr ""
msgid "Presence penalty" msgid "Presence penalty"
msgstr "" msgstr ""
#. module: app_chatgpt
#: model:ir.model.fields,field_description:app_chatgpt.field_mail_channel__is_private
msgid "Private"
msgstr "私有频道"
#. module: app_chatgpt #. module: app_chatgpt
#: model:ir.model.fields,help:app_chatgpt.field_ai_robot__openapi_api_key #: model:ir.model.fields,help:app_chatgpt.field_ai_robot__openapi_api_key
msgid "Provide the API key here" msgid "Provide the API key here"
@@ -2140,6 +2177,11 @@ msgstr ""
msgid "Scorpius" msgid "Scorpius"
msgstr "" msgstr ""
#. module: app_chatgpt
#: model:ir.model.fields,field_description:app_chatgpt.field_mail_channel__ext_ai_partner_id
msgid "Secondary Ai"
msgstr "辅助Ai"
#. module: app_chatgpt #. module: app_chatgpt
#: model_terms:ir.ui.view,arch_db:app_chatgpt.is_res_config_settings_view #: model_terms:ir.ui.view,arch_db:app_chatgpt.is_res_config_settings_view
msgid "Seconds" msgid "Seconds"
@@ -27622,11 +27664,6 @@ msgstr ""
msgid "上下文相关" msgid "上下文相关"
msgstr "" msgstr ""
#. module: app_chatgpt
#: model:ir.model.fields,field_description:app_chatgpt.field_mail_channel__ai_partner_id
msgid "专属主Ai"
msgstr ""
#. module: app_chatgpt #. module: app_chatgpt
#: model:ir.model.fields.selection,name:app_chatgpt.selection__mail_channel__set_top_p__0_9 #: model:ir.model.fields.selection,name:app_chatgpt.selection__mail_channel__set_top_p__0_9
msgid "严谨惯性思维" msgid "严谨惯性思维"
@@ -27637,11 +27674,6 @@ msgstr ""
msgid "中等" msgid "中等"
msgstr "" msgstr ""
#. module: app_chatgpt
#: model:ir.model.fields,help:app_chatgpt.field_mail_channel__ai_partner_id
msgid "主Ai是主要对话对象当没有@操作时由主Ai回答"
msgstr ""
#. module: app_chatgpt #. module: app_chatgpt
#: model:ir.model.fields.selection,name:app_chatgpt.selection__mail_channel__set_temperature__0_1 #: model:ir.model.fields.selection,name:app_chatgpt.selection__mail_channel__set_temperature__0_1
msgid "保守" msgid "保守"
@@ -27673,11 +27705,6 @@ msgstr ""
msgid "响应篇幅限制" msgid "响应篇幅限制"
msgstr "" msgstr ""
#. module: app_chatgpt
#: model:ir.model.fields,help:app_chatgpt.field_mail_channel__description
msgid "填写后Ai将以您设定的身份与你交互你是一个在航空航天领域的专家。不填则根据问题智能处理"
msgstr ""
#. module: app_chatgpt #. module: app_chatgpt
#: model:ir.model.fields.selection,name:app_chatgpt.selection__mail_channel__set_presence_penalty__2 #: model:ir.model.fields.selection,name:app_chatgpt.selection__mail_channel__set_presence_penalty__2
msgid "多样强迫症" msgid "多样强迫症"
@@ -27818,16 +27845,6 @@ msgstr ""
msgid "百度文心一格" msgid "百度文心一格"
msgstr "" msgstr ""
#. module: app_chatgpt
#: model:ir.model.fields,help:app_chatgpt.field_mail_channel__is_private
msgid "私人频道不公开,可邀请及清退指定用户"
msgstr ""
#. module: app_chatgpt
#: model:ir.model.fields,field_description:app_chatgpt.field_mail_channel__is_private
msgid "私有频道"
msgstr ""
#. module: app_chatgpt #. module: app_chatgpt
#: model:ir.model.fields.selection,name:app_chatgpt.selection__mail_channel__set_max_tokens__300 #: model:ir.model.fields.selection,name:app_chatgpt.selection__mail_channel__set_max_tokens__300
msgid "简短" msgid "简短"
@@ -27864,11 +27881,6 @@ msgstr ""
msgid "跳跃性" msgid "跳跃性"
msgstr "" msgstr ""
#. module: app_chatgpt
#: model:ir.model.fields,field_description:app_chatgpt.field_mail_channel__ext_ai_partner_id
msgid "辅助Ai"
msgstr ""
#. module: app_chatgpt #. module: app_chatgpt
#: model_terms:ir.ui.view,arch_db:app_chatgpt.ai_mail_channel_view_kanban #: model_terms:ir.ui.view,arch_db:app_chatgpt.ai_mail_channel_view_kanban
msgid "进入频道" msgid "进入频道"
@@ -27884,11 +27896,6 @@ msgstr ""
msgid "通俗易懂" msgid "通俗易懂"
msgstr "" msgstr ""
#. module: app_chatgpt
#: model:ir.model.fields,help:app_chatgpt.field_mail_channel__ext_ai_partner_id
msgid "通过 @辅助Ai 可以让辅助Ai回答问题"
msgstr ""
#. module: app_chatgpt #. module: app_chatgpt
#: model:ir.model.fields,field_description:app_chatgpt.field_mail_channel__frequency_penalty #: model:ir.model.fields,field_description:app_chatgpt.field_mail_channel__frequency_penalty
msgid "避免常用词值" msgid "避免常用词值"

View File

@@ -1,65 +0,0 @@
DMCA Takedown Policy
In this article
What Is the DMCA?
DMCA Notices In a Nutshell
A. How Does This Actually Work?
B. What About Forks? (or What's a Fork?)
C. What about Circumvention Claims?
D. What If I Inadvertently Missed the Window to Make Changes?
E. Transparency
F. Repeated Infringement
G. Submitting Notices
Learn More and Speak Up
Welcome to GitHub's Guide to the Digital Millennium Copyright Act, commonly known as the "DMCA." This page is not meant as a comprehensive primer to the statute. However, if you've received a DMCA takedown notice targeting content you've posted on GitHub or if you're a rights-holder looking to issue such a notice, this page will hopefully help to demystify the law a bit as well as our policies for complying with it.
(If you just want to submit a notice, you can skip to "G. Submitting Notices.")
As with all legal matters, it is always best to consult with a professional about your specific questions or situation. We strongly encourage you to do so before taking any action that might impact your rights. This guide isn't legal advice and shouldn't be taken as such.
What Is the DMCA?
In order to understand the DMCA and some of the policy lines it draws, it's perhaps helpful to consider life before it was enacted.
The DMCA provides a safe harbor for service providers that host user-generated content. Since even a single claim of copyright infringement can carry statutory damages of up to $150,000, the possibility of being held liable for user-generated content could be very harmful for service providers. With potential damages multiplied across millions of users, cloud-computing and user-generated content sites like YouTube, Facebook, or GitHub probably never would have existed without the DMCA (or at least not without passing some of that cost downstream to their users).
The DMCA addresses this issue by creating a copyright liability safe harbor for internet service providers hosting allegedly infringing user-generated content. Essentially, so long as a service provider follows the DMCA's notice-and-takedown rules, it won't be liable for copyright infringement based on user-generated content. Because of this, it is important for GitHub to maintain its DMCA safe-harbor status.
The DMCA also prohibits the circumvention of technical measures that effectively control access to works protected by copyright.
DMCA Notices In a Nutshell
The DMCA provides two simple, straightforward procedures that all GitHub users should know about: (i) a takedown-notice procedure for copyright holders to request that content be removed; and (ii) a counter-notice procedure for users to get content re-enabled when content is taken down by mistake or misidentification.
DMCA takedown notices are used by copyright owners to ask GitHub to take down content they believe to be infringing. If you are a software designer or developer, you create copyrighted content every day. If someone else is using your copyrighted content in an unauthorized manner on GitHub, you can send us a DMCA takedown notice to request that the infringing content be changed or removed.
On the other hand, counter notices can be used to correct mistakes. Maybe the person sending the takedown notice does not hold the copyright or did not realize that you have a license or made some other mistake in their takedown notice. Since GitHub usually cannot know if there has been a mistake, the DMCA counter notice allows you to let us know and ask that we put the content back up.
The DMCA notice and takedown process should be used only for complaints about copyright infringement. Notices sent through our DMCA process must identify copyrighted work or works that are allegedly being infringed. The process cannot be used for other complaints, such as complaints about alleged trademark infringement or sensitive data; we offer separate processes for those situations.
A. How Does This Actually Work?
The DMCA framework is a bit like passing notes in class. The copyright owner hands GitHub a complaint about a user. If it's written correctly, we pass the complaint along to the user. If the user disputes the complaint, they can pass a note back saying so. GitHub exercises little discretion in the process other than determining whether the notices meet the minimum requirements of the DMCA. It is up to the parties (and their lawyers) to evaluate the merit of their claims, bearing in mind that notices must be made under penalty of perjury.
Here are the basic steps in the process.
Copyright Owner Investigates. A copyright owner should always conduct an initial investigation to confirm both (a) that they own the copyright to an original work and (b) that the content on GitHub is unauthorized and infringing. This includes confirming that the use is not protected as fair use. A particular use may be fair if it only uses a small amount of copyrighted content, uses that content in a transformative way, uses it for educational purposes, or some combination of the above. Because code naturally lends itself to such uses, each use case is different and must be considered separately.
Example: An employee of Acme Web Company finds some of the company's code in a GitHub repository. Acme Web Company licenses its source code out to several trusted partners. Before sending in a take-down notice, Acme should review those licenses and its agreements to confirm that the code on GitHub is not authorized under any of them.
Copyright Owner Sends A Notice. After conducting an investigation, a copyright owner prepares and sends a takedown notice to GitHub. Assuming the takedown notice is sufficiently detailed according to the statutory requirements (as explained in the how-to guide), we will post the notice to our public repository and pass the link along to the affected user.
GitHub Asks User to Make Changes. If the notice alleges that the entire contents of a repository infringe, or a package infringes, we will skip to Step 6 and disable the entire repository or package expeditiously. Otherwise, because GitHub cannot disable access to specific files within a repository, we will contact the user who created the repository and give them approximately 1 business day to delete or modify the content specified in the notice. We'll notify the copyright owner if and when we give the user a chance to make changes. Because packages are immutable, if only part of a package is infringing, GitHub would need to disable the entire package, but we permit reinstatement once the infringing portion is removed.
User Notifies GitHub of Changes. If the user chooses to make the specified changes, they must tell us so within the window of approximately 1 business day. If they don't, we will disable the repository (as described in Step 6). If the user notifies us that they made changes, we will verify that the changes have been made and then notify the copyright owner.
Copyright Owner Revises or Retracts the Notice. If the user makes changes, the copyright owner must review them and renew or revise their takedown notice if the changes are insufficient. GitHub will not take any further action unless the copyright owner contacts us to either renew the original takedown notice or submit a revised one. If the copyright owner is satisfied with the changes, they may either submit a formal retraction or else do nothing. GitHub will interpret silence longer than two weeks as an implied retraction of the takedown notice.
GitHub May Disable Access to the Content. GitHub will disable a user's content if: (i) the copyright owner has alleged copyright over the user's entire repository or package (as noted in Step 3); (ii) the user has not made any changes after being given an opportunity to do so (as noted in Step 4); or (iii) the copyright owner has renewed their takedown notice after the user had a chance to make changes. If the copyright owner chooses instead to revise the notice, we will go back to Step 2 and repeat the process as if the revised notice were a new notice.
User May Send A Counter Notice. We encourage users who have had content disabled to consult with a lawyer about their options. If a user believes that their content was disabled as a result of a mistake or misidentification, they may send us a counter notice. As with the original notice, we will make sure that the counter notice is sufficiently detailed (as explained in the how-to guide). If it is, we will post it to our public repository and pass the notice back to the copyright owner by sending them the link.
Copyright Owner May File a Legal Action. If a copyright owner wishes to keep the content disabled after receiving a counter notice, they will need to initiate a legal action seeking a court order to restrain the user from engaging in infringing activity relating to the content on GitHub. In other words, you might get sued. If the copyright owner does not give GitHub notice within 10-14 days, by sending a copy of a valid legal complaint filed in a court of competent jurisdiction, GitHub will re-enable the disabled content.
B. What About Forks? (or What's a Fork?)
One of the best features of GitHub is the ability for users to "fork" one another's repositories. What does that mean? In essence, it means that users can make a copy of a project on GitHub into their own repositories. As the license or the law allows, users can then make changes to that fork to either push back to the main project or just keep as their own variation of a project. Each of these copies is a "GitHub glossary" of the original repository, which in turn may also be called the "parent" of the fork.
GitHub will not automatically disable forks when disabling a parent repository. This is because forks belong to different users, may have been altered in significant ways, and may be licensed or used in a different way that is protected by the fair-use doctrine. GitHub does not conduct any independent investigation into forks. We expect copyright owners to conduct that investigation and, if they believe that the forks are also infringing, expressly include forks in their takedown notice.
In rare cases, you may be alleging copyright infringement in a full repository that is actively being forked. If at the time that you submitted your notice, you identified all existing forks of that repository as allegedly infringing, we would process a valid claim against all forks in that network at the time we process the notice. We would do this given the likelihood that all newly created forks would contain the same content. In addition, if the reported network that contains the allegedly infringing content is larger than one hundred (100) repositories and thus would be difficult to review in its entirety, we may consider disabling the entire network if you state in your notice that, "Based on the representative number of forks I have reviewed, I believe that all or most of the forks are infringing to the same extent as the parent repository." Your sworn statement would apply to this statement.

View File

@@ -12,7 +12,7 @@ _logger = logging.getLogger(__name__)
class AiRobot(models.Model): class AiRobot(models.Model):
_name = 'ai.robot' _name = 'ai.robot'
_description = 'Gpt Robot' _description = 'Ai Robot'
_order = 'sequence, name' _order = 'sequence, name'
name = fields.Char(string='Name', translate=True, required=True) name = fields.Char(string='Name', translate=True, required=True)
@@ -106,6 +106,7 @@ GPT-3 A set of models that can understand and generate natural language
is_filtering = fields.Boolean('Filter Sensitive Words', default=False, help='Use base Filter in dir models/lib/sensi_words.txt') is_filtering = fields.Boolean('Filter Sensitive Words', default=False, help='Use base Filter in dir models/lib/sensi_words.txt')
max_send_char = fields.Integer('Max Send Char', help='Max Send Prompt Length', default=8000) max_send_char = fields.Integer('Max Send Char', help='Max Send Prompt Length', default=8000)
active = fields.Boolean('Active', default=True)
def action_disconnect(self): def action_disconnect(self):
requests.delete('https://chatgpt.com/v1/disconnect') requests.delete('https://chatgpt.com/v1/disconnect')

View File

@@ -16,17 +16,16 @@ _logger = logging.getLogger(__name__)
class Channel(models.Model): class Channel(models.Model):
_inherit = 'mail.channel' _inherit = 'mail.channel'
is_private = fields.Boolean(string="私有频道", default=False, help="私人频道不公开,可邀请及清退指定用户") is_private = fields.Boolean(string="Private", default=False, help="Check to set Private, Can only use by user, not Public")
# 因为 channel_member_ids 不好处理,在此增加此字段 # 因为 channel_member_ids 不好处理,在此增加此字段
# 主Ai # 主Ai
ai_partner_id = fields.Many2one(comodel_name="res.partner", string="专属主Ai", required=False, ai_partner_id = fields.Many2one(comodel_name="res.partner", string="Main Ai", required=False,
domain=[('gpt_id', '!=', None), ('is_chat_private', '=', True)], domain=[('gpt_id', '!=', None), ('is_chat_private', '=', True)],
default=lambda self: self._app_get_m2o_default('ai_partner_id'), default=lambda self: self._app_get_m2o_default('ai_partner_id'),
help="主Ai是主要对话对象当没有@操作时由主Ai回答", ) help="Main Ai is the robot help you default.")
ext_ai_partner_id = fields.Many2one(comodel_name="res.partner", string="辅助Ai", ext_ai_partner_id = fields.Many2one(comodel_name="res.partner", string="Secondary Ai",
domain=[('gpt_id', '!=', None), ('is_chat_private', '=', True)], domain=[('gpt_id', '!=', None), ('is_chat_private', '=', True)])
help="通过 @辅助Ai 可以让辅助Ai回答问题", ) description = fields.Char('Ai Character', help="Ai would help you act as the Character set.")
description = fields.Char('Ai角色设定', help="填写后Ai将以您设定的身份与你交互你是一个在航空航天领域的专家。不填则根据问题智能处理")
set_max_tokens = fields.Selection([ set_max_tokens = fields.Selection([
('300', '简短'), ('300', '简短'),
('600', '标准'), ('600', '标准'),
@@ -349,3 +348,8 @@ class Channel(models.Model):
if c and not c.is_member: if c and not c.is_member:
c.sudo().add_members([user.partner_id.id]) c.sudo().add_members([user.partner_id.id])
return c_id return c_id
@api.onchange('ai_partner_id')
def _onchange_ai_partner_id(self):
if self.ai_partner_id and self.ai_partner_id.image_1920:
self.image_128 = self.ai_partner_id.avatar_128

View File

@@ -111,7 +111,7 @@
<section class="oe_container container"> <section class="oe_container container">
<div class="oe_row oe_spaced"> <div class="oe_row oe_spaced">
<h2 class="bg-warning text-center pt8 pb8">1. Multi ChatGpt openAI robot Connector. Chat and train.</h2> <h2 class="bg-warning text-center pt8 pb8">1. Multi ChatGpt openAI robot Connector. Chat and train.</h2>
<h4 class="oe_slogan"> Goto Setting--> GPT Robot to setup your robot api. </h4> <h4 class="oe_slogan"> Goto Setting--> Ai Robot to setup your robot api. </h4>
<p> Input your api key, And Select the api model you need to use.</p> <p> Input your api key, And Select the api model you need to use.</p>
<div class="oe_demo oe_screenshot img img-fluid"> <div class="oe_demo oe_screenshot img img-fluid">
<img src="demo1.jpg"/> <img src="demo1.jpg"/>

View File

@@ -69,13 +69,29 @@
</field> </field>
</record> </record>
<record id="ai_robot_search_view" model="ir.ui.view">
<field name="name">ai.robot.search</field>
<field name="model">ai.robot</field>
<field name="arch" type="xml">
<search>
<field name="name"/>
<field name="ai_model"/>
<filter string="Archived" name="inactive" domain="[('active', '=', False)]"/>
<group expand="0" name="group_by" string="Group By">
<filter name="groupby_provider" string="Ai Provider" domain="[]" context="{'group_by' : 'provider'}"/>
</group>
</search>
</field>
</record>
<record id="action_ai_robot" model="ir.actions.act_window"> <record id="action_ai_robot" model="ir.actions.act_window">
<field name="name">GPT Robot</field> <field name="name">Ai Robot</field>
<field name="res_model">ai.robot</field> <field name="res_model">ai.robot</field>
<field name="view_mode">tree,form</field> <field name="view_mode">tree,form</field>
<field name="help" type="html"> <field name="help" type="html">
<p class="o_view_nocontent_smiling_face"> <p class="o_view_nocontent_smiling_face">
Let's create a GPT Robot. Let's create a Ai Robot.
</p> </p>
</field> </field>
</record> </record>
@@ -91,7 +107,7 @@
<menuitem <menuitem
id="menu_ai_robot" id="menu_ai_robot"
name="GPT Robot" name="Ai Robot"
parent="base.menu_users" parent="base.menu_users"
sequence="2" sequence="2"
action="action_ai_robot" action="action_ai_robot"

View File

@@ -19,7 +19,7 @@
<field name="ext_ai_partner_id" <field name="ext_ai_partner_id"
options="{'no_open': True, 'no_create': True}"/> options="{'no_open': True, 'no_create': True}"/>
</group> </group>
<group name="param_set" string="Ai角色风格设定"> <group name="param_set" string="Ai Character Set">
<div class="o_td_label"> <div class="o_td_label">
<label for="set_max_tokens"/> <label for="set_max_tokens"/>
</div> </div>

View File

@@ -7,8 +7,8 @@
<field name="inherit_id" ref="product.product_template_search_view"/> <field name="inherit_id" ref="product.product_template_search_view"/>
<field name="arch" type="xml"> <field name="arch" type="xml">
<xpath expr="//search"> <xpath expr="//search">
<searchpanel view_types="list,kanban,pivot,graph,activity,search" class="app_test"> <searchpanel view_types="list,kanban,pivot,graph,search" class="app_test">
<field name="categ_id" text="name" enable_counters="1" expand="1" limit="1000"/> <field name="categ_id" text="name" enable_counters="1" limit="1000"/>
<field name="type"/> <field name="type"/>
<field name="product_tag_ids" select="multi"/> <field name="product_tag_ids" select="multi"/>
</searchpanel> </searchpanel>

View File

@@ -1,19 +1,20 @@
<odoo> <odoo>
<data> <data>
<!-- <record id="view_purchase_order_filter_superbar" model="ir.ui.view">--> <record id="view_purchase_order_filter_superbar" model="ir.ui.view">
<!-- <field name="name">request.quotation.select.superbar</field>--> <field name="name">request.quotation.select.superbar</field>
<!-- <field name="model">purchase.order</field>--> <field name="model">purchase.order</field>
<!-- <field name="inherit_id" ref="purchase.view_purchase_order_filter"/>--> <field name="inherit_id" ref="purchase.view_purchase_order_filter"/>
<!-- <field name="arch" type="xml">--> <field name="arch" type="xml">
<!-- <xpath expr="//search">--> <xpath expr="//search">
<!-- <searchpanel>--> <searchpanel>
<!-- <field name="company_id" groups="base.group_multi_company" icon="fa-building"/>--> <field name="company_id" groups="base.group_multi_company" icon="fa-building"/>
<!-- <field name="partner_id" select="multi"/>--> <field name="partner_id" select="multi"/>
<!-- <field name="state"/>--> <field name="state"/>
<!-- </searchpanel>--> </searchpanel>
<!-- </xpath>--> </xpath>
<!-- </field>--> </field>
<!-- </record>--> </record>
<record id="purchase_order_view_search_superbar" model="ir.ui.view"> <record id="purchase_order_view_search_superbar" model="ir.ui.view">
<field name="name">purchase.order.select.superbar</field> <field name="name">purchase.order.select.superbar</field>
<field name="model">purchase.order</field> <field name="model">purchase.order</field>
@@ -43,5 +44,21 @@
</xpath> </xpath>
</field> </field>
</record> </record>
<!-- report -->
<record id="view_purchase_order_search_superbar" model="ir.ui.view">
<field name="name">report.purchase.order.search.superbar</field>
<field name="model">purchase.report</field>
<field name="inherit_id" ref="purchase.view_purchase_order_search"/>
<field name="arch" type="xml">
<xpath expr="//search">
<searchpanel view_types="list,kanban,pivot,graph">
<field name="company_id" groups="base.group_multi_company" icon="fa-building"/>
<field name="partner_id" select="multi"/>
<field name="category_id" select="multi"/>
<field name="product_id"/>
</searchpanel>
</xpath>
</field>
</record>
</data> </data>
</odoo> </odoo>

View File

@@ -11,7 +11,7 @@
<field name="state"/> <field name="state"/>
<field name="invoice_status"/> <field name="invoice_status"/>
<field name="partner_id" filter_domain="[('customer_rank','&gt;', 0)]" limit="1000" enable_counters="1"/> <field name="partner_id" filter_domain="[('customer_rank','&gt;', 0)]" limit="1000" enable_counters="1"/>
<field name="team_id" enable_counters="1"/> <field name="team_id" enable_counters="1" select="multi"/>
<field name="company_id" groups="base.group_multi_company" icon="fa-building"/> <field name="company_id" groups="base.group_multi_company" icon="fa-building"/>
</searchpanel> </searchpanel>
</xpath> </xpath>
@@ -26,7 +26,7 @@
<xpath expr="//search"> <xpath expr="//search">
<searchpanel view_types="list,kanban,pivot,graph"> <searchpanel view_types="list,kanban,pivot,graph">
<field name="invoice_status"/> <field name="invoice_status"/>
<field name="team_id"/> <field name="team_id" enable_counters="1" select="multi"/>
<field name="partner_id" filter_domain="[('customer_rank','&gt;', 0)]" limit="1000"/> <field name="partner_id" filter_domain="[('customer_rank','&gt;', 0)]" limit="1000"/>
<field name="company_id" groups="base.group_multi_company" icon="fa-building"/> <field name="company_id" groups="base.group_multi_company" icon="fa-building"/>
</searchpanel> </searchpanel>

View File

@@ -17,7 +17,7 @@
{ {
'name': "Stock Superbar ztree, parent children tree", 'name': "Stock Superbar ztree, parent children tree",
'version': '16.22.12.06', 'version': '16.23.08.31',
'author': 'odooai.cn', 'author': 'odooai.cn',
'category': 'Base', 'category': 'Base',
'website': 'https://www.odooai.cn', 'website': 'https://www.odooai.cn',
@@ -48,8 +48,9 @@
'views/stock_picking_type_views.xml', 'views/stock_picking_type_views.xml',
'views/stock_warehouse_orderpoint_views.xml', 'views/stock_warehouse_orderpoint_views.xml',
'views/stock_rule_views.xml', 'views/stock_rule_views.xml',
'views/stock_location_route_views.xml', 'views/stock_lot_views.xml',
'views/stock_production_lot_views.xml', # todo: 以下两个模型调整了
# 'views/stock_location_route_views.xml',
], ],
'demo': [ 'demo': [
], ],

View File

@@ -1,18 +1,17 @@
<odoo> <odoo>
<data> <data>
<!-- stock orderpoint--> <!-- stock orderpoint-->
<record id="stock_location_route_view_search_superbar" model="ir.ui.view"> <!-- <record id="stock_location_route_view_search_superbar" model="ir.ui.view">-->
<field name="name">stock.location.route.search.superbar</field> <!-- <field name="name">stock.location.route.search.superbar</field>-->
<field name="model">stock.location.route</field> <!-- <field name="model">stock.location.route</field>-->
<field name="inherit_id" ref="stock.stock_location_route_view_search"/> <!-- <field name="inherit_id" ref="stock.stock_location_route_view_search"/>-->
<field name="groups_id" eval="[(4, ref('base.group_multi_company'))]"/> <!-- <field name="arch" type="xml">-->
<field name="arch" type="xml"> <!-- <xpath expr="//search">-->
<xpath expr="//search"> <!-- <searchpanel>-->
<searchpanel> <!-- <field name="company_id" groups="base.group_multi_company" icon="fa-building"/>-->
<field name="company_id" groups="base.group_multi_company" icon="fa-building"/> <!-- </searchpanel>-->
</searchpanel> <!-- </xpath>-->
</xpath> <!-- </field>-->
</field> <!-- </record>-->
</record>
</data> </data>
</odoo> </odoo>

View File

@@ -3,7 +3,7 @@
<!--批次--> <!--批次-->
<record id="search_product_lot_filter_superbar" model="ir.ui.view"> <record id="search_product_lot_filter_superbar" model="ir.ui.view">
<field name="name">Production Lots Filter superbar</field> <field name="name">Production Lots Filter superbar</field>
<field name="model">stock.production.lot</field> <field name="model">stock.lot</field>
<field name="inherit_id" ref="stock.search_product_lot_filter"/> <field name="inherit_id" ref="stock.search_product_lot_filter"/>
<field name="arch" type="xml"> <field name="arch" type="xml">
<xpath expr="//search"> <xpath expr="//search">
@@ -15,7 +15,7 @@
</record> </record>
<record id="stock.action_production_lot_form" model="ir.actions.act_window"> <record id="stock.action_production_lot_form" model="ir.actions.act_window">
<field name="context"/> <field name="context">{'display_complete': True, 'default_company_id': allowed_company_ids[0]}</field>
</record> </record>
</data> </data>
</odoo> </odoo>

View File

@@ -5,11 +5,11 @@
<field name="name">stock.picking.type.filter.superbar</field> <field name="name">stock.picking.type.filter.superbar</field>
<field name="model">stock.picking.type</field> <field name="model">stock.picking.type</field>
<field name="inherit_id" ref="stock.view_pickingtype_filter"/> <field name="inherit_id" ref="stock.view_pickingtype_filter"/>
<field name="groups_id" eval="[(4, ref('stock.group_stock_multi_warehouses'))]"/>
<field name="arch" type="xml"> <field name="arch" type="xml">
<xpath expr="//search"> <xpath expr="//search">
<searchpanel> <searchpanel>
<field name="warehouse_id" groups="stock.group_stock_multi_warehouses" enable_counters="1"/> <field name="code"/>
<field name="warehouse_id" groups="stock.group_stock_multi_warehouses"/>
</searchpanel> </searchpanel>
</xpath> </xpath>
</field> </field>