├── alpha
├── __init__.py
├── migrations
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── 0001_initial.pyc
│ └── 0001_initial.py
├── templates
│ └── alpha
│ │ ├── css
│ │ ├── style.css
│ │ └── bootstrap-theme.min.css
│ │ ├── js
│ │ ├── scripts.js
│ │ ├── bootstrap.min.js
│ │ └── jquery.min.js
│ │ ├── fonts
│ │ ├── glyphicons-halflings-regular.eot
│ │ ├── glyphicons-halflings-regular.ttf
│ │ ├── glyphicons-halflings-regular.woff
│ │ └── glyphicons-halflings-regular.woff2
│ │ ├── oldlogin.html
│ │ ├── messages.html
│ │ ├── test.html
│ │ ├── index.html
│ │ ├── login.html
│ │ └── home.html
├── tests.py
├── FB.pyc
├── Parse.pyc
├── admin.pyc
├── models.pyc
├── urls.pyc
├── views.pyc
├── __init__.pyc
├── admin.py
├── twitterSearch.pyc
├── models.py
├── qian
│ ├── twitter.py
│ ├── search.py
│ ├── instagramSearch.py
│ └── twitterSearch.py
├── urls.py
├── Parse.py
├── mo
│ ├── Parse.py
│ ├── FB2.py
│ └── FB.py
├── twitterSearch.py
├── FB.py
└── views.py
├── .idea
├── .name
├── vcs.xml
├── modules.xml
├── misc.xml
├── chat_app.iml
└── workspace.xml
├── chat_app
├── __init__.py
├── urls.pyc
├── wsgi.pyc
├── __init__.pyc
├── settings.pyc
├── qian
│ ├── twitter.py
│ ├── search.py
│ └── twitterSearch.py
├── wsgi.py
├── mo
│ ├── Parse.py
│ ├── FB2.py
│ └── FB.py
├── urls.py
└── settings.py
├── README.md
├── db.sqlite3
├── tempFile
└── db.sqlite3
├── static
├── chat.css
└── chat.js
├── manage.py
└── d
/alpha/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.idea/.name:
--------------------------------------------------------------------------------
1 | chat_app
--------------------------------------------------------------------------------
/chat_app/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/alpha/migrations/__init__.py:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | Hackathon Project
2 |
--------------------------------------------------------------------------------
/alpha/templates/alpha/css/style.css:
--------------------------------------------------------------------------------
1 | # Empty CSS file for your own CSS
--------------------------------------------------------------------------------
/alpha/templates/alpha/js/scripts.js:
--------------------------------------------------------------------------------
1 | // Empty JS for your own code to be here
--------------------------------------------------------------------------------
/alpha/tests.py:
--------------------------------------------------------------------------------
1 | from django.test import TestCase
2 |
3 | # Create your tests here.
4 |
--------------------------------------------------------------------------------
/db.sqlite3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MiniGunnR/django-jquery-chat-application/HEAD/db.sqlite3
--------------------------------------------------------------------------------
/alpha/FB.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MiniGunnR/django-jquery-chat-application/HEAD/alpha/FB.pyc
--------------------------------------------------------------------------------
/alpha/Parse.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MiniGunnR/django-jquery-chat-application/HEAD/alpha/Parse.pyc
--------------------------------------------------------------------------------
/alpha/admin.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MiniGunnR/django-jquery-chat-application/HEAD/alpha/admin.pyc
--------------------------------------------------------------------------------
/alpha/models.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MiniGunnR/django-jquery-chat-application/HEAD/alpha/models.pyc
--------------------------------------------------------------------------------
/alpha/urls.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MiniGunnR/django-jquery-chat-application/HEAD/alpha/urls.pyc
--------------------------------------------------------------------------------
/alpha/views.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MiniGunnR/django-jquery-chat-application/HEAD/alpha/views.pyc
--------------------------------------------------------------------------------
/alpha/__init__.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MiniGunnR/django-jquery-chat-application/HEAD/alpha/__init__.pyc
--------------------------------------------------------------------------------
/chat_app/urls.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MiniGunnR/django-jquery-chat-application/HEAD/chat_app/urls.pyc
--------------------------------------------------------------------------------
/chat_app/wsgi.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MiniGunnR/django-jquery-chat-application/HEAD/chat_app/wsgi.pyc
--------------------------------------------------------------------------------
/chat_app/__init__.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MiniGunnR/django-jquery-chat-application/HEAD/chat_app/__init__.pyc
--------------------------------------------------------------------------------
/chat_app/settings.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MiniGunnR/django-jquery-chat-application/HEAD/chat_app/settings.pyc
--------------------------------------------------------------------------------
/tempFile/db.sqlite3:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MiniGunnR/django-jquery-chat-application/HEAD/tempFile/db.sqlite3
--------------------------------------------------------------------------------
/alpha/admin.py:
--------------------------------------------------------------------------------
1 | from django.contrib import admin
2 | from .models import Chat
3 |
4 | admin.site.register(Chat)
5 |
6 |
--------------------------------------------------------------------------------
/alpha/twitterSearch.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MiniGunnR/django-jquery-chat-application/HEAD/alpha/twitterSearch.pyc
--------------------------------------------------------------------------------
/alpha/migrations/__init__.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MiniGunnR/django-jquery-chat-application/HEAD/alpha/migrations/__init__.pyc
--------------------------------------------------------------------------------
/alpha/migrations/0001_initial.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MiniGunnR/django-jquery-chat-application/HEAD/alpha/migrations/0001_initial.pyc
--------------------------------------------------------------------------------
/static/chat.css:
--------------------------------------------------------------------------------
1 | #chat-bottom {
2 | position: fixed;
3 | bottom: 10px;
4 | }
5 |
6 | .panel-body {
7 | overflow-y: scroll;
8 | height: 85%;
9 | }
10 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/alpha/templates/alpha/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MiniGunnR/django-jquery-chat-application/HEAD/alpha/templates/alpha/fonts/glyphicons-halflings-regular.eot
--------------------------------------------------------------------------------
/alpha/templates/alpha/fonts/glyphicons-halflings-regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MiniGunnR/django-jquery-chat-application/HEAD/alpha/templates/alpha/fonts/glyphicons-halflings-regular.ttf
--------------------------------------------------------------------------------
/alpha/templates/alpha/fonts/glyphicons-halflings-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MiniGunnR/django-jquery-chat-application/HEAD/alpha/templates/alpha/fonts/glyphicons-halflings-regular.woff
--------------------------------------------------------------------------------
/alpha/templates/alpha/fonts/glyphicons-halflings-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MiniGunnR/django-jquery-chat-application/HEAD/alpha/templates/alpha/fonts/glyphicons-halflings-regular.woff2
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/manage.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | import os
3 | import sys
4 |
5 | if __name__ == "__main__":
6 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "chat_app.settings")
7 |
8 | from django.core.management import execute_from_command_line
9 |
10 | execute_from_command_line(sys.argv)
11 |
--------------------------------------------------------------------------------
/alpha/models.py:
--------------------------------------------------------------------------------
1 | from django.db import models
2 | from django.contrib.auth.models import User
3 |
4 | class Chat(models.Model):
5 | created = models.DateTimeField(auto_now_add=True)
6 | user = models.ForeignKey(User)
7 | message = models.TextField()
8 |
9 | def __unicode__(self):
10 | return self.message
11 |
12 |
--------------------------------------------------------------------------------
/alpha/qian/twitter.py:
--------------------------------------------------------------------------------
1 | import tweepy
2 |
3 | auth = tweepy.OAuthHandler('FkTGiMwC31vAyBfUpJz6Fufwl', 'vvxlbyfW76QJNgVWO6rJ26BYoOzYPqehLlamefLFBzSHQVJUJf')
4 | auth.set_access_token('1965122641-9PQ8264p3RDbY4K1nxXDDV8bB3BVHtBGT1D80Pp', 'JbcQxTUBwwaommlDcNNMcqedKl0fLlFHxtfNBUkMp9NRc')
5 |
6 | api = tweepy.API(auth)
7 |
8 | public_users = api.search_users("QIAN")
9 | for users in public_users:
10 | print users.name
11 | print users.location
12 | print "\n"
13 |
--------------------------------------------------------------------------------
/chat_app/qian/twitter.py:
--------------------------------------------------------------------------------
1 | import tweepy
2 |
3 | auth = tweepy.OAuthHandler('FkTGiMwC31vAyBfUpJz6Fufwl', 'vvxlbyfW76QJNgVWO6rJ26BYoOzYPqehLlamefLFBzSHQVJUJf')
4 | auth.set_access_token('1965122641-9PQ8264p3RDbY4K1nxXDDV8bB3BVHtBGT1D80Pp', 'JbcQxTUBwwaommlDcNNMcqedKl0fLlFHxtfNBUkMp9NRc')
5 |
6 | api = tweepy.API(auth)
7 |
8 | public_users = api.search_users("QIAN")
9 | for users in public_users:
10 | print users.name
11 | print users.location
12 | print "\n"
13 |
--------------------------------------------------------------------------------
/chat_app/wsgi.py:
--------------------------------------------------------------------------------
1 | """
2 | WSGI config for chat_app project.
3 |
4 | It exposes the WSGI callable as a module-level variable named ``application``.
5 |
6 | For more information on this file, see
7 | https://docs.djangoproject.com/en/1.8/howto/deployment/wsgi/
8 | """
9 |
10 | import os
11 |
12 | from django.core.wsgi import get_wsgi_application
13 |
14 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "chat_app.settings")
15 |
16 | application = get_wsgi_application()
17 |
--------------------------------------------------------------------------------
/alpha/qian/search.py:
--------------------------------------------------------------------------------
1 | class search(object):
2 |
3 | def _int_ (self):
4 | self.str_name = ""
5 |
6 | def convertToName(self, str):
7 | str = str.upper()
8 | str = str.strip()
9 | if (str[0:10] == 'FIND NAME:'):
10 | self.str_name = str[10:]
11 | self.str_name = self.str_name.strip()
12 | return self.str_name
13 | else:
14 | return 'Please input target name with \'Find Name:\''
15 |
16 |
17 | a = search()
18 | print a.convertToName("fInd naMe: Qian Zhang")
19 |
--------------------------------------------------------------------------------
/chat_app/qian/search.py:
--------------------------------------------------------------------------------
1 | class search(object):
2 |
3 | def _int_ (self):
4 | self.str_name = ""
5 |
6 | def convertToName(self, str):
7 | str = str.upper()
8 | str = str.strip()
9 | if (str[0:10] == 'FIND NAME:'):
10 | self.str_name = str[10:]
11 | self.str_name = self.str_name.strip()
12 | return self.str_name
13 | else:
14 | return 'Please input target name with \'Find Name:\''
15 |
16 |
17 | a = search()
18 | print a.convertToName("fInd naMe: Qian Zhang")
19 |
--------------------------------------------------------------------------------
/alpha/urls.py:
--------------------------------------------------------------------------------
1 | from django.conf.urls import url
2 | from django.contrib import admin
3 | from . import views
4 |
5 | urlpatterns = [
6 | url(r'^$', views.Login, name='login'),
7 | #url(r'^admin/', admin.site.urls),
8 | url(r'^login/$', views.Login, name='login'),
9 | url(r'^logout/$', views.Logout, name='logout'),
10 | url(r'^home/$', views.Home, name='home'),
11 | url(r'^post/$', views.Post, name='post'),
12 | url(r'^messages/$', views.Messages, name='messages'),
13 |
14 | url(r'^test/$', views.test, name='test'),
15 | ]
16 |
17 | def __unicode__(self):
18 | return self.message
--------------------------------------------------------------------------------
/alpha/qian/instagramSearch.py:
--------------------------------------------------------------------------------
1 | from instagram.client import InstagramAPI
2 | class instagramSearch(object):
3 |
4 | def _init_(self):
5 | self.public_users = []
6 | def instagram(self, nameIn = None):
7 | if(nameIn == None):
8 | raise ValueError('TwitterSearch.instagram: name is necessary')
9 | access_token = "2941460406.4011edb.8d81ba564aa340aca6d77b690e16b415"
10 | client_secret = "27f2a6304afe420fa5d12123648a65c9"
11 | api = InstagramAPI(access_token=access_token, client_secret=client_secret)
12 | result = api.user_search(nameIn)
13 | return result
14 |
15 | a = instagramSearch()
16 | print a.instagram("Qian")
17 | print a.instagram("Tom")
18 |
--------------------------------------------------------------------------------
/alpha/Parse.py:
--------------------------------------------------------------------------------
1 | import re
2 | class Parse(object):
3 | def __init__(self):
4 | self.mode=[0,0,0]
5 |
6 | def outputString(self,inputstring):
7 | if not isinstance(inputstring,str):
8 | raise Exception("Format error")
9 | inputstring = inputstring.lower()
10 | if inputstring.find("facebook")>=0:
11 | self.mode[0] = 1
12 | inputstring=inputstring.replace("facebook","")
13 | if inputstring.find("twitter")>=0:
14 | self.mode[1] = 1
15 | inputstring=inputstring.replace("twitter","")
16 | for i in range(200):
17 | print inputstring
18 | if re.search("\s*\d+\s*",inputstring):
19 | self.mode[2] = 1
20 | outputString = inputstring.strip()
21 | return (self.mode,outputString)
--------------------------------------------------------------------------------
/chat_app/mo/Parse.py:
--------------------------------------------------------------------------------
1 | import re
2 | class Parse(object):
3 | def __init__(self):
4 | self.mode=[0,0,0]
5 |
6 | def outputString(self,inputstring):
7 | if not isinstance(inputstring,str):
8 | raise Exception("Format error")
9 | inputstring = inputstring.lower()
10 | if inputstring.find("facebook")>=0:
11 | self.mode[0] = 1
12 | inputstring=inputstring.replace("facebook","")
13 | if inputstring.find("twitter")>=0:
14 | self.mode[1] = 1
15 | inputstring=inputstring.replace("twitter","")
16 | for i in range(200):
17 | print inputstring
18 | if re.search("\s*\d+\s*",inputstring):
19 | self.mode[2] = 1
20 | outputString = inputstring.strip()
21 | return (self.mode,outputString)
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/alpha/mo/Parse.py:
--------------------------------------------------------------------------------
1 | class Parse(object):
2 | def __init__(self):
3 | self.mode=[0,0,0]
4 |
5 | def outputString(self,inputstring):
6 | if not isinstance(inputstring,str):
7 | raise Exception("Format error")
8 | inputstring = inputstring.lower()
9 | if inputstring.find("facebook")>=0:
10 | self.mode[0] = 1
11 | inputstring=inputstring.replace("facebook","")
12 | if inputstring.find("twitter")>=0:
13 | self.mode[1] = 1
14 | inputstring=inputstring.replace("twitter","")
15 | if inputstring.find("instagram")>=0:
16 | self.mode[2] = 1
17 | inputstring=inputstring.replace("instagram","")
18 |
19 | outputString = inputstring.strip()
20 | return (self.mode,outputString)
21 |
22 | test = Parse()
23 | print test.outputString("hello world facebook twitter")
24 |
--------------------------------------------------------------------------------
/alpha/templates/alpha/oldlogin.html:
--------------------------------------------------------------------------------
1 |
2 | Chat Panel
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/alpha/twitterSearch.py:
--------------------------------------------------------------------------------
1 | import tweepy
2 | class twitterSearch(object):
3 |
4 |
5 |
6 | def _init_(self):
7 | self.public_users = []
8 |
9 | def searchName(self, nameIn=None):
10 | if(nameIn == None):
11 | raise ValueError("TwitterSearch.searchName: name is necessary")
12 | auth = tweepy.OAuthHandler('FkTGiMwC31vAyBfUpJz6Fufwl', 'vvxlbyfW76QJNgVWO6rJ26BYoOzYPqehLlamefLFBzSHQVJUJf')
13 | auth.set_access_token('1965122641-9PQ8264p3RDbY4K1nxXDDV8bB3BVHtBGT1D80Pp', 'JbcQxTUBwwaommlDcNNMcqedKl0fLlFHxtfNBUkMp9NRc')
14 |
15 | api = tweepy.API(auth)
16 | self.useruserInfo = "Name found in Twitter: \n"
17 | self.public_users = api.search_users(nameIn)
18 | result=[]
19 | for users in self.public_users:
20 | result.append([users.id_str, users.name, users.location])
21 | return result
22 |
23 |
24 |
--------------------------------------------------------------------------------
/alpha/qian/twitterSearch.py:
--------------------------------------------------------------------------------
1 | import tweepy
2 | class twitterSearch(object):
3 |
4 |
5 |
6 | def _init_(self):
7 | self.public_users = []
8 |
9 | def searchName(self, nameIn=None):
10 | if(nameIn == None):
11 | raise ValueError("TwitterSearch.searchName: name is necessary")
12 | auth = tweepy.OAuthHandler('FkTGiMwC31vAyBfUpJz6Fufwl', 'vvxlbyfW76QJNgVWO6rJ26BYoOzYPqehLlamefLFBzSHQVJUJf')
13 | auth.set_access_token('1965122641-9PQ8264p3RDbY4K1nxXDDV8bB3BVHtBGT1D80Pp', 'JbcQxTUBwwaommlDcNNMcqedKl0fLlFHxtfNBUkMp9NRc')
14 |
15 | api = tweepy.API(auth)
16 | self.useruserInfo = "Name found in Twitter: \n"
17 | self.public_users = api.search_users(nameIn)
18 | result=[]
19 | for users in self.public_users:
20 | result.append([users.id_str, users.name, users.location])
21 | return result
22 |
23 |
24 |
--------------------------------------------------------------------------------
/chat_app/qian/twitterSearch.py:
--------------------------------------------------------------------------------
1 | import tweepy
2 | class twitterSearch(object):
3 |
4 |
5 |
6 | def _init_(self):
7 | self.public_users = []
8 |
9 | def searchName(self, nameIn=None):
10 | if(nameIn == None):
11 | raise ValueError("TwitterSearch.searchName: name is necessary")
12 | auth = tweepy.OAuthHandler('FkTGiMwC31vAyBfUpJz6Fufwl', 'vvxlbyfW76QJNgVWO6rJ26BYoOzYPqehLlamefLFBzSHQVJUJf')
13 | auth.set_access_token('1965122641-9PQ8264p3RDbY4K1nxXDDV8bB3BVHtBGT1D80Pp', 'JbcQxTUBwwaommlDcNNMcqedKl0fLlFHxtfNBUkMp9NRc')
14 |
15 | api = tweepy.API(auth)
16 | self.useruserInfo = "Name found in Twitter: \n"
17 | self.public_users = api.search_users(nameIn)
18 | result=[]
19 | for users in self.public_users:
20 | result.append([users.id_str, users.name, users.location])
21 | return result
22 |
23 |
24 |
--------------------------------------------------------------------------------
/alpha/migrations/0001_initial.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | from __future__ import unicode_literals
3 |
4 | from django.db import models, migrations
5 | from django.conf import settings
6 |
7 |
8 | class Migration(migrations.Migration):
9 |
10 | dependencies = [
11 | migrations.swappable_dependency(settings.AUTH_USER_MODEL),
12 | ]
13 |
14 | operations = [
15 | migrations.CreateModel(
16 | name='Chat',
17 | fields=[
18 | ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
19 | ('created', models.DateTimeField(auto_now_add=True)),
20 | ('message', models.CharField(max_length=200)),
21 | ('user', models.ForeignKey(to=settings.AUTH_USER_MODEL)),
22 | ],
23 | ),
24 | ]
25 |
--------------------------------------------------------------------------------
/.idea/chat_app.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/alpha/templates/alpha/messages.html:
--------------------------------------------------------------------------------
1 |
10 | {% for obj in chat %}
11 | {%if obj.user.username == "Robot"%}
12 | {{ obj.message }}
13 | {%elif obj.user == request.user and obj.user.username != "Robot"%}
14 | {{ obj.message }}
15 | {%else%}
16 | {{ obj.message }}
17 |
18 | {%endif%}
19 | {% empty %}
20 | No messages yet!
21 | {% endfor %}
--------------------------------------------------------------------------------
/chat_app/urls.py:
--------------------------------------------------------------------------------
1 | """chat_app URL Configuration
2 |
3 | The `urlpatterns` list routes URLs to views. For more information please see:
4 | https://docs.djangoproject.com/en/1.8/topics/http/urls/
5 | Examples:
6 | Function views
7 | 1. Add an import: from my_app import views
8 | 2. Add a URL to urlpatterns: url(r'^$', views.home, name='home')
9 | Class-based views
10 | 1. Add an import: from other_app.views import Home
11 | 2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home')
12 | Including another URLconf
13 | 1. Add an import: from blog import urls as blog_urls
14 | 2. Add a URL to urlpatterns: url(r'^blog/', include(blog_urls))
15 | """
16 | from django.conf.urls import include, url
17 | from django.contrib import admin
18 | #from my_app import views
19 | admin.autodiscover()
20 | urlpatterns = [
21 | url(r'^admin/', include(admin.site.urls)),
22 | url(r'^', include('alpha.urls')),
23 | #url(r'^$', views.Login, name='login'),
24 | ]
25 | # def __unicode__(self):
26 | # return self.message
--------------------------------------------------------------------------------
/alpha/templates/alpha/test.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Hello MonkeyBomb
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 | {% csrf_token %}
15 |
16 |
17 |
44 |
45 |
46 |
47 |
48 |