snapshot of https://github.com/twentyhq/twenty.git (main, 2026-09-17; blobs > 131072B omitted)
Some checks failed
App Prod-Parity E2E Dispatch / dispatch (push) Failing after 10s
CD Storybook UI / build (push) Failing after 3m25s
CD Storybook UI / dispatch (push) Has been skipped
CD deploy main / website-changed-files (push) Successful in 18m8s
CI Agent Skills / changed-files-check (push) Successful in 18m9s
CI Create App E2E minimal / changed-files-check (push) Successful in 24s
CI Create App / changed-files-check (push) Successful in 26s
CI Docs / changed-files-check (push) Successful in 26s
CI Emails / changed-files-check (push) Successful in 28s
CI Example App Hello World / changed-files-check (push) Successful in 23s
CI Front / changed-files-check (push) Has been skipped
CI Example App Postcard / changed-files-check (push) Successful in 27s
CI UI / changed-files-check (push) Has been skipped
CI Utils Test / changed-files-check (push) Successful in 45s
CI Twenty Apps / discover (push) Successful in 1m3s
CD deploy main / deploy-main (push) Failing after 3s
CI Agent Skills / agent-skills-validate (push) Has been skipped
CI Create App / create-app-test (lint) (push) Has been skipped
CI Emails / emails-test (push) Has been skipped
CI Front / front-task (lingui:compile) (push) Has been skipped
CI Front / front-task (lint) (push) Has been skipped
CI Example App Postcard / example-app-postcard (push) Has been skipped
CI UI / ui-task (lint) (push) Has been skipped
CI UI / ui-task (pack-size) (push) Has been skipped
CI UI / ui-task (size) (push) Has been skipped
CI UI / ui-task (test) (push) Has been skipped
CI UI / ui-task (typecheck) (push) Has been skipped
CI Utils Test / utils-test (push) Has been skipped
CI Twenty Apps / ${{ matrix.app.name }} (push) Has been skipped
CI Emails / ci-emails-status-check (push) Successful in 2s
CI Example App Hello World / ci-example-app-hello-world-status-check (push) Successful in 2s
CI Example App Postcard / ci-example-app-postcard-status-check (push) Successful in 3s
CI UI / ui-sb-test (push) Has been skipped
CI Utils Test / ci-utils-test-status-check (push) Successful in 2s
CI Twenty Apps / ci-twenty-apps-status-check (push) Successful in 2s
CI UI / ci-ui-status-check (push) Successful in 2s
CI Desktop / desktop (push) Failing after 1m8s
Push docs to Crowdin / Push documentation to Crowdin (push) Failing after 55s
Push translations to Crowdin / Extract and upload translations (push) Failing after 5s
Push website translations to Crowdin / Extract and upload website translations (push) Failing after 5s
CI Create App / create-app-test (test) (push) Has been skipped
CI Create App / create-app-test (typecheck) (push) Has been skipped
CI Docs / docs-lint (push) Has been skipped
CI Example App Hello World / example-app-hello-world (push) Has been skipped
CI Front / front-task (lingui:extract) (push) Has been skipped
CI Front / front-task (test) (push) Has been skipped
CI Front / front-task (typecheck) (push) Has been skipped
CI UI / ui-sb-build (push) Failing after 1m32s
CI Twenty Apps / ${{ matrix.app.name }} (${{ matrix.server-source }}) (push) Has been skipped
CI Agent Skills / agent-skills-publish (push) Has been skipped
CI Create App / ci-create-app-status-check (push) Successful in 2s
CI Agent Skills / agent-skills-remote-source (push) Has been skipped
CI Create App E2E minimal / create-app-e2e-minimal (push) Has been cancelled
CI E2E Main / e2e-test (push) Has been cancelled
CI Front / front-sb-build (push) Has been cancelled
CI Front / front-build (push) Has been cancelled
CI Create App E2E minimal / ci-create-app-e2e-minimal-status-check (push) Has been cancelled
CI E2E Main / ci-e2e-main-status-check (push) Has been cancelled
CI E2E Main / notify-main-ci-failure (push) Has been cancelled
CI E2E Main / qa-scout-comment (push) Has been cancelled
CI Front / front-sb-test (push) Has been cancelled
CI Front / front-sb-screenshots (push) Has been cancelled
CI Front / ci-front-status-check (push) Has been cancelled
DPA Sub-Processor Sync / sync-subprocessors (push) Failing after 3s
AI Catalog Sync / sync-catalog (push) Failing after 2s

