به علت شیوع کرونا شرکت سجادینه جلسات خود را به صورت مجازی و در وبسایت جیتسی برگزار میکند.
شرکت سجادینه شامل تیمهای مختلفیست و هر عضو این شرکت دقیقا در یک تیم عضو میباشد. برای مدیریت بهتر جلسات این شرکت میخواهیم وبسایتی طراحی کنیم تا هر عضو بتواند وارد تیم خود بشود و هر تیم یک لینک مخصوص در جیتسی داشته باشد.
از شما میخواهیم ویوهای این وبسایت را با توجه به ساختار پروژه برای ما طراحی کنید.
پروژه اولیه را از این لینک دانلود کنید. ساختار فایلهای این پروژه به صورت زیر است.
Team
🔗این مدل نشاندهندهی تیمها میباشد.
هر تیم شامل دو فیلد زیر میباشد:
name
: که از نوع CharField میباشد و نشاندهندهی نام تیم است.jitsi_url_path
: که از نوع CharField میباشد و نشاندهنده لینک اختصاصی جیتسی برای آن تیم میباشد.Account
🔗این مدل از مدل User
ارثبری میکند و دارای یک فیلد اضافه بر User
میباشد:
فیلد team
: که از نوع foreignkey میباشد و نشاندهندهی شیء تیم مربوط به این فرد میباشد.
SignUpForm
🔗از این فرم باید در قسمت ثبتنام افراد در سایت استفاده شود.
TeamForm
🔗از این فرم باید برای اضافه کردن یک تیم و یا اضافه شدن به یک تیم استفاده شود.
LoginForm
🔗از این فرم باید برای وارد شدن کاربر به سایت استفاده شود.
home
🔗به این ویو فقط میتوان ریکوئست Get
زد و این ویو برای این نوع ریکوئست باید نام تیم کاربر را نشان دهد.
اگر کاربری که به این ویو ریکوئست میزند دارای تیم بود، صفحهی home.html
را طوری نمایش دهید که در این صفحه، نام تیم این کاربر به نمایش دربیاید.
اگر کاربری که به این ویو ریکوئست میزند تیمی نداشت، صفحهی home.html
را طوری نمایش دهید که در این صفحه، کلمهی None
به نمایش دربیاید.
signup
🔗به این ویو میتوان دو نوع ریکوئست Get
و Post
زد و کار این ویو ثبتنام کردن کاربر در سایت میباشد.
اگر نوع ریکوئست کاربر Get
باشد؛ صفحهی signup.html
را طوری به کاربر نمایش دهید که در این صفحه فرم SignUpForm
برای کاربر به نمایش دربیاید.
اگر نوع ریکوئست کاربر Post
باشد؛ بعد از انجام اعتبارسنجی دادههای وارد شده در فرم، اگر فرم به درستی پر شده بود کاربر را در دیتابیس ذخیره کرده و در سایت login
کنید و کاربر را به آدرس team
بفرستید؛ اگر هم فرم اشتباه پر شده بود کاربر را دوباره به صفحه signup
بازگردانید.
login_account
🔗به این ویو میتوان دو نوع ریکوئست Get
و Post
زد و کار این ویو وارد کردن کاربر به سایت میباشد.
اگر نوع ریکوئست کاربر Get
باشد؛ صفحهی login.html
را طوری به او نمایش دهید که فرم LoginForm
به نمایش دربیاید.
اگر نوع ریکوئست کاربر Post
باشد؛ بعد از اعتبارسنجی فرم، اگر کاربر فرم را درست پر کرده بود، بررسی کنید که کاربری با اطلاعات پر شده وجود داشته باشد و اگر وجود داشت کاربر را login
کنید و او را به صفحهی home
بفرستید؛ در غیر این صورت او را دوباره به صفحهی login
بازگردانید.
logout_account
🔗به این ویو فقط میتوان ریکوئست Get
زد و کار این ویو خارج کردن کاربر از حساب کاربری خود میباشد.
اگر کاربر به این ویو ریکوئست Get
زد او را از حساب کاربری خود بیرون کنید و به صفحهی login
منتقل کنید.
joinoradd_team
🔗به این ویو میتوان دو نوع ریکوئست Get
و Post
زد.
اگر نوع ریکوئست کاربر Get
باشد؛ بررسی کنید کاربر در حال حاضر دارای تیم میباشد یا خیر.
اگر کاربر تیمی داشت او را به صفحهی home
منتقل کنید وگرنه او را طوری به صفحهی team.html
منتقل کنید که فرم TeamForm
به او نمایش داده شود.
اگر نوع ریکوئست کاربر Post
باشد؛ بعد از اعتبارسنجی فرم اگر کاربر فرم را درست پر کرده بود بررسی کنید اگر تیمی با این نام وجود داشت فیلد team
کاربر را برابر با این تیم قرار دهید؛ و اگر وجود نداشت یک تیم با این نام بسازید. فیلد jitsi_url_path
این تیم به صورت http://meet.jit.si/team_name
قرار گیرد که جای team_name
نام تیم قرار میگیرد. بعد از ساخت تیم فیلد team
کاربر را برابر با این تیم قرار دهید و کاربر را به صفحهی home
انتقال دهید.
اگر هم فرم درست پر نشده بود کاربر را به صفحه home
انتقال دهید.
exit_team
🔗به این ویو فقط میتوان ریکوئست Get
زد و کار این ویو خارج کردن کاربر از تیم حال حاضر آن میباشد.
اگر کاربر به این ویو ریکوئست Get
زد فیلد team
کاربر را برابر با None
قرار دهید و او را به صفحهی home
منتقل کنید. اگر هم کاربر از قبل تیمی نداشت صرفا او را به صفحهی home
منتقل کنید.
redirect
انجام دهید.یک فایل ZIP شامل پروژه جنگو خود آپلود کنید؛ توجه کنید که فقط میتوانید فایل account/views.py
را تغییر دهید.