]> git.parisson.com Git - mezzo.git/commitdiff
[Timesheet] : improve model + admin
authorEmilie <zawadzki@ircam.fr>
Fri, 30 Dec 2016 18:30:37 +0000 (19:30 +0100)
committerEmilie <zawadzki@ircam.fr>
Fri, 30 Dec 2016 18:30:37 +0000 (19:30 +0100)
app/local_settings.py
app/organization/network/admin.py
app/organization/network/migrations/0076_auto_20161230_1839.py [new file with mode: 0644]
app/organization/network/models.py
app/organization/network/translation.py
app/organization/projects/migrations/0034_auto_20161230_1839.py [new file with mode: 0644]

index 80b966316706e7d2e8812193b4e09287d9043c81..e828a435662c9035cf27dfc621f238d5956082ef 100644 (file)
@@ -142,7 +142,9 @@ ADMIN_MENU_ORDER = (
                     'organization-network.TrainingTopic',
                     'organization-network.TrainingLevel',
                     'organization-network.TrainingSpeciality',
-                    'organization-network.ActivityWeeklyHourVolume'
+                    )),
+    (_('Timesheet'), ('organization-network.ActivityWeeklyHourVolume',
+                     'organization-network.PersonActivityTimeSheet'
                     )),
     (_('Projects'), ('organization-projects.Project',
                     'organization-projects.ProjectProgram',
index b815fd91dd13c80acea9e39d6a7bb2ee2e5f16b2..93d544a325b99efaa3701b11696114c8e4b8a8a8 100644 (file)
@@ -211,6 +211,7 @@ class PersonAdmin(BaseTranslationOrderedModelAdmin):
                 weekly_hour_volume = last_activity.weekly_hour_volume.__str__()
         return weekly_hour_volume
 
+
 class PersonActivityAdmin(BaseTranslationModelAdmin):
 
     model = PersonActivity
@@ -280,6 +281,13 @@ class TrainingTopicAdmin(BaseTranslationModelAdmin):
 
     model = TrainingTopic
 
+class PersonActivityTimeSheetAdmin(BaseTranslationModelAdmin):
+    model = PersonActivityTimeSheet
+    list_display = ['person', 'activity', 'year', 'month', 'project', 'percentage']
+    list_filter = ['activity__person', 'year', 'project']
+    def person(self, instance):
+        return instance.activity.person
+
 
 admin.site.register(OrganizationLinked, OrganizationLinkedAdmin)
 admin.site.register(Organization, OrganizationAdmin)
@@ -300,3 +308,4 @@ admin.site.register(TrainingType, TrainingTypeAdmin)
 admin.site.register(TrainingLevel, TrainingLevelAdmin)
 admin.site.register(TrainingTopic, TrainingTopicAdmin)
 admin.site.register(TrainingSpeciality, TrainingSpecialityAdmin)
+admin.site.register(PersonActivityTimeSheet, PersonActivityTimeSheetAdmin)
diff --git a/app/organization/network/migrations/0076_auto_20161230_1839.py b/app/organization/network/migrations/0076_auto_20161230_1839.py
new file mode 100644 (file)
index 0000000..365c7be
--- /dev/null
@@ -0,0 +1,21 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.11 on 2016-12-30 17:39
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import organization.network.validators
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('organization-network', '0075_auto_20161229_1151'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='personactivitytimesheet',
+            name='percentage',
+            field=models.FloatField(validators=[organization.network.validators.validate_positive], verbose_name='% of work time on the project'),
+        ),
+    ]
index 53bf1cf72502987b666ff98da4f5a335849e403b..a9077f66ef9565a7085091b7d3f0709a1e83ab7d 100644 (file)
@@ -560,7 +560,7 @@ class PersonActivityTimeSheet(models.Model):
     activity = models.ForeignKey('PersonActivity', verbose_name=_('activity'), related_name='timesheets')
     project = models.ForeignKey('organization-projects.Project', verbose_name=_('project'), related_name='timesheets')
     work_packages = models.ManyToManyField('organization-projects.ProjectWorkPackage', verbose_name=_('work package'), related_name='timesheets', blank=True)
-    percentage = models.IntegerField(_('% of work time on the project'))
+    percentage = models.FloatField(_('% of work time on the project'), validators=[validate_positive])
     month = models.IntegerField(_('month'))
     year = models.IntegerField(_('year'))
 
index 9d09d4325c77dcb7d62fe7751a61aeae12c6650b..94a1d6dc4bdba4ffa100d9b91709708280562d81 100644 (file)
@@ -220,3 +220,9 @@ class OrganizationLinkedBlockInlineTranslationOptions(TranslationOptions):
 class ActivityWeeklyHourVolumeTranslationOptions(TranslationOptions):
 
     fields = []
+
+
+@register(PersonActivityTimeSheet)
+class PersonActivityTimeSheetTranslationOptions(TranslationOptions):
+
+    fields = []
diff --git a/app/organization/projects/migrations/0034_auto_20161230_1839.py b/app/organization/projects/migrations/0034_auto_20161230_1839.py
new file mode 100644 (file)
index 0000000..4dceb7a
--- /dev/null
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.11 on 2016-12-30 17:39
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('organization-projects', '0033_projectworkpackage'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='project',
+            name='external_id',
+            field=models.CharField(blank=True, max_length=128, null=True, verbose_name='external ID'),
+        ),
+    ]