This commit is contained in:
upstream-mirror
2026-09-17 23:28:13 +05:00
commit e7da97194a
32688 changed files with 4208681 additions and 0 deletions

View File

@@ -0,0 +1,122 @@
---
title: الحقول
description: فهم دور الحقول وكيفية إدارتها.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## حول الحقول
الحقول مثل الأعمدة في جدول البيانات. تُخزّن أنواعًا مختلفة من البيانات مثل النصوص أو الأرقام أو التواريخ. يمكن أن تكون الحقول قياسية (مدمجة) أو مخصصة (التي تقوم بإنشائها).
### الحقول القياسية
الحقول القياسية تأتي مدمجة في Twenty للتعامل مع احتياجات الأعمال العامة.
على سبيل المثال، `الاسم الأول` و`الاسم الأخير` هما حقول قياسية في كائن `الأشخاص`. تخزن البيانات النصية للأسماء الفردية.
لا يمكنك حذف الحقول القياسية، ولكن يمكنك إلغاء تنشيطها إذا لم تكن بحاجة إليها.
يمكنك أيضًا تخصيص خيارات الحقول القياسية من نوع `SELECT`، على سبيل المثال خيارات `Stage` في الفرص.
<img src="/images/user-guide/fields/standard-fields.png" style={{width:'100%'}} />
### الحقول المخصصة
يمكن إضافة الحقول المخصصة إلى أي كائن. يمكنك تخزين النصوص أو الأرقام أو التواريخ أو الخيارات المنسدلة والمزيد. استخدم الحقول المخصصة لتتبع المعلومات الخاصة بأعمالك.
على سبيل المثال، الحقل المخصص لـ SpaceX يمكن أن يكون `حالة الصاروخ النشطة`، مما يشير إلى ما إذا كان الصاروخ يعمل.
<img src="/images/user-guide/fields/custom-fields.png" style={{width:'100%'}} />
## أنواع الحقول
يدعم Twenty أنواعًا متعددة من الحقول:
| النوع | الوصف | مثال |
| ----------------- | ----------------------------------------------------------------- | --------------------------- |
| العنوان | عنوان مُهيكل يتضمن الشارع، المدينة، الولاية، البلد، الرمز البريدي | عنوان المكتب |
| مصفوفة | قائمة بقيم نصية | الوسوم |
| قيمة منطقية | خانة اختيار صح/خطأ | نشط |
| العملة | قيمة نقدية مع رمز العملة | مبلغ الصفقة (USD) |
| تاريخ | قيم التاريخ | تاريخ الإغلاق |
| التاريخ والوقت | تاريخ مع الوقت | وقت الاجتماع |
| النطاق | نطاق موقع الويب (يُستخدم للشركات) | acme.com |
| البريد الإلكتروني | عناوين البريد الإلكتروني (مع الأساسي + الإضافي) | بريد جهة الاتصال الإلكتروني |
| JSON | بيانات JSON مُهيكلة | بيانات وصفية مخصصة |
| روابط | عناوين URL مع تسميات (أساسي + ثانوي) | موقع الويب، لينكدإن |
| نص طويل | نص متعدد الأسطر | الوصف، الملاحظات |
| التحديد المتعدد | خيارات متعددة من قائمة محددة مسبقًا | وسوم، فئات |
| رقم | قيم رقمية (صحيحة أو عشرية) | الكمية، الدرجة |
| هاتف | أرقام هواتف مع رمز البلد | هاتف العمل |
| تقييم | تقييم بالنجوم (1-5) | الأولوية، الدرجة |
| علاقة | روابط إلى السجلات في كائنات أخرى | الشركة → الأشخاص |
| اختيار | خيار واحد من قائمة محددة مسبقًا | المرحلة، الحالة |
| نص | سطر واحد من النص | الاسم، العنوان |
## إنشاء حقل مخصص
لإضافة حقل مخصص لأي كائن، اتبع هذه الخطوات:
1. اذهب إلى `الإعدادات` في الشريط الجانبي الأيسر.
2. اذهب إلى `نموذج البيانات`، ثم حدد الكائن الذي ترغب في تخصيصه.
3. تقدم من خلال النقر على `+ حقل جديد`.
4. اختر اسم الحقل والنوع الذي يناسب احتياجاتك. فكر في إضافة وصف للحقل لفهم أفضل.
أصبح الحقل الجديد الذي أنشأته الآن متاحًا ضمن حقول التطبيق. لعرضه في عرض محدد، انقر على قائمة الخيارات، ثم اختر `الحقول`.
<VimeoEmbed videoId="927628219" title="عرض توضيحي بالفيديو" />
**طريقة سريعة:** اضغط على زر **+** في أعلى يمين أي جدول كائن، ثم اختر `تخصيص الحقول`. سيأخذك هذا مباشرة إلى إعدادات نموذج البيانات.
<img src="/images/user-guide/fields/quick-new-field.png" style={{width:'100%'}} />
## إلغاء تنشيط حقل
يمكنك إلغاء تنشيط حقل لإخفائه من التطبيق دون فقدان بياناتك. اعتبره كإخفاء للحقل بدلاً من حذفه.
إليك كيفية القيام بذلك:
1. ابحث عن الحقل الذي تريد إلغاء تنشيطه في إعدادات الكائن الخاصة بك.
2. انقر على الثلاث نقاط `⋮` بجانب الحقل لفتح القائمة.
3. اختر `إلغاء التنشيط` من القائمة المنسدلة.
<img src="/images/user-guide/fields/deactivate-field.png" style={{width:'100%'}} />
ماذا يحدث عند إلغاء تنشيط حقل؟
1. **في التطبيق:** يختفي الحقل ولا يمكنك إضافة قيم جديدة إليه.
2. **العلاقات الموجودة:** إذا كان حقل علاقة، ستبقى الروابط القائمة ولكن لا يمكنك إنشاء روابط جديدة.
3. **الوصول عبر API:** لا يزال بإمكانك الوصول إلى الحقل وبياناته عبر API.
يمكنك إعادة تنشيط الحقول القياسية والمخصصة أو لديك خيار حذفها نهائيًا.
## جعل الحقول فريدة
اجعل الحقل فريدًا لضمان عدم إمكانية أن تحتوي السجلات المميزة على نفس القيمة. على سبيل المثال، عناوين البريد الإلكتروني فريدة لكل شخص.
إذا ظهرت لك رسالة خطأ عند تعيين خاصية التفرد، فتحقق من وجود قيم مكررة في بياناتك (بما في ذلك السجلات المحذوفة).
## الفهارس (متقدّم)
تُدار فهارس قاعدة البيانات تلقائيًا — ونادرًا ما تكون إضافة فهارسك الخاصة ضرورية، ومن السهل الوقوع في الأخطاء عند القيام بذلك. مع تفعيل الوضع المتقدّم، يكون لكل كائن قسم **Indexes** تحت `Settings → Data Model → <object>` للحالات التي تعلم فيها أنك بحاجة إلى فهرس.
## أفضل ممارسات تكوين الحقول
### اتفاقيات التسمية والقيود
* **يجب أن تكون الأسماء المفردة والجمع مختلفة**: يحتاج GraphQL API الخاص بنا إلى أسماء مميزة لعمليات التعديل
* **أسماء الحقول المحمية**: بعض الأسماء محجوزة للاستخدام الخاص بالنظام (مثل `Type`، `Application`)
### حقول العملة والهاتف
* **العملة الافتراضية**: يمكن تهيئتها عبر نموذج البيانات
* **أكواد الدول الافتراضية**: يمكن تهيئتها لحقول الهاتف عبر نموذج البيانات
### حقول الاختيار
* **يمكن اختيار خيار افتراضي** لكل حقل اختيار
### حقول نص السجلات
* **كل كائن لديه حقل عرض رئيسي واحد**: يظهر هذا الحقل في العمود الأول ويمثل السجل عند الربط بأشياء أخرى. يجب أن يكون حقل نصي. على سبيل المثال، يستخدم الأشخاص `الاسم` كحقل رئيسي، لذلك عندما تربط شخصًا بشركة، سترى اسمهم في عرض الشركة.

View File

@@ -0,0 +1,92 @@
---
title: كائنات
description: تعرّف على الكائنات القياسية والمخصصة في Twenty.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## الكائنات القياسية
الكائنات القياسية هي كيانات مُعرّفة مسبقًا في مساحة العمل الخاصة بك لمساعدتك في البدء. هي جزء من نموذج بيانات مشترك يمكن الوصول إليه بواسطة جميع مستخدمي Twenty. يمكنك استخدامها كما هي أو تخصيصها أو تعطيلها.
<img src="/images/user-guide/objects/standard-objects.png" style={{width:'100%'}} />
### الأشخاص
كائن "الأشخاص" يخزن جهات الاتصال الخاصة بك. يتضمن تفاصيل الاتصال وتاريخ التفاعل، مما يتيح لك رؤية جميع تفاعلات العملاء في مكان واحد.
### الشركات
كائن "الشركات" يخزن المعلومات المتعلقة بحسابات العمل الخاصة بك. يتضمن تفاصيل مثل الصناعة والحجم والموقع. الشركات تتصل بكائنات "الأشخاص" و "الفرص".
### الفرص
كائن "الفرص" يخزن البيانات المتعلقة بالصفقات. يتتبع تقدم المبيعات المحتملة من البداية إلى الإغلاق، مع تسجيل المراحل، أحجام الصفقات، الحساب المرتبط، وتاريخ الإغلاق المتوقع. يمكنك عرض مسار المبيعات الخاص بك في تخطيط كانبان.
### الملاحظات
يخزّن كائن `Notes` ملاحظات حرة يمكن إرفاقها بالأشخاص والشركات والفرص وسجلات أخرى. استخدم الملاحظات لالتقاط ملخصات الاجتماعات والتفاصيل المهمة أو أي معلومات سياقية.
### المهام
يخزّن كائن `Tasks` المهام المطلوب إنجازها وبنود العمل. يمكن ربط المهام بالأشخاص والشركات والفرص وسجلات أخرى. تتبّع تواريخ الاستحقاق والمكلّفين وحالة الإكمال للبقاء على اطّلاع بمتابعاتك.
## كائنات مخصصة
تتيح لك الكائنات المخصصة تخزين المعلومات الفريدة لمنظمتك والتي لا يمكن للكائنات القياسية التعامل معها. على سبيل المثال، إذا كنت SpaceX، قد ترغب في إنشاء كائن مخصص للصواريخ والإطلاقات.
<img src="/images/user-guide/objects/custom-objects.png" style={{width:'100%'}} />
### إنشاء كائن مخصص جديد
لإنشاء كائن مخصص جديد:
1. اذهب إلى الإعدادات في الشريط الجانبي الأيسر.
2. تحت مساحة العمل، انتقل إلى نموذج البيانات. هنا ستتمكن من رؤية نظرة عامة على جميع الكائنات المعيارية والمخصصة الموجودة (نشطة وغير مفعلة).
<VimeoEmbed videoId="926288174" title="عرض توضيحي بالفيديو" />
3. انقر على "+ كائن جديد" في الأعلى. أدخل الاسم (مفرد وجمع)، اختر أيقونة، أضف وصفًا للكائن المخصص واضغط حفظ (في الزاوية العليا اليمنى). باستخدام القائمة كمثال للكائن المخصص، سيكون المفرد هو "قائمة" والجمع "قوائم" مع الوصف كمثل "قوائم قام المضيفون بإنشائها لعرض ممتلكاتهم."
4. تم الآن إنشاء الكائن المخصص الخاص بك وسيظهر في الشريط الجانبي لديك. يمكنك البدء في إضافة السجلات إليه فورًا.
## إدارة الكائنات
### إلغاء تنشيط الكائنات
إذا لم تكن بحاجة إلى كائن قياسي أو مخصص:
1. انتقل إلى الإعدادات → نموذج البيانات
2. العثور على الكائن الذي تريد إلغاء تفعيله والنقر عليه
3. اذهب إلى تبويب **إعدادات** الكائن
4. انقر فوق زر "إلغاء التفعيل"
5. سيتم إخفاء الكائن من مساحة العمل لديك ولكن سيتم الاحتفاظ بالبيانات
### إعادة تنشيط الكائنات
لإعادة كائن تم إلغاء تنشيطه:
1. انتقل إلى الإعدادات → نموذج البيانات
2. تمكين فلتر "معطل"
3. ابحث عن الكائنات المعطلة (لديهم 'تعطيل' بجانب اسمه)
4. انقر على `⋮` ثم `Activate` لإعادة تنشيطه
5. سيتم استعادة الكائن وجميع بياناته
## أفضل الممارسات
### متى يجب إنشاء كائنات مخصصة
* **كيانات عمل فريدة**: أمور خاصة بمجالك أو بعملياتك
* **علاقات معقّدة**: عندما تحتاج إلى تتبّع الروابط بين عدة كيانات
* **بيانات قابلة للتوسّع**: عندما قد يكون لديك العديد من المثيلات لشيء ما
### متى تستخدم الحقول بدلًا من ذلك
* **سمات بسيطة**: خصائص تصف الكائنات الموجودة
* **فئات أو تسميات**: طرق لتصنيف السجلات الموجودة
* **قيم مفردة**: معلومات لا تحتاج إلى دورة حياة خاصة بها
### تسمية الكائنات
* **استخدم أسماء واضحة ووصفية**: اجعل ما يمثّله الكائن واضحًا
* **اتّبع الاصطلاحات**: استخدم المفرد لاسم الكائن، والجمع للمجموعة
* **ضع فريقك في الاعتبار**: اختر أسماء يفهمها الجميع

View File

@@ -0,0 +1,94 @@
---
title: حقول العلاقات
description: اربط السجلات عبر كائنات مختلفة باستخدام حقول العلاقة.
---
## أنواع العلاقات
### واحد-إلى-متعدد
يمكن ربط سجل واحد في الكائن A بالعديد من السجلات في الكائن B.
**مثال:** يمكن أن يكون لدى شركة واحدة العديد من الأشخاص (الموظفين).
### متعدد-إلى-واحد
يمكن ربط سجلات متعددة في الكائن A بسجل واحد في الكائن B.
**مثال:** يمكن أن ينتمي العديد من الأشخاص إلى شركة واحدة.
### العلاقات إلى أنواع كائنات متعددة
يمكن لبعض الكائنات الارتباط بأنواع كائنات متعددة على جانب واحد من العلاقة.
**مثال:** يمكن إرفاق ملاحظة بشخص واحد وشركة واحدة وفرصة واحدة في الوقت نفسه. الملاحظة على جانب "العديد"، وتتصل بعدة جوانب "الواحد".
<img src="/images/user-guide/fields/many-to-one-morph.png" style={{width:'100%'}} />
وبالمثل، يمكن لمشروع (على جانب "الواحد") أن يتلقى روابط من عدة أشخاص، وعدة شركات، وعدة ملاحظات.
<img src="/images/user-guide/fields/one-to-many-morph.png" style={{width:'100%'}} />
<Warning>
**قيد الاستيراد/التصدير**: العلاقات التي تشير إلى أنواع كائنات متعددة غير مدعومة بعد لاستيراد/تصدير CSV. هذا على خارطة الطريق لدينا.
</Warning>
### متعدد-إلى-متعدد
يمكن ربط سجلات متعددة في الكائن A بسجلات متعددة في الكائن B.
**مثال:** يمكن ربط العديد من الأشخاص بالعديد من المشاريع، والعكس صحيح.
تستخدم العلاقات من نوع متعدد إلى متعدد نمط **كائن ربط**: كائن وسيط يربط بين الجانبين. باستخدام ميزة علاقة الربط، تعرض Twenty السجلات المرتبطة النهائية مباشرةً، مع إخفاء الكائن الوسيط من واجهة المستخدم.
<Warning>
**ميزة بيتا**: يجب تمكين علاقات الباقة في **الإعدادات → مجتمع الميزات** قبل الاستخدام.
</Warning>
راجع [كيفية إنشاء علاقات متعدد-إلى-متعدد](/l/ar/user-guide/data-model/how-tos/create-many-to-many-relations) للحصول على دليل كامل خطوة بخطوة.
## إنشاء حقل علاقة
1. اذهب إلى **الإعدادات → نموذج البيانات**
2. حدد الكائن الذي تريد إضافة العلاقة إليه
3. انقر فوق **+ حقل جديد**
4. اختر **العلاقة** كنوع الحقل
5. اختر الكائن(ات) الهدف للربط بها
6. كوّن إعدادات العلاقة:
* **اسم الحقل على الكائن المصدر**: اسم حقل العلاقة على الكائن الذي تقوم بتحريره
* **اسم الحقل على كائن الوجهة**: اسم حقل العلاقة الذي سيظهر على الكائن الهدف
* نوع العلاقة (واحد-إلى-متعدد، متعدد-إلى-واحد)
7. انقر على **حفظ**
## العلاقات القياسية
تأتي Twenty بعلاقات مبنية مسبقًا بين الكائنات القياسية:
| من الكائن | إلى الكائن | نوع العلاقة |
| --------- | ---------- | -------------- |
| الأشخاص | الشركات | متعدد-إلى-واحد |
| الفرص | الشركات | متعدد-إلى-واحد |
| الفرص | الأشخاص | متعدد-إلى-واحد |
## أفضل الممارسات
### تخطيط العلاقات
* **ارسم خريطة نموذج البيانات**: خطط للعلاقات قبل إنشائها
* **ضع الاتجاه في الاعتبار**: فكّر في الكائن الذي "يمتلك" العلاقة
* **تجنّب الاعتماديات الدائرية**: حافظ على نظافة نموذج بياناتك
### تسمية العلاقات
* **استخدم أسماء واضحة**: اجعل ما تمثّله العلاقة واضحًا
* **كن متسقًا**: استخدم أنماط تسمية متشابهة عبر العلاقات
* **ضع كلا الجانبين في الاعتبار**: قم بتسمية كلا جانبي العلاقة بشكل مناسب
### الأداء
* **لا تفرط في إنشاء العلاقات**: كثرة العلاقات قد تبطئ مساحة عملك
## القيود
* **حذف العلاقات** يزيل الرابط لكنه لا يزيل السجلات المرتبطة
* **العلاقات الدائرية** ينبغي تجنبها للحفاظ على سلامة البيانات