├── recommend ├── __init__.py ├── migrations │ ├── __init__.py │ ├── 0008_remove_movie_watch.py │ ├── 0010_remove_movie_watch.py │ ├── 0006_remove_movie_watch.py │ ├── 0007_movie_watch.py │ ├── 0009_movie_watch.py │ ├── 0011_movie_watch.py │ ├── 0004_auto_20200609_1150.py │ ├── 0012_auto_20200611_2138.py │ ├── 0003_auto_20200609_1119.py │ ├── 0001_initial.py │ ├── 0005_auto_20200609_1606.py │ ├── 0013_auto_20200611_2207.py │ └── 0002_myrating.py ├── tests.py ├── apps.py ├── admin.py ├── forms.py ├── templates │ └── recommend │ │ ├── form_template.html │ │ ├── watch.html │ │ ├── recommend.html │ │ ├── signUp.html │ │ ├── list.html │ │ ├── login.html │ │ ├── detail.html │ │ └── base.html ├── urls.py ├── models.py ├── static │ └── recommend │ │ ├── css │ │ └── base.css │ │ └── js │ │ ├── bootstrap.min.js │ │ └── jquery.min.js └── views.py ├── movie_recommender ├── __init__.py ├── aws │ ├── __init__.py │ ├── utils.py │ └── conf.py ├── asgi.py ├── wsgi.py ├── urls.py └── settings.py ├── Procfile ├── .gitignore ├── db.sqlite3 ├── media ├── Up.jpg ├── Coco.jpg ├── Avatar.jpg ├── WALL-E.jpg ├── drive.jpg ├── frozen.jpg ├── gravity.jpg ├── joker.jpg ├── memento.jpg ├── oldboy.jpg ├── Die_Hard.jpg ├── Gladiator.jpg ├── Inception.jpg ├── Toy_Story.jpg ├── gone_girl.jpg ├── parasite.jpg ├── 12_angry_men.jpg ├── Forrest_Gump.jpg ├── Home_Alone.jpg ├── Inside_Out.jpg ├── Pulp_Fiction.jpg ├── Se7en_1995.jpg ├── The_Avengers.jpg ├── fight_club.jpg ├── interstellar.jpg ├── the_pianist.jpg ├── Bad_Boys_1995.jpg ├── Batman_Begins.jpg ├── The_Godfather.jpg ├── The_Lion_king.jpg ├── casino_royale.jpg ├── shutter_island.jpg ├── 12_years_a_slave.jpg ├── A_Beautiful_Mind.jpg ├── Avengers-Endgame.jpg ├── Dark_Night_Rises.jpg ├── Django_Unchained.jpg ├── Schindlers_list.jpg ├── The_Truman_Show.jpg ├── good_will_hunting.jpg ├── Back_To_The_Future.jpg ├── Avengers_Infinity_War.jpg ├── The_Godfather_jyZtLj1.jpg ├── The_Shawshank_Redemption.jpg ├── guardians_of_the_galaxy.jpg ├── the_wolf_of_wall_street.jpg ├── Ace_Ventura__When_Nature_Calls_1995.jpg └── Ace_Ventura__When_Nature_Calls_1995_dTtTsOx.jpg ├── requirements.txt ├── website_images ├── HomePage.png └── DetailPage.png ├── manage.py ├── LICENSE └── Readme.md /recommend/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /movie_recommender/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /movie_recommender/aws/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /recommend/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Procfile: -------------------------------------------------------------------------------- 1 | web: gunicorn movie_recommender.wsgi --log-file - 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | recommend/algorithm/ 3 | settings.json 4 | *.pyc -------------------------------------------------------------------------------- /db.sqlite3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/db.sqlite3 -------------------------------------------------------------------------------- /media/Up.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/Up.jpg -------------------------------------------------------------------------------- /media/Coco.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/Coco.jpg -------------------------------------------------------------------------------- /recommend/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /media/Avatar.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/Avatar.jpg -------------------------------------------------------------------------------- /media/WALL-E.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/WALL-E.jpg -------------------------------------------------------------------------------- /media/drive.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/drive.jpg -------------------------------------------------------------------------------- /media/frozen.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/frozen.jpg -------------------------------------------------------------------------------- /media/gravity.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/gravity.jpg -------------------------------------------------------------------------------- /media/joker.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/joker.jpg -------------------------------------------------------------------------------- /media/memento.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/memento.jpg -------------------------------------------------------------------------------- /media/oldboy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/oldboy.jpg -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/requirements.txt -------------------------------------------------------------------------------- /media/Die_Hard.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/Die_Hard.jpg -------------------------------------------------------------------------------- /media/Gladiator.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/Gladiator.jpg -------------------------------------------------------------------------------- /media/Inception.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/Inception.jpg -------------------------------------------------------------------------------- /media/Toy_Story.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/Toy_Story.jpg -------------------------------------------------------------------------------- /media/gone_girl.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/gone_girl.jpg -------------------------------------------------------------------------------- /media/parasite.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/parasite.jpg -------------------------------------------------------------------------------- /media/12_angry_men.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/12_angry_men.jpg -------------------------------------------------------------------------------- /media/Forrest_Gump.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/Forrest_Gump.jpg -------------------------------------------------------------------------------- /media/Home_Alone.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/Home_Alone.jpg -------------------------------------------------------------------------------- /media/Inside_Out.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/Inside_Out.jpg -------------------------------------------------------------------------------- /media/Pulp_Fiction.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/Pulp_Fiction.jpg -------------------------------------------------------------------------------- /media/Se7en_1995.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/Se7en_1995.jpg -------------------------------------------------------------------------------- /media/The_Avengers.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/The_Avengers.jpg -------------------------------------------------------------------------------- /media/fight_club.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/fight_club.jpg -------------------------------------------------------------------------------- /media/interstellar.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/interstellar.jpg -------------------------------------------------------------------------------- /media/the_pianist.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/the_pianist.jpg -------------------------------------------------------------------------------- /media/Bad_Boys_1995.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/Bad_Boys_1995.jpg -------------------------------------------------------------------------------- /media/Batman_Begins.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/Batman_Begins.jpg -------------------------------------------------------------------------------- /media/The_Godfather.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/The_Godfather.jpg -------------------------------------------------------------------------------- /media/The_Lion_king.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/The_Lion_king.jpg -------------------------------------------------------------------------------- /media/casino_royale.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/casino_royale.jpg -------------------------------------------------------------------------------- /media/shutter_island.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/shutter_island.jpg -------------------------------------------------------------------------------- /media/12_years_a_slave.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/12_years_a_slave.jpg -------------------------------------------------------------------------------- /media/A_Beautiful_Mind.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/A_Beautiful_Mind.jpg -------------------------------------------------------------------------------- /media/Avengers-Endgame.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/Avengers-Endgame.jpg -------------------------------------------------------------------------------- /media/Dark_Night_Rises.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/Dark_Night_Rises.jpg -------------------------------------------------------------------------------- /media/Django_Unchained.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/Django_Unchained.jpg -------------------------------------------------------------------------------- /media/Schindlers_list.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/Schindlers_list.jpg -------------------------------------------------------------------------------- /media/The_Truman_Show.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/The_Truman_Show.jpg -------------------------------------------------------------------------------- /media/good_will_hunting.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/good_will_hunting.jpg -------------------------------------------------------------------------------- /website_images/HomePage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/website_images/HomePage.png -------------------------------------------------------------------------------- /media/Back_To_The_Future.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/Back_To_The_Future.jpg -------------------------------------------------------------------------------- /website_images/DetailPage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/website_images/DetailPage.png -------------------------------------------------------------------------------- /media/Avengers_Infinity_War.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/Avengers_Infinity_War.jpg -------------------------------------------------------------------------------- /media/The_Godfather_jyZtLj1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/The_Godfather_jyZtLj1.jpg -------------------------------------------------------------------------------- /media/The_Shawshank_Redemption.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/The_Shawshank_Redemption.jpg -------------------------------------------------------------------------------- /media/guardians_of_the_galaxy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/guardians_of_the_galaxy.jpg -------------------------------------------------------------------------------- /media/the_wolf_of_wall_street.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/the_wolf_of_wall_street.jpg -------------------------------------------------------------------------------- /recommend/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class RecommendConfig(AppConfig): 5 | name = 'recommend' 6 | -------------------------------------------------------------------------------- /media/Ace_Ventura__When_Nature_Calls_1995.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/Ace_Ventura__When_Nature_Calls_1995.jpg -------------------------------------------------------------------------------- /movie_recommender/aws/utils.py: -------------------------------------------------------------------------------- 1 | from storages.backends.s3boto3 import S3Boto3Storage 2 | 3 | MediaRootS3BotoStorage = lambda: S3Boto3Storage(location='media') -------------------------------------------------------------------------------- /media/Ace_Ventura__When_Nature_Calls_1995_dTtTsOx.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rajaprerak/movie_recommender/HEAD/media/Ace_Ventura__When_Nature_Calls_1995_dTtTsOx.jpg -------------------------------------------------------------------------------- /recommend/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | from .models import Movie, Myrating, MyList 3 | 4 | # Register your models here. 5 | admin.site.register(Movie) 6 | admin.site.register(Myrating) 7 | admin.site.register(MyList) -------------------------------------------------------------------------------- /recommend/forms.py: -------------------------------------------------------------------------------- 1 | from django.contrib.auth.models import User 2 | from django import forms 3 | from .models import * 4 | 5 | 6 | class UserForm(forms.ModelForm): 7 | password = forms.CharField(widget=forms.PasswordInput) 8 | 9 | class Meta: 10 | model = User 11 | fields = ['username', 'email', 'password'] 12 | 13 | -------------------------------------------------------------------------------- /recommend/templates/recommend/form_template.html: -------------------------------------------------------------------------------- 1 | {% for field in form %} 2 |
{{ error_message }}
13 | {% endif %} 14 | 23 |
27 |
28 |
29 | Movie List
30 |
31 |
{{ error_message }}
14 | {% endif %} 15 | 39 |
12 |
13 | #### Detail Page
14 |
15 |
16 | ----
17 |
18 | ## Installation 📦
19 |
20 | >pip install -r requirements.txt
21 |
22 | #### Clone
23 |
24 | - Clone this repo to your local machine.
25 |
26 | #### Run server locally
27 |
28 | ```shell
29 | $ python manage.py runserver
30 | ```
31 | > Go to localhost:8000
32 |
33 | ---
34 | ## Features 📋
35 | * User can register and login.
36 | * User can search through various movies and look through its details.
37 | * User can give rating to the movies.
38 | * User can add movie to their watch list.
39 | * User can get movie recommendation (Recommendation algorithm (Collaborative Filtering) which suggests new movies based on the ratings given by user.)
40 | ---
41 |
42 | ## Algorithm
43 | ##### Collabortive Filtering (Recommender Algorithm)
44 | * Collaborative filtering filters information by using the interactions and data collected by the system from other users. It's based on the idea that people who agreed in their evaluation of certain items are likely to agree again in the future.
45 | * When we want to find a new movie to watch we'll often ask our friends for recommendations. Naturally, we have greater trust in the recommendations from friends who share tastes similar to our own.
46 | * Collaborative-filtering systems focus on the relationship between users and items. The similarity of items is determined by the similarity of the ratings of those items by the users who have rated both items.
47 | * There are two types of collaborative filtering
48 | * **User-based**, which measures the similarity between target users and other users.
49 | * **Item-based**, which measures the similarity between the items that target users rate or interact with and other items.
50 | > I have used **user based** collaborative filtering in this project.
51 |
52 |
53 | ---
54 |
55 | ## Contributing 💡
56 |
57 |
58 | #### Step 1
59 |
60 | - **Option 1**
61 | - 🍴 Fork this repo!
62 |
63 | - **Option 2**
64 | - 👯 Clone this repo to your local machine.
65 |
66 |
67 | #### Step 2
68 |
69 | - **Build your code** 🔨🔨🔨
70 |
71 | #### Step 3
72 |
73 | - 🔃 Create a new pull request.
74 |
75 | ## Team ✨
76 |
77 | | **Prerak Raja**
78 | | :---: |
79 | | [](https://rajaprerak.github.io)
80 | | `github.com/rajaprerak`
81 |
82 |
83 | ## License
84 | [](http://badges.mit-license.org)
85 |
86 | - **[MIT license](http://opensource.org/licenses/mit-license.php)**
87 |
88 |
89 |
--------------------------------------------------------------------------------
/movie_recommender/settings.py:
--------------------------------------------------------------------------------
1 | """
2 | Django settings for movie_recommender project.
3 |
4 | Generated by 'django-admin startproject' using Django 3.0.6.
5 |
6 | For more information on this file, see
7 | https://docs.djangoproject.com/en/3.0/topics/settings/
8 |
9 | For the full list of settings and their values, see
10 | https://docs.djangoproject.com/en/3.0/ref/settings/
11 | """
12 |
13 | import os
14 | # from movie_recommender.aws.conf import *
15 | # Build paths inside the project like this: os.path.join(BASE_DIR, ...)
16 | BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
17 |
18 |
19 | # Quick-start development settings - unsuitable for production
20 | # See https://docs.djangoproject.com/en/3.0/howto/deployment/checklist/
21 |
22 | # SECURITY WARNING: keep the secret key used in production secret!
23 | SECRET_KEY = '40_$n*hs61m(shf^y0q6&th7i^b!t1rw6k-458_0)ed34ji73v'
24 |
25 | # SECURITY WARNING: don't run with debug turned on in production!
26 | DEBUG = True
27 | ALLOWED_HOSTS = ['awesome-movie-recommender.herokuapp.com', '127.0.0.1']
28 |
29 | # Application definition
30 |
31 | INSTALLED_APPS = [
32 | 'django.contrib.admin',
33 | 'django.contrib.auth',
34 | 'django.contrib.contenttypes',
35 | 'django.contrib.sessions',
36 | 'django.contrib.messages',
37 | 'django.contrib.staticfiles',
38 | 'storages',
39 | 'recommend'
40 | ]
41 |
42 | MIDDLEWARE = [
43 | 'django.middleware.security.SecurityMiddleware',
44 | 'whitenoise.middleware.WhiteNoiseMiddleware',
45 | 'django.contrib.sessions.middleware.SessionMiddleware',
46 | 'django.middleware.common.CommonMiddleware',
47 | 'django.middleware.csrf.CsrfViewMiddleware',
48 | 'django.contrib.auth.middleware.AuthenticationMiddleware',
49 | 'django.contrib.messages.middleware.MessageMiddleware',
50 | 'django.middleware.clickjacking.XFrameOptionsMiddleware',
51 | ]
52 |
53 | ROOT_URLCONF = 'movie_recommender.urls'
54 |
55 | TEMPLATES = [
56 | {
57 | 'BACKEND': 'django.template.backends.django.DjangoTemplates',
58 | 'DIRS': [],
59 | 'APP_DIRS': True,
60 | 'OPTIONS': {
61 | 'context_processors': [
62 | 'django.template.context_processors.debug',
63 | 'django.template.context_processors.request',
64 | 'django.contrib.auth.context_processors.auth',
65 | 'django.contrib.messages.context_processors.messages',
66 | ],
67 | },
68 | },
69 | ]
70 |
71 | WSGI_APPLICATION = 'movie_recommender.wsgi.application'
72 |
73 |
74 | # Database
75 | # https://docs.djangoproject.com/en/3.0/ref/settings/#databases
76 |
77 | DATABASES = {
78 | 'default': {
79 | 'ENGINE': 'django.db.backends.sqlite3',
80 | 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
81 | }
82 | }
83 |
84 |
85 | # Password validation
86 | # https://docs.djangoproject.com/en/3.0/ref/settings/#auth-password-validators
87 |
88 | AUTH_PASSWORD_VALIDATORS = [
89 | {
90 | 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
91 | },
92 | {
93 | 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
94 | },
95 | {
96 | 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
97 | },
98 | {
99 | 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
100 | },
101 | ]
102 |
103 |
104 | # Internationalization
105 | # https://docs.djangoproject.com/en/3.0/topics/i18n/
106 |
107 | LANGUAGE_CODE = 'en-us'
108 |
109 | TIME_ZONE = 'UTC'
110 |
111 | USE_I18N = True
112 |
113 | USE_L10N = True
114 |
115 | USE_TZ = True
116 |
117 |
118 | # Static files (CSS, JavaScript, Images)
119 | # https://docs.djangoproject.com/en/3.0/howto/static-files/
120 |
121 | STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles/')
122 | STATIC_URL = '/static/'
123 | STATICFILES_DIRS = ([
124 | os.path.join(BASE_DIR, "static"),
125 | ])
126 | # STATICFILES_DIRS = ()
127 |
128 | MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
129 | MEDIA_URL = '/media/'
130 |
131 |
--------------------------------------------------------------------------------
/recommend/templates/recommend/detail.html:
--------------------------------------------------------------------------------
1 | {% extends 'recommend/base.html'%}
2 | {% block title %}{{movies.title}}{% endblock %}
3 |
4 | {% block body %}
5 | {% if messages %}
6 |
13 | {% endif %}
14 |
15 |