تفاصيل تقنية: في تطبيقنا، نقوم دائمًا بتخزين التواريخ كـ “الطابع الزمني مع المنطقة الزمنية” (بوستجريس)، لذلك لا يمكن لأي إعداد قاعدة بيانات، ولا إعداد اتصال، التأثير على الطابع الزمني الفعلي المخزن. على الرغم من أن بوستجريس لا توصي بذلك، إلا أننا نفعل ذلك لأنه يمنح ضمانات 100٪ لصحة التاريخ في أي موقف وفي أي استعلام SQL. يمكنك العمل مع المناطق الزمنية للتاريخ والوقت مباشرة في بوستجريس باستخدام دوال التاريخ/الوقت/المنطقة الزمنية الخاصة بهم وكن متأكدًا من أنها ستعمل بشكل صحيح بنسبة 100٪ دائمًا. نحن نعتمد عليها.
ثم لدينا إعداد منطقة زمنية لجميع أنواع الكيانات التي تحتاجها: ملفات تعريف المستخدمين، الأسواق، القسائم، التقارير للمحاسبين، وما إلى ذلك - حتى نتمكن من ترجمة أي تواريخ إلى أي مناطق زمنية على الفور دون تردد.
النقاط الرئيسية هنا هي:
قم دائمًا بتخزين التاريخ والوقت مع المنطقة الزمنية.
قم دائمًا بتخزين تفضيل المنطقة الزمنية.
كن واضحًا جدًا بشأن التواريخ في واجهة المستخدم، ولا تفعل أي سحر.
دع المستخدم يرى التواريخ الفعلية بالمنطقة الزمنية المختارة قبل النقر على “حفظ”.
للتوضيح فقط، لا أعتقد أن هذه الحالة تعني حقًا أن الميزة لا تعمل مع إدراج التاريخ / الوقت — بل هو سير عمل مختلف.
يُستخدم إدراج التاريخ / الوقت عندما يكون لديك كتلة [calendar] في منشور البداية لموضوع ما، وتريد أن تظهر الردود المؤرخة على تقويم ذلك الموضوع المحدد.
أما إنشاء حدث، من ناحية أخرى، فينشئ حدث Discourse فعليًا ([event ...][/event]). تاريخ نهاية الأحداث المتكررة الذي تمت مناقشته في هذا الموضوع ينطبق على نظام تكرار الأحداث ذلك.
لذا، إذا كان هدفك هو الحفاظ على تقويم محلي لموضوع واحد، فإن سير العمل المعروض في لقطة الشاشة الأصلية هو الخيار المناسب؛ فهو ببساطة لا يستخدم ميزة التكرار المحدود نفسها التي يستخدمها الأحداث.
حالة الاستخدام هي الحفاظ على تقويم لمدرستي. هناك دائمًا مواعيد يجب إدخالها، وبالتالي يمكن لأي ولي أمر الرد على الموضوع لإضافة موعد جديد.
لكن بالأمس فقط، احتجت إلى إدخال موعد متكرر، وللأسف ليس لدينا هذه الخيار في هذا سير العمل. لذلك، يجب علي القيام بذلك يدويًا عن طريق الرد على الموضوع عدة مرات مع تاريخ جديد (لا أعرف إذا كان هناك طريقة ذكية لهذا الأمر…).
قد يكون هناك طريقة لأتمتة الردود اليدوية مع الحفاظ على سير عمل [calendar] المحلي للموضوع الحالي.
إحدى الاحتمالات هي استخدام مستخدم مخصص في Discourse مع تفعيل خاصية الرد عبر البريد الإلكتروني، ثم استخدام أداة مثل Power Automate أو Azure Logic App لتوليد الردود الفردية المؤرخة وإرسالها إلى موضوع التقويم عبر البريد الإلكتروني.
على سبيل المثال، يمكن للأتمتة توسيع موعد أسبوعي له تاريخ انتهاء إلى الردود الفردية المطلوبة، بحيث يرى الآباء والأمهات تقويمًا عاديًا واحدًا للموضوع بدلاً من مواضيع أحداث منفصلة.
هناك بعض التفاصيل حول مفاتيح الرد عبر البريد الإلكتروني لكل مستخدم في Discourse والتي يجب إعدادها بعناية، لذا ربما ليس هذا الموضوع هو المكان الأنسب لمناقشة عملية التهيئة.
إذا كانت هذه الطريقة مفيدة لك، فأنا سعيد بمساعدتك في العمل عليها في موضوع Meta منفصل.
لم يحدث هذا الأمر إلا مرة واحدة حتى الآن، لذا سأنتظر حتى المرة القادمة (وآمل ألّا يتكرر).
سأستمر في استخدام حيلة الرد عبر البريد الإلكتروني، شكرًا. لكن هل هذا يعني أنه في حال وجود حدث أسبوعي على مدار عام كامل، سنضطر إلى إنشاء 52 ردًا؟ سيجعل ذلك الموضوع صعب القراءة…
وبالإضافة إلى ذلك، وبما أنني أملك صلاحيات المسؤول، أعتقد أنني يمكنني أيضًا استخدام واجهة برمجة التطبيقات (API) لإضافة المواعيد يدويًا.
نعم - للأسف، ستقوم الواجهة البرمجية (API) بأتمتة إنشاء الردود، لكنها لن تحل فعلياً مشكلة الفوضى: فبالنسبة لتقويم الموضوعات، لا تزال عناصر التقويم الفردية ممثّلة بردود فردية.
لقد وجدت للتو طلب ميزة قائم يطابق تقريباً حالتك الاستخدام:
مثالهم هو دورة تدريبية تُعقد على مدار اثني عشر أربعاءً متتالياً، وهم يذكرون نفس النقطة: إنشاء كل ظهور على حدة أمرٌ مرهق ويسبب فوضى في الموضوع.
يقترحون السماح بالتكرار في إدراج التاريخ / الوقت مع تحديد تاريخ انتهاء للظهور الأخير، وهذا يبدو قريباً جداً مما تحتاجه.
لذلك، بدلاً من بناء حل بديل عبر API أو Power Automate يولّد 52 منشوراً، فإن طلب الميزة المذكور على الأرجح هو المكان الأفضل لإضافة حالة استخدام تقويم المدرسة الخاص بك.