]> git.parisson.com Git - mezzo.git/commitdiff
[Timesheet] : add validation + accounting date
authorEmilie Zawadzki <zawadzki@ircam.fr>
Thu, 5 Jan 2017 15:41:06 +0000 (16:41 +0100)
committerEmilie Zawadzki <zawadzki@ircam.fr>
Thu, 5 Jan 2017 15:41:06 +0000 (16:41 +0100)
app/local_settings.py
app/organization/network/admin.py
app/organization/network/migrations/0077_auto_20170104_1837.py [new file with mode: 0644]
app/organization/network/models.py
app/organization/projects/admin.py

index e828a435662c9035cf27dfc621f238d5956082ef..a1deb4ee5a1c86851bf7a2a539f21f266aeefe31 100644 (file)
@@ -154,6 +154,7 @@ ADMIN_MENU_ORDER = (
                     'organization-projects.ProjectDemo',
                     'organization-projects.Repository',
                     'organization-projects.RepositorySystem',
+                    'organization-projects.ProjectWorkPackage'
                     )),
     (_('Shop'), ('shop.Product',
                     'organization-shop.ProductList',
index 93d544a325b99efaa3701b11696114c8e4b8a8a8..5e3498424d6f97a1952e3555f39bcbe90bf4eae5 100644 (file)
@@ -281,13 +281,18 @@ class TrainingTopicAdmin(BaseTranslationModelAdmin):
 
     model = TrainingTopic
 
+
 class PersonActivityTimeSheetAdmin(BaseTranslationModelAdmin):
     model = PersonActivityTimeSheet
-    list_display = ['person', 'activity', 'year', 'month', 'project', 'percentage']
+    list_display = ['person', 'activity', 'year', 'month', 'project', 'work_package', 'percentage',  'accounting', 'validation']
     list_filter = ['activity__person', 'year', 'project']
     def person(self, instance):
         return instance.activity.person
 
+    def work_package(self, instance):
+        wk_list = [str(wk.number) for wk in instance.work_packages.all()]
+        return ",".join(wk_list)
+
 
 admin.site.register(OrganizationLinked, OrganizationLinkedAdmin)
 admin.site.register(Organization, OrganizationAdmin)
diff --git a/app/organization/network/migrations/0077_auto_20170104_1837.py b/app/organization/network/migrations/0077_auto_20170104_1837.py
new file mode 100644 (file)
index 0000000..9f5587c
--- /dev/null
@@ -0,0 +1,27 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.11 on 2017-01-04 17:37
+from __future__ import unicode_literals
+
+import datetime
+from django.db import migrations, models
+from django.utils.timezone import utc
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('organization-network', '0076_auto_20161230_1839'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='personactivitytimesheet',
+            name='accounting',
+            field=models.DateField(blank=True, default=datetime.datetime(2017, 1, 4, 17, 35, 33, 228164, tzinfo=utc)),
+        ),
+        migrations.AddField(
+            model_name='personactivitytimesheet',
+            name='validation',
+            field=models.DateField(blank=True, default=datetime.datetime(2017, 1, 4, 17, 35, 33, 228198, tzinfo=utc)),
+        ),
+    ]
index a9077f66ef9565a7085091b7d3f0709a1e83ab7d..fa2925cf3703bde3d914412f5caf80f29a5d8ef0 100644 (file)
@@ -29,7 +29,6 @@ import urllib
 import string
 import datetime
 import mimetypes
-
 from geopy.geocoders import GoogleV3 as GoogleMaps
 from geopy.exc import GeocoderQueryError
 
@@ -39,6 +38,7 @@ from django.core.urlresolvers import reverse, reverse_lazy
 from django.conf import settings
 from django.contrib.auth.models import User
 from django.core.exceptions import ValidationError
+from django.utils import timezone
 
 from mezzanine.pages.models import Page
 from mezzanine.core.models import RichText, Displayable, Slugged
@@ -563,6 +563,8 @@ class PersonActivityTimeSheet(models.Model):
     percentage = models.FloatField(_('% of work time on the project'), validators=[validate_positive])
     month = models.IntegerField(_('month'))
     year = models.IntegerField(_('year'))
+    accounting = models.DateField(default=timezone.now(), blank=True)
+    validation = models.DateField(default=timezone.now(), blank=True)
 
     @property
     def date(self):
index 11ad0ba2bab948275d6740fa9e98df81ae93883c..cfbd0916bb9cdf4d38493e049720e5837230ed4e 100644 (file)
@@ -133,6 +133,13 @@ class ProjectTopicPageAdmin(PageAdmin):
     inlines = [PageImageInline, ]
 
 
+class ProjectWorkPackageAdmin(BaseTranslationModelAdmin):
+
+    model = ProjectWorkPackage
+    list_display = ['title', 'project', 'date_from', 'date_to', 'number', 'lead_organization' ]
+    list_filter = ['project', 'date_from', 'date_to', 'lead_organization' ]
+
+
 admin.site.register(Project, ProjectAdminDisplayable)
 admin.site.register(ProjectProgram, ProjectProgramAdmin)
 admin.site.register(ProjectProgramType, ProjectProgramTypeAdmin)
@@ -141,3 +148,4 @@ admin.site.register(ProjectTopicPage, ProjectTopicPageAdmin)
 admin.site.register(ProjectDemo, ProjectDemoAdmin)
 admin.site.register(Repository)
 admin.site.register(RepositorySystem)
+admin.site.register(ProjectWorkPackage, ProjectWorkPackageAdmin)