From efc62f41304bf4bd783018f6008f3472f4c4ad92 Mon Sep 17 00:00:00 2001 From: hernani Date: Sat, 8 May 2010 21:34:51 +0000 Subject: [PATCH] Send the ip with dummy actions. git-svn-id: http://svn.osqa.net/svnroot/osqa/trunk@183 0cfe37f9-358a-4d5e-be75-b63607b5c754 --- forum/actions/meta.py | 3 ++- forum/models/action.py | 3 +++ forum/settings/base.py | 4 ++-- forum/views/readers.py | 2 +- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/forum/actions/meta.py b/forum/actions/meta.py index 2117fb7..5063746 100644 --- a/forum/actions/meta.py +++ b/forum/actions/meta.py @@ -198,9 +198,10 @@ class DeleteAction(ActionProxy): class QuestionViewAction(DummyActionProxy): - def __init__(self, node, user): + def __init__(self, node, user, ip=None): self.viewuser = user self.node = node + super(QuestionViewAction, self).__init__(ip) def process_action(self): self.node.extra_count = F('extra_count') + 1 diff --git a/forum/models/action.py b/forum/models/action.py index 90c61f8..9a6f5ae 100644 --- a/forum/models/action.py +++ b/forum/models/action.py @@ -230,6 +230,9 @@ class DummyActionProxy(object): hooks = [] + def __init__(self, ip=None): + self.ip = ip + def process_data(self, **data): pass diff --git a/forum/settings/base.py b/forum/settings/base.py index db02b6c..f640a7c 100644 --- a/forum/settings/base.py +++ b/forum/settings/base.py @@ -82,8 +82,8 @@ class Setting(object): if deftype in Setting.emulators: emul = Setting.emulators[deftype] else: - emul = type(deftype.__name__ + cls.__name__, (BaseSetting,), {}) - emul.base_type = deftype + emul = type(deftype.__name__ + cls.__name__, (BaseSetting,), {'base_type': deftype}) + fns = [n for n, f in [(p, getattr(deftype, p)) for p in dir(deftype) if not p in dir(cls)] if callable(f)] for n in fns: diff --git a/forum/views/readers.py b/forum/views/readers.py index b199bea..11e7160 100644 --- a/forum/views/readers.py +++ b/forum/views/readers.py @@ -175,7 +175,7 @@ def update_question_view_times(request, question): last_seen = request.session['last_seen_in_question'].get(question.id,None) if (not last_seen) or last_seen < question.last_activity_at: - QuestionViewAction(question, request.user).save() + QuestionViewAction(question, request.user, ip=request.META['REMOTE_ADDR']).save() request.session['last_seen_in_question'][question.id] = datetime.datetime.now() request.session['last_seen_in_question'][question.id] = datetime.datetime.now() -- 2.39.5