'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',
weekly_hour_volume = last_activity.weekly_hour_volume.__str__()
return weekly_hour_volume
+
class PersonActivityAdmin(BaseTranslationModelAdmin):
model = PersonActivity
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)
admin.site.register(TrainingLevel, TrainingLevelAdmin)
admin.site.register(TrainingTopic, TrainingTopicAdmin)
admin.site.register(TrainingSpeciality, TrainingSpecialityAdmin)
+admin.site.register(PersonActivityTimeSheet, PersonActivityTimeSheetAdmin)
--- /dev/null
+# -*- 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'),
+ ),
+ ]
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'))
class ActivityWeeklyHourVolumeTranslationOptions(TranslationOptions):
fields = []
+
+
+@register(PersonActivityTimeSheet)
+class PersonActivityTimeSheetTranslationOptions(TranslationOptions):
+
+ fields = []
--- /dev/null
+# -*- 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'),
+ ),
+ ]