Merge remote-tracking branch 'origin/master' into currency

* origin/master:
  remove the old media directory
  create the path /srv/media/images in the Vagrant vm
  create the media directory on the production server
  add pictures to the article details page
  move the media root and add support for MEDIA_URL
  readd two commands
This commit is contained in:
Ivan Hörler 2018-01-03 08:35:18 +01:00
commit 4f51e17504
8 changed files with 38 additions and 6 deletions

9
Vagrantfile vendored
View File

@ -32,6 +32,15 @@ Vagrant.configure("2") do |config|
libnss-mdns libapache2-mod-wsgi-py3 python3-mysqldb python3-pip libnss-mdns libapache2-mod-wsgi-py3 python3-mysqldb python3-pip
pip3 install django-extensions Pillow pyaml pip3 install django-extensions Pillow pyaml
#Copy the apache configuration for django to the correct place
cp /vagrant/apache/000-default.conf /etc/apache2/sites-available/
mkdir -p /srv/media/images
chmod -R 777 /srv/media
#restart the webserver
systemctl restart apache2.service
/vagrant/ansible/roles/web_AI-5/tasks/setup_script.sh /vagrant/ansible/roles/web_AI-5/tasks/setup_script.sh
SHELL SHELL

View File

@ -34,5 +34,13 @@
- name: Run the setup script to add some final touches - name: Run the setup script to add some final touches
shell: "/vagrant/ansible/roles/web_AI-5/tasks/setup_script.sh" shell: "/vagrant/ansible/roles/web_AI-5/tasks/setup_script.sh"
- name: Creates directory
file:
path: /srv/media
state: directory
owner: www-data
group: www-data
mode: 0755
- name: Restart apache service - name: Restart apache service
service: name=apache2 state=restarted service: name=apache2 state=restarted

View File

@ -13,7 +13,7 @@ WSGIPythonPath /vagrant/django/didgeridoo/
ServerAdmin webmaster@localhost ServerAdmin webmaster@localhost
Alias /media/ /vagrant/django/didgeridoo/media/ Alias /media/ /srv/media/
Alias /static/ /vagrant/django/didgeridoo/static/ Alias /static/ /vagrant/django/didgeridoo/static/
<Directory /vagrant/django/didgeridoo/didgeridoo> <Directory /vagrant/django/didgeridoo/didgeridoo>
@ -23,7 +23,7 @@ WSGIPythonPath /vagrant/django/didgeridoo/
</Directory> </Directory>
<Directory /vagrant/django/didgeridoo/media> <Directory /srv/media>
Require all granted Require all granted
</Directory> </Directory>

View File

@ -69,6 +69,7 @@ TEMPLATES = [
'django.template.context_processors.request', 'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth', 'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages', 'django.contrib.messages.context_processors.messages',
'django.template.context_processors.media'
], ],
}, },
}, },
@ -133,6 +134,8 @@ USE_TZ = True
STATIC_URL = '/static/' STATIC_URL = '/static/'
STATIC_ROOT = '/vagrant/django/didgeridoo/static/' STATIC_ROOT = '/vagrant/django/didgeridoo/static/'
MEDIA_ROOT = '/vagrant/django/didgeridoo/media/'
MEDIA_URL = '/media/'
MEDIA_ROOT = '/srv/media/'
LOGIN_REDIRECT_URL = '/' LOGIN_REDIRECT_URL = '/'

View File

@ -15,9 +15,11 @@ Including another URLconf
""" """
from django.conf.urls import include, url from django.conf.urls import include, url
from django.contrib import admin from django.contrib import admin
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [ urlpatterns = [
url(r'', include('webshop.urls')), url(r'', include('webshop.urls')),
url(r'', include('currencies.urls')), url(r'', include('currencies.urls')),
url(r'^admin/', admin.site.urls), url(r'^admin/', admin.site.urls),
] ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

View File

@ -6,4 +6,7 @@
<p><b>Stock:</b> {{ article.stock }}</p> <p><b>Stock:</b> {{ article.stock }}</p>
<p><b>Status:</b> {{ article.status}}</p> <p><b>Status:</b> {{ article.status}}</p>
<p><b>Price:</b> {{ article.price_in_chf }}</p> <p><b>Price:</b> {{ article.price_in_chf }}</p>
{% for picture in picture_list %}
<p><img src="{{ MEDIA_URL }}{{ picture.image }}" width="200" /></p>
{% endfor %}
{% endblock %} {% endblock %}

View File

@ -3,7 +3,12 @@ from django.shortcuts import get_object_or_404, render
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm from django.contrib.auth.forms import UserCreationForm
from webshop.models import Article, Category, ArticleStatus, Person, City from webshop.models import (Article,
Category,
ArticleStatus,
Person,
City,
Picture)
from webshop.forms import RegistrationForm from webshop.forms import RegistrationForm
# Create your views here. # Create your views here.
@ -36,8 +41,10 @@ def articles_in_category(request, category_id):
def article_details(request, article_id): def article_details(request, article_id):
article = get_object_or_404(Article, pk=article_id) article = get_object_or_404(Article, pk=article_id)
picture_list = Picture.objects.filter(article=article_id)
return render(request, 'webshop/article_details.html', return render(request, 'webshop/article_details.html',
{'article': article}) {'article': article,
'picture_list': picture_list})
@login_required @login_required