الحصول على (الأيام التي تم زيارتها) في تقرير قائمة المستخدمين بصيغة CSV

مرحباً،

هناك عمود (الأيام التي تمت زيارتها) نراه في الرابط:

https://LINK/admin/users/2/USERNAME

سيكون من الرائع لو أمكننا تضمين هذا العمود في ملف قائمة المستخدمين بصيغة CSV الذي يتم إنشاؤه من:
لوحة الإدارة => علامة التبويب مستخدمون => زر “تصدير”

3 إعجابات

ليس ما كنت تأمل في سماعه، لكن …

يحتوي ملف تصدير المستخدمين على حقول من جدول المستخدمين.
حقل “days_visited” هو من جدول إحصائيات المستخدمين.

سيكون الأمر “غير طبيعي” (anti-normalization) وجود نفس البيانات المتطابقة أكثر من مرة (على سبيل المثال، إذا كان الحقل موجودًا في كلا الجدولين). كما أتذكر، ما تراه هو نتائج استعلام JOIN يستخدم جدول المستخدمين، بالإضافة إلى جداول أخرى مرتبطة بالمستخدم.

ومع ذلك، ومع إضافة Data Explorer، يجب ألا تواجه أي مشكلة في تشغيل استعلام JOIN من هذا النوع الذي يولد ملف تصدير يتضمن ذلك الحقل.

3 إعجابات

ليست دقيقة تمامًا، حيث يتضمن ملف CSV الأعمدة likes_given و likes_received، وهي موجودة أيضًا في جدول user_stats نفسه:

--
-- Name: user_stats; Type: TABLE; Schema: public; Owner: discourse
--

CREATE TABLE public.user_stats (
    user_id integer NOT NULL,
    topics_entered integer DEFAULT 0 NOT NULL,
    time_read integer DEFAULT 0 NOT NULL,
    days_visited integer DEFAULT 0 NOT NULL,
    posts_read_count integer DEFAULT 0 NOT NULL,
    likes_given integer DEFAULT 0 NOT NULL,
    likes_received integer DEFAULT 0 NOT NULL,
    topic_reply_count integer DEFAULT 0 NOT NULL,
    new_since timestamp without time zone NOT NULL,
    read_faq timestamp without time zone,
    first_post_created_at timestamp without time zone,
    post_count integer DEFAULT 0 NOT NULL,
    topic_count integer DEFAULT 0 NOT NULL,
    bounce_score double precision DEFAULT 0 NOT NULL,
    reset_bounce_score_after timestamp without time zone
);

من ملف schema.sql

3 إعجابات

شكرًا لك، أنت محق تمامًا. يبدو أن هناك أكثر مما أتذكر أنني عملتُ به من قبل.

3 إعجابات

شكرًا لك على الإشارة إلى الملف ذي الصلة :smile:

بما أن topics_entered موجود بالفعل في دالة get_base_user_array تمامًا مثل الأعمدة الأخرى… فهل يبدو هذا وكأنه خطأ؟

إعجاب واحد (1)

هناك مجالات كنت مهتمًا بها لم تكن موجودة في التصدير (بحسب ما يقارب 1-2 سنة مضت). افترضت أن ذلك كان مقصودًا وليس خطأً، لكنني لم أتحقق من الأمر أكثر. أصبحت عملية التصدير متاحة فقط للمسؤولين، ومع عدم توفر بيانات حقيقية للعمل عليها، ازدادت الصعوبة وتضاءل الاهتمام، ثم أنهت بعض المواقف الواقعية الحاسمة ذلك المسار.

بدون النظر، التخمين الجريء هو أنه إذا لم يتم تغيير شيء في النواة الأساسية، يمكن لإضافة (plugin) أن تحصل بسهولة على القيم من الجداول وتضيفها إلى ملف التصدير بصيغة CSV. لكنني أعتقد أن إضافة مستكشف البيانات (Data Explorer) مرشح جيد لتصدير مخصص.

في الغالب، تحول اهتمامي الحالي من التلاعب بملفات النواة الأساسية الخاصة بالمسؤولين إلى تجميع نصوص برمجية مخصصة للمستخدمين (userscripts).

ربما، مع توافق آراء كافٍ، يمكن تعديل التصدير الحالي؟

3 إعجابات

لقد كتبت الاستعلام المطلوب لذلك:

SELECT
    u.username_lower AS "username",
    stats.days_visited
FROM users u
LEFT JOIN user_stats stats ON stats.user_id = u.id
ORDER BY u.id

ومع ذلك، فإن مثل هذه البيانات مفيدة فعليًا في تقرير قائمة المستخدمين للحصول على بعض الرؤى.

شكرًا لك @Mittineague :rose:

5 إعجابات