Skip to content

Commit

Permalink
[Feature #110549282] Codebase cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
Issa Jubril committed Jan 19, 2016
1 parent 1113ae2 commit 75de642
Show file tree
Hide file tree
Showing 10 changed files with 106 additions and 38 deletions.
3 changes: 1 addition & 2 deletions djangogram/djangogram/settings/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,7 @@
SOCIAL_AUTH_FACEBOOK_KEY = os.getenv('FACEBOOK_AUTH_KEY')
SOCIAL_AUTH_FACEBOOK_SECRET = os.getenv('FACEBOOK_SECRET_KEY')


SOCIAL_AUTH_LOGIN_REDIRECT_URL = '/home/'
SOCIAL_AUTH_LOGIN_URL = '/'

Expand Down Expand Up @@ -174,6 +175,4 @@

MEDIA_URL = '/media/'



MAX_IMAGE_SIZE = 10485760
3 changes: 2 additions & 1 deletion djangogram/djangogram/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@
url(r'^$', views.IndexView.as_view(), name='index'),
url(r'^logout/$', logout, {'next_page': '/'}),
url(r'^home/$', views.HomeView.as_view(), name='home'),
url(r'^effect/$', views.EffectView.as_view()),
url(r'^effect/$', views.EffectView.as_view(), name='effects'),
url(r'^delete/$', views.DeleteView.as_view(), name='delete'),
url(r'^media/(?P<path>.*)$', 'django.views.static.serve', {
'document_root': settings.MEDIA_ROOT,
})
Expand Down
12 changes: 4 additions & 8 deletions djangogram/photoeditor/effects.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,12 @@ def blur(cls):
def deform(cls):
return ImageOps.deform(cls.image, deformer=deformer)

@classmethod
def solarize(cls):
return ImageOps.solarize(cls.image)

@classmethod
def greyscale(cls):
# original_image = Image.open(image)
return ImageOps.grayscale(cls.image)

@classmethod
Expand All @@ -43,20 +46,13 @@ def mirror(cls):

@classmethod
def brighten(cls):
# original_image = Image.open(image)
enhancer = ImageEnhance.Brightness(cls.image)
return enhancer.enhance(1.5)

@classmethod
def flip(cls):
# original_image = Image.open(image)
return ImageOps.flip(cls.image)

@classmethod
def solarize(cls):
# original_image = Image.open(image)
return ImageOps.solarize(cls.image)

@classmethod
def g_apply(cls, effect_name):
effect = photo_effects.get(effect_name)
Expand Down
13 changes: 13 additions & 0 deletions djangogram/photoeditor/models.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
from __future__ import unicode_literals

import os
from time import time
from django.contrib.auth.models import User
from django.db import models
from django.db.models.signals import post_delete
from django.dispatch import receiver


def get_upload_file_name(instance, filename):
Expand All @@ -23,3 +27,12 @@ class UserProfile(models.Model):
social_id = models.CharField(max_length=100, blank=True)
user = models.OneToOneField(User)
profile_pics = models.TextField()


@receiver(post_delete, sender=Photo)
def delete_image(sender, instance, **kwargs):

image_path = instance.image.path

if os.path.exists(image_path):
os.remove(image_path)
4 changes: 2 additions & 2 deletions djangogram/photoeditor/templates/photoeditor/canvas.html
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,9 @@

<ul class="nav navbar-nav navbar-right">
<li><img src="{{ profile.profile_pics }}" alt="{{ request.user.username }}'s + profile pics"
class="img-circle img-responsive"></li>
class="img-circle img-responsive" id="profile-img"></li>
<li><a href="#">Logged in as {{ request.user.get_full_name }}</a></li>
<li><a href="/logout">logout</a></li>
<li><a href="/logout">Logout</a></li>


</ul>
Expand Down
14 changes: 0 additions & 14 deletions djangogram/photoeditor/tests/test_authentication.py

This file was deleted.

40 changes: 38 additions & 2 deletions djangogram/photoeditor/tests/test_djangogram.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import os
from io import BytesIO
import mock

Expand All @@ -10,15 +11,15 @@
from django.core.files import File

from photoeditor.models import UserProfile, Photo
from photoeditor.views import HomeView, EffectView
from photoeditor.views import HomeView, EffectView, DeleteView
from photoeditor.forms import PhotoForm


def create_dummy_image():
file = BytesIO()
image = Image.new('RGBA', size=(50, 50), color=(155, 0, 0))
image.save(file, 'png')
file.name = 'test.png'
file.name = 'test_image.png'
file.seek(0)
return file

Expand All @@ -40,6 +41,8 @@ def setUp(self):
self.login = self.client.login(username='itest', password='awesome')
self.file = create_dummy_image()

self.photo = Photo.objects.create(image=self.file.name, user=self.user)

def test_user_can_reach_index_page(self):
url = reverse("index")
# import pdb; pdb.set_trace()
Expand Down Expand Up @@ -72,3 +75,36 @@ def test_file_was_uploaded(self):
response = HomeView.as_view()(request)
self.assertEquals(response.status_code, 200)

@mock.patch('photoeditor.models.Photo.objects.get')
@mock.patch.object(Image, 'open')
@mock.patch('ntpath.basename', return_value='open')
def test_effect_was_applied(self, mock_file, mock_image, mock_path):
request = self.factory.post(
'/effect/', {
'image_id': self.photo.id,
'effect_name': 'blur'
}
)
request.user = self.user
response = EffectView.as_view()(request)
self.assertEqual(response.status_code, 200)

@mock.patch("photoeditor.models.Photo.objects.get")
@mock.patch("os.path.exists", return_value=True)
@mock.patch("os.remove")
def test_can_delete_image(self, mock_get, mock_path, mock_remove):
request = self.factory.post(
'/delete/', {
'path': self.photo.image.path,
'image_id': 1
}
)

request.user = self.user

response = DeleteView.as_view()(request)
self.assertEqual(response.status_code, 200)

self.assertTrue(Photo.objects.get)

self.assertTrue(os.remove)
12 changes: 12 additions & 0 deletions djangogram/photoeditor/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ class EffectView(View):
def post(self, request, *args, **kwargs):
effect_name = request.POST['effect_name']
imageid = request.POST['image_id']
# import pdb; pdb.set_trace()

image_to_filter = Photo.objects.get(id=imageid).image.path
if effect_name == 'reset':
Expand All @@ -85,3 +86,14 @@ def post(self, request, *args, **kwargs):
'status': 'success',
'applied_effect': new_photo_path
}, status=200)


class DeleteView(View):
def post(self, request, *args, **kwargs):
image_id = request.POST['image_id']
photo = Photo.objects.get(id=image_id)
photo.delete()

return JsonResponse({
'status': 'deleted',
}, status=200)
9 changes: 9 additions & 0 deletions djangogram/static/css/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@ h1 {
margin: 10px 0 0 0;
}

.navbar{
box-shadow: 4px 4px 5px rgba(0,0,0,0.1);
}
canvas {
margin: 10px 0;
width: 100%;
Expand Down Expand Up @@ -151,6 +154,7 @@ body, .page-container, .main-container {
}
#upload{
height: 70px;
margin-top: 40px;
}

.logo{
Expand All @@ -164,4 +168,9 @@ body, .page-container, .main-container {
height: 50px;
width: 200px;
line-height: 35px;
}

#profile-img{
height: 30px;
margin-top: 10px;
}
34 changes: 25 additions & 9 deletions djangogram/static/js/script.js
Original file line number Diff line number Diff line change
Expand Up @@ -44,19 +44,35 @@ var apply_effects = function (image_id) {
});
};

var savebtn = $('#savebtn');
var saveImage = function(){
savebtn.click(function () {
var image_to_be_saved = $('img').attr('src');
console.log(image_to_be_saved);
})
};
//var savebtn = $('#savebtn');
//var saveImage = function () {
// savebtn.click(function () {
// var image_to_be_saved = $('img').attr('src');
// console.log(image_to_be_saved);
// })
//};

var deletebtn = $('#delete');
var deleteImage = function () {
deletebtn.click(function () {
var image_to_be_deleted = $("#img").attr("src");
console.log(image_to_be_deleted);
var image_id = $("#img").data('id');
console.log(image_id);
$.ajax({
url: '/delete/',
type: "POST",
data: {
image_id: image_id
},
success: function () {
window.location.reload()

},
error: function () {

}
})
});
};

Expand Down Expand Up @@ -197,7 +213,7 @@ $(document).ready(function () {
var image_to_be_edited = $(this).find('img').attr('src');
var image_id = $(this).find('img').data('id');
$('#img-effect').find('img').attr('src', image_to_be_edited + "?" + new Date().getTime());
//$('#img-effect').find('img').attr('src', image_to_be_edited + "?" + new Date().getTime());
$('#img-effect').find('img').attr('data-id', image_id);
$('#savebtn').attr('href', image_to_be_edited);

apply_effects(image_id);
Expand All @@ -206,5 +222,5 @@ $(document).ready(function () {
initUploadPlugin();
facebook.init();
deleteImage();
saveImage();
//saveImage();
});

0 comments on commit 75de642

Please sign in to comment.