Skip to content

Commit 160eaa5

Browse files
committed
update log + add migration scheme
1 parent e41ba91 commit 160eaa5

File tree

11 files changed

+102
-25
lines changed

11 files changed

+102
-25
lines changed

cdc.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ todo long run
1111
- flake8 compliant (pep8 + other stuff)
1212

1313
to do now
14-
- log : for each page, log : ip, date, page ??
1514
- https://docs.djangoproject.com/en/dev/ref/contrib/sitemaps/
1615
- previsualisation des posts
1716
- news / tuto / articles : export pdf (pandoc)

iTeam/settings.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# @Author: Adrien Chardon
44
# @Date: 2014-09-02 12:01:06
55
# @Last Modified by: Adrien Chardon
6-
# @Last Modified time: 2014-10-28 19:46:39
6+
# @Last Modified time: 2014-10-29 13:09:07
77

88
# This file is part of iTeam.org.
99
# Copyright (C) 2014 Adrien Chardon (Nodraak).
@@ -151,6 +151,7 @@
151151
'django.contrib.staticfiles',
152152

153153
'email_obfuscator',
154+
'south',
154155
)
155156

156157
MIDDLEWARE_CLASSES = (

iTeam/stats/admin.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# @Author: Adrien Chardon
44
# @Date: 2014-10-28 19:45:49
55
# @Last Modified by: Adrien Chardon
6-
# @Last Modified time: 2014-10-28 19:54:28
6+
# @Last Modified time: 2014-10-29 12:36:19
77

88
# This file is part of iTeam.org.
99
# Copyright (C) 2014 Adrien Chardon (Nodraak).
@@ -28,10 +28,10 @@
2828

2929
class LogAdmin(admin.ModelAdmin):
3030
# fields for ALL publications
31-
list_display = ('ip', 'date', 'url', 'method', 'referer')
31+
list_display = ('ip', 'date', 'url', 'method', 'referer', 'useragent')
3232

33-
list_filter = ['ip', 'date', 'url', 'method', 'referer']
34-
search_fields = ['ip', 'date', 'url', 'method', 'referer']
33+
list_filter = ['ip', 'date', 'method', 'referer', 'useragent']
34+
search_fields = ['ip', 'date', 'url', 'method', 'referer', 'useragent']
3535

3636

3737
admin.site.register(Log, LogAdmin)
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# -*- coding: utf-8 -*-
2+
from south.utils import datetime_utils as datetime
3+
from south.db import db
4+
from south.v2 import SchemaMigration
5+
from django.db import models
6+
7+
8+
class Migration(SchemaMigration):
9+
10+
def forwards(self, orm):
11+
# Adding model 'Log'
12+
db.create_table(u'stats_log', (
13+
(u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
14+
('ip', self.gf('django.db.models.fields.CharField')(default='-', max_length=256)),
15+
('date', self.gf('django.db.models.fields.DateTimeField')()),
16+
('url', self.gf('django.db.models.fields.CharField')(max_length=256)),
17+
('method', self.gf('django.db.models.fields.CharField')(default='-', max_length=256)),
18+
('referer', self.gf('django.db.models.fields.CharField')(default='-', max_length=256)),
19+
))
20+
db.send_create_signal(u'stats', ['Log'])
21+
22+
23+
def backwards(self, orm):
24+
# Deleting model 'Log'
25+
db.delete_table(u'stats_log')
26+
27+
28+
models = {
29+
u'stats.log': {
30+
'Meta': {'object_name': 'Log'},
31+
'date': ('django.db.models.fields.DateTimeField', [], {}),
32+
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
33+
'ip': ('django.db.models.fields.CharField', [], {'default': "'-'", 'max_length': '256'}),
34+
'method': ('django.db.models.fields.CharField', [], {'default': "'-'", 'max_length': '256'}),
35+
'referer': ('django.db.models.fields.CharField', [], {'default': "'-'", 'max_length': '256'}),
36+
'url': ('django.db.models.fields.CharField', [], {'max_length': '256'})
37+
}
38+
}
39+
40+
complete_apps = ['stats']
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# -*- coding: utf-8 -*-
2+
from south.utils import datetime_utils as datetime
3+
from south.db import db
4+
from south.v2 import SchemaMigration
5+
from django.db import models
6+
7+
8+
class Migration(SchemaMigration):
9+
10+
def forwards(self, orm):
11+
# Adding field 'Log.useragent'
12+
db.add_column(u'stats_log', 'useragent',
13+
self.gf('django.db.models.fields.CharField')(default='-', max_length=256),
14+
keep_default=False)
15+
16+
17+
def backwards(self, orm):
18+
# Deleting field 'Log.useragent'
19+
db.delete_column(u'stats_log', 'useragent')
20+
21+
22+
models = {
23+
u'stats.log': {
24+
'Meta': {'object_name': 'Log'},
25+
'date': ('django.db.models.fields.DateTimeField', [], {}),
26+
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
27+
'ip': ('django.db.models.fields.CharField', [], {'default': "'-'", 'max_length': '256'}),
28+
'method': ('django.db.models.fields.CharField', [], {'default': "'-'", 'max_length': '256'}),
29+
'referer': ('django.db.models.fields.CharField', [], {'default': "'-'", 'max_length': '256'}),
30+
'url': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
31+
'useragent': ('django.db.models.fields.CharField', [], {'default': "'-'", 'max_length': '256'})
32+
}
33+
}
34+
35+
complete_apps = ['stats']

iTeam/stats/migrations/__init__.py

Whitespace-only changes.

iTeam/stats/models.py

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# @Author: Adrien Chardon
44
# @Date: 2014-10-28 19:07:27
55
# @Last Modified by: Adrien Chardon
6-
# @Last Modified time: 2014-10-28 19:53:46
6+
# @Last Modified time: 2014-10-29 13:28:08
77

88
# This file is part of iTeam.org.
99
# Copyright (C) 2014 Adrien Chardon (Nodraak).
@@ -27,21 +27,27 @@
2727

2828

2929
class Log(models.Model):
30-
ip = models.CharField(max_length=256)
30+
ip = models.CharField(max_length=256, default='-')
3131
date = models.DateTimeField()
3232
url = models.CharField(max_length=256)
33-
method = models.CharField(max_length=256)
34-
referer = models.CharField(max_length=256)
33+
method = models.CharField(max_length=256, default='-')
34+
referer = models.CharField(max_length=256, default='-')
35+
useragent = models.CharField(max_length=256, default='-')
3536

3637
def set_attr(self, request):
37-
self.ip = request.META['REMOTE_ADDR']
3838
self.date = timezone.now()
3939
self.url = request.get_full_path()
40-
self.method = request.META['REQUEST_METHOD']
40+
41+
if 'REQUEST_METHOD' in request.META:
42+
self.method = request.META['REQUEST_METHOD']
43+
44+
if 'HTTP_USER_AGENT' in request.META:
45+
self.useragent = request.META['HTTP_USER_AGENT']
46+
47+
if 'HTTP_X_FORWARDED_FOR' in request.META:
48+
self.ip = request.META['HTTP_X_FORWARDED_FOR']
4149

4250
if 'HTTP_REFERER' in request.META:
4351
self.referer = request.META['HTTP_REFERER']
44-
else:
45-
self.referer = '-'
4652

4753
return self

prod/deploy.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ A lire :
8080
* munin http://sametmax.com/monitorez-vos-serveurs-avec-munin-et-notifications-par-email/
8181
* django cache https://docs.djangoproject.com/en/dev/topics/cache/
8282
* nginx + static + gzip : http://sametmax.com/servir-des-fichiers-statiques-avec-nginx/
83-
83+
* migrate http://www.djangopro.com/2011/01/django-database-migration-tool-south-explained/
8484

8585

8686

prod/deploy.sh

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,7 @@ sudo ln -s /etc/nginx/sites-available/iteam-maintenance /etc/nginx/sites-enabled
2020
sudo service nginx reload
2121

2222
# Retrieve prod branch
23-
git branch prod origin/prod
24-
git checkout prod
23+
git branch prod origin/prod # usefull ?
2524
# Delete old branch if exists
2625
git branch -D $1
2726
# Switch to new tag (Server has git < 1.9, git fetch --tags doesn't retrieve commits...)
@@ -39,7 +38,7 @@ python manage.py collectstatic --noinput
3938
# Update application data
4039
source ../bin/activate
4140
pip install --upgrade -r requirements.txt
42-
#python manage.py migrate
41+
python manage.py migrate
4342
deactivate
4443

4544
# Restart iteam
@@ -58,6 +57,6 @@ HEAD_HASH=$(git rev-parse HEAD)
5857
echo "$DEPLOYED_TAG" > git_version.txt
5958

6059
echo "Commit deployé :"
61-
echo "tag $DEPLOYED_TAG"
62-
echo "hash $DEPLOYED_HASH"
63-
echo "head $HEAD_HASH"
60+
echo "tag - $DEPLOYED_TAG"
61+
echo "hash - $DEPLOYED_HASH"
62+
echo "head - $HEAD_HASH"

prod/nginx.conf

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,6 @@ server {
5050
proxy_set_header X-Scheme $scheme;
5151

5252
proxy_pass http://localhost:8000/;
53-
54-
#proxy_set_header X-Forwarded-Host $server_name;
55-
#proxy_set_header X-Forwaded-For $proxy_add_x_forwarded_for;
56-
#proxy_set_header REMOTE_ADDR $remote_addr;
5753
}
5854

5955

0 commit comments

Comments
 (0)