برای آشنایی با قالب صورت سوال در Quera اینجا را مشاهده کنید و برای آشنایی با نحوه‌ی داوری پایتون و جنگو، اینجا را ببینید. برای کسب اطلاعات بیشتر درباره نحوه برگزاری مسابقه و پخش جوایز هم اینجا را ببینید.

دو سوال اول مسابقه مربوط به پایتون و دو سوال بعدی مسابقه مربوط به جنگو هستند. سوال آخر هم تاثیری در رتبه‌بندی و پخش جوایز ندارد اما حل آن برای حضور در مصاحبه حضوری شرکت تومن توصیه می‌شود.

غذا چطور بود؟


امروزه سایت‌های سفارش آنلاین غذا بسار زیاد و همه‌گیر شده‌اند، و مخصوصا شادی زیادی را برای ما برنامه نویس‌ها فراهم کرده‌اند. حالا یکی از این سایت‌ها تصمیم گرفته است برای بهتر کردن خدماتش و کمک به مشتری‌های سایت در انتخاب غذا، بخش کامنت را به سایتش اضافه کند تا کاربرانی که غذایی را سفارش می‌دهند بتوانند نظر خودشان را راجع به غذا بگویند تا کاربران بعدی بتوانند بهتر و راحت تر غذای خودشان را انتخاب کنند.

این سایت سفارش آنلاین آنقدر سرش گرم تحویل غذاها و رسیدگی به سفارش‌های مشتری‌هایش هست که وقت نمی‌کند این قابلیت را به سایتش اضافه کند و از شما می‌خواهد که در این کار کمکش کنید. سورس کد پروژه را می‌توانید از این‌جا دانلود کنید.

همانطور که مشاهده می‌کنید، در فایل models.py یک مدل به نام Food وجود دارد که شامل سه فیلد name، price و description است که به ترتیب نام، قیمت و توضیحات یک غذا را نشان می‌دهند.

همچنین یک فایل template نیز نوشته شده است که توسط view ی menu_view رندر شده و لیست همه غذاها را نشان می‌دهد. که این view با استفاده از آدرس (url) /menu صدا زده می‌شود.

شما باید در این صفحه بخش کامنت‌ها را به شکل زیر اضافه کنید:

  • زیر هر غذا لیست همه کامنت‌های آن غذا را با فرمت زیر نشان دهید:
    • برای هر کامنت نام کسی که کامنت را گذاشته است، تاریخ ثبت کامنت و متن کامنت باید چاپ شود.
    • برای مثال یک کامنت بدین شکل است. (فرمت تاریخ باید دقیقا به این شکل باشد. با گذاشتن تاریخ در template، تاریخ به همین شکل به نمایش در می‌آید.)
Aug. 21, 2017, 1:41 p.m. - amirhosein
    khyli khosh maze bood. mamooon :D
Plain text

نام و تاریخ لازم نیست حتما نسبت به هم بدین شکل باشند، یعنی می‌توانید نام و تاریخ را در سطرهای جدایی نمایش دهید یا ...

  • اگر کاربر لاگین نباشد نباید بتواند کامنتی بگذارد و بنابراین هیچ فرمی برای گذاشتن کامنت نباید نمایش یابد و به جای آن باید عبارت "Please log in to leave a comment." را در این صفحه نمایش دهید.
  • اگر کاربر لاگین باشد باید به ازای هر یک غذا در انتهای کامنت‌ها یک فرم برای گذاشتن کامنت در نظر بگیرید. یعنی اگر n غذا داریم، n فرم نیز باید در صفحه باشد.
    • این فرم‌ها فقط یک فیلد برای نوشتن کامنت و یک دکمه برای ثبت کامنت باید داشته باشند و می‌توانند چندین فیلد hidden دیگر نیز به اختیار خود داشته باشند.
    • نویسنده پیام user name کاربر فعلی است و تاریخ و ساعت لحظه سابمیت شدن فرم برای به عنوان تاریخ آن کامنت در نظر گرفته می‌شود.
    • وقتی یکی از فرم‌ها سابمیت شد بعد از ثبت شدن کامنت باید دوباره صفحه‌ی /menu‍ به نمایش درآید و کامنت ثبت شده در صفحه باشد.
    • در این لحظه بعد از ثبت کامنت یک پیام مبنی بر موفقیت آمیز بودن ثبت کامنت با متن "your comment successfully submitted." باید در صفحه به نمایش در بیاید که اگر صفحه دوباره refresh شود پیام نیز از صفحه حذف می‌شود.
    • فیلد کامنت در این فرم باید اجباری باشد و کسی نتواند کامنت با متن خالی بگذارد.

توجه کنید که اگر پاسخ شما تنها به بخشی از قسمت‌های سوال پاسخ دهد، همان بخش از نمره را نیز دریافت می‌کنید.

کتابخانه‌ی استفاده شده🔗

در این سوال شما برای انجام کارهای گفته شده ورژن 1.8.0 از کتابخانه django-contrib-comments را در اختیار دارید و باید از آن استفاده کنید. مستندات این کتابخانه در لینک زیر قابل مشاهده است:

Django comments

فایل آپلودی🔗

فایلی که باید آپلود کنید یک فایل zip. است که درون آن یک پوشه order_food وجود دارد که شامل دو فایل models.py و views.py است و همچنین یک فایل به نام menu.html که درون دایرکتوری order_food/templates/order_foodقرار دارد. توجه کنید در صورتی که فایل‌های اضافی ارسال کنید، حذف خواهند شد. ساختار فایل‌های ارسالی باید به شکل زیر باشد.

توجه کنید که شما باید تنها فایل menu.html را تغییر دهید.

<Your-zip-name>.zip
   └── order_food
       ├── models.py
       ├── templates
       │   └── order_food
       │       └── menu.html
       └── views.py
Plain text
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.