From e3fd3b81ab45f540e72a62de31f0bb3dd3418ac1 Mon Sep 17 00:00:00 2001
From: klmp200 
Date: Mon, 6 Nov 2017 00:22:25 +0100
Subject: [PATCH 1/2] Add gift function
---
 core/migrations/0027_gift.py          | 25 ++++++++++++++
 core/models.py                        | 13 ++++++++
 core/templates/core/user_detail.jinja | 35 +++++++++++++++++++-
 core/urls.py                          |  3 ++
 core/views/forms.py                   | 18 +++++++++-
 core/views/user.py                    | 47 +++++++++++++++++++++++++--
 sith/settings.py                      |  5 +++
 7 files changed, 141 insertions(+), 5 deletions(-)
 create mode 100644 core/migrations/0027_gift.py
diff --git a/core/migrations/0027_gift.py b/core/migrations/0027_gift.py
new file mode 100644
index 00000000..a6c604e8
--- /dev/null
+++ b/core/migrations/0027_gift.py
@@ -0,0 +1,25 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+from django.conf import settings
+import django.utils.timezone
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('core', '0026_auto_20170926_1512'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='Gift',
+            fields=[
+                ('id', models.AutoField(primary_key=True, auto_created=True, verbose_name='ID', serialize=False)),
+                ('label', models.CharField(max_length=255, verbose_name='label')),
+                ('date', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date')),
+                ('user', models.ForeignKey(related_name='gifts', to=settings.AUTH_USER_MODEL)),
+            ],
+        ),
+    ]
diff --git a/core/models.py b/core/models.py
index 6444cb87..da4a709d 100644
--- a/core/models.py
+++ b/core/models.py
@@ -2,6 +2,7 @@
 #
 # Copyright 2016,2017
 # - Skia 
+# - Sli 
 #
 # Ce fichier fait partie du site de l'Association des Étudiants de l'UTBM,
 # http://ae.utbm.fr.
@@ -1109,3 +1110,15 @@ class Notification(models.Model):
                 old_notif.save()
                 return
         super(Notification, self).save(*args, **kwargs)
+
+
+class Gift(models.Model):
+    label = models.CharField(_('label'), max_length=255)
+    date = models.DateTimeField(_('date'), default=timezone.now)
+    user = models.ForeignKey(User, related_name='gifts')
+
+    def __str__(self):
+        return "%s - %s" % (self.label, self.date.strftime('%d %b %Y'))
+
+    def is_owned_by(self, user):
+        return user.is_board_member or user.is_root
diff --git a/core/templates/core/user_detail.jinja b/core/templates/core/user_detail.jinja
index aa8b7e23..23266124 100644
--- a/core/templates/core/user_detail.jinja
+++ b/core/templates/core/user_detail.jinja
@@ -66,13 +66,39 @@
     {% endif %}
 {% else %}
     {% trans %}Not subscribed{% endtrans %}
-    {% if user.is_in_group(settings.SITH_MAIN_BOARD_GROUP) %}
+    {% if user.is_board_member %}
         {% trans %}New subscription{% endtrans %}
         {% endif %}
     {% endif %}
     
 {% endif %}
 
+{% if user.is_root or user.is_board_member %}
+    
+    
+    {% if profile.gifts.exists() %}
+    
+        
+            
{% trans %}Last given gift :{% endtrans %} {{ profile.gifts.order_by('-date').first() }}
+            
+