From bff32abff469690c249af3b4f1cbb6905bd70e0d Mon Sep 17 00:00:00 2001 From: Ciro Scognamiglio Date: Mon, 18 Aug 2014 17:11:57 +0200 Subject: [PATCH] activity for users --- activity/__init__.py | 4 ++-- activity/institution.py | 11 +++++++++++ activity/user.py | 14 ++++++++++---- portal/contactview.py | 5 +++++ portal/homeview.py | 4 ++++ portal/joinview.py | 6 ++++++ portal/registrationview.py | 2 +- 7 files changed, 39 insertions(+), 7 deletions(-) create mode 100644 activity/institution.py diff --git a/activity/__init__.py b/activity/__init__.py index 677424f8..854897d1 100644 --- a/activity/__init__.py +++ b/activity/__init__.py @@ -31,7 +31,7 @@ else : if config.activity and config.activity.server : server = config.activity.server else : - # secret will be necessary + # default log server server = "http://athos.ipv6.lip6.fr/log" def logWrite(request, action, message): @@ -60,7 +60,7 @@ def logWrite(request, action, message): result = urllib2.urlopen(server, urllib.urlencode(log)) content = result.read() except urllib2.URLError as e: - print "Warning: connection to " + url + " impossible, could not log action" + print "===============>> activity: connection to " + url + " impossible, could not log action" def log(request, action, message): # Create a new thread in Daemon mode to send the log entry diff --git a/activity/institution.py b/activity/institution.py new file mode 100644 index 00000000..73a23696 --- /dev/null +++ b/activity/institution.py @@ -0,0 +1,11 @@ +# +# log functions for institution activity +# + +import activity + +def joined(request): + activity.log(request, "institution.join", "Institution joined") + +def join(request): + activity.log(request, "institution.join.view", "Institution view join form") \ No newline at end of file diff --git a/activity/user.py b/activity/user.py index fadd068b..da259948 100644 --- a/activity/user.py +++ b/activity/user.py @@ -4,8 +4,11 @@ import activity -def login(request): - activity.log(request, "user.login", "User log in") +def login(request, state=None): + if state is not None : + activity.log(request, "user.login." + state, "User log in") + else : + activity.log(request, "user.login", "User log in") def logout(request): activity.log(request, "user.logout", "User log out") @@ -13,5 +16,8 @@ def logout(request): def signup(request): activity.log(request, "user.signup.view", "User sign up") -def register(request): - activity.log(request, "user.signup", "User registered") \ No newline at end of file +def registered(request): + activity.log(request, "user.signup", "User registered") + +def contact(request): + activity.log(request, "user.contact", "User sent a contact request") \ No newline at end of file diff --git a/portal/contactview.py b/portal/contactview.py index b076cd98..2b9edb4e 100644 --- a/portal/contactview.py +++ b/portal/contactview.py @@ -11,6 +11,9 @@ from manifoldapi.manifoldapi import execute_query import json from myslice.theme import ThemeView + +import activity.user + theme = ThemeView() # splitting the 2 functions done here @@ -68,6 +71,8 @@ class ContactView (FreeAccessView, ThemeView): username = request.user.email else : username = None + # log user activity + activity.user.contact(self.request) return render(request,'contact_sent.html', { 'theme' : self.theme, 'username': username}) # Redirect after POST else: return self._display (request, form) diff --git a/portal/homeview.py b/portal/homeview.py index f830cc16..7af47760 100644 --- a/portal/homeview.py +++ b/portal/homeview.py @@ -91,12 +91,16 @@ class HomeView (FreeAccessView, ThemeView): env['person'] = None return render_to_response(self.template,env, context_instance=RequestContext(request)) else: + # log user activity + activity.user.login(self.request, "notactive") env['state'] = "Your account is not active, please contact the site admin." env['layout_1_or_2']="layout-unfold2.html" return render_to_response(self.template,env, context_instance=RequestContext(request)) # otherwise else: + # log user activity + activity.user.login(self.request, "error") env['state'] = "Your username and/or password were incorrect." return render_to_response(self.template, env, context_instance=RequestContext(request)) diff --git a/portal/joinview.py b/portal/joinview.py index d28daba9..832055bd 100644 --- a/portal/joinview.py +++ b/portal/joinview.py @@ -23,6 +23,8 @@ from portal.actions import authority_get_pi_emails, manifold_add_use from myslice.theme import ThemeView +import activity.institution + # since we inherit from FreeAccessView we cannot redefine 'dispatch' # so let's override 'get' and 'post' instead # @@ -239,6 +241,8 @@ class JoinView (FreeAccessView, ThemeView): print "Failed to send email, please check the mail templates and the SMTP configuration of your server" self.template_name = 'join_complete.html' + # log institution activity + activity.institution.joined(self.request) return render(request, self.template, {'theme': self.theme}) #return render(request, 'user_register_complete.html') @@ -269,4 +273,6 @@ class JoinView (FreeAccessView, ThemeView): 'theme': self.theme } template_env.update(page.prelude_env ()) + # log institution activity + activity.institution.join(self.request) return render(request, 'join_view.html',template_env) diff --git a/portal/registrationview.py b/portal/registrationview.py index 105eccee..e55e30fd 100644 --- a/portal/registrationview.py +++ b/portal/registrationview.py @@ -174,7 +174,7 @@ class RegistrationView (FreeAccessView, ThemeView): create_pending_user(wsgi_request, user_request, user_detail) self.template_name = 'user_register_complete.html' # log user activity - activity.user.register(self.request) + activity.user.registered(self.request) return render(wsgi_request, self.template, {'theme': self.theme}) else: -- 2.43.0