return ' - '.join((self.status.name, str(self.date_from), str(self.date_to)))
else:
return ' - '.join((str(self.date_from), str(self.date_to)))
+
+
+class PersonActivityHebdoHourVolume(models.Model):
+
+ activity = models.ForeignKey('PersonActivity', verbose_name=_('activity'))
+ monday_hours = models.IntegerField(_('monday hours'), blank=True, null=True)
+ tuesday_hours = models.IntegerField(_('tuesday hours'), blank=True, null=True)
+ wednesday_hours = models.IntegerField(_('wednesday hours'), blank=True, null=True)
+ thursday_hours = models.IntegerField(_('thursday hours'), blank=True, null=True)
+ friday_hours = models.IntegerField(_('friday hours'), blank=True, null=True)
+
+
+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'))
+ month = models.IntegerField(_('month'))
+ year = models.IntegerField(_('year'))
+
+ @property
+ def date(self):
+ pass
+
+ class Meta:
+ verbose_name = _('activity timesheet')
+ verbose_name_plural = _('activity timesheets')
+ ordering = ['month',]
+
+
+class PersonActivityVacation(Period):
+
+ activity = models.ForeignKey('PersonActivity', verbose_name=_('activity'))
model = ProjectDemo
+class ProjectWorkPackageInline(TabularDynamicInlineAdmin):
+
+ model = ProjectWorkPackage
+
+
class ProjectDemoAdmin(BaseTranslationModelAdmin):
model = ProjectDemo
fieldsets = deepcopy(ProjectAdmin.fieldsets)
inlines = [ ProjectBlockInline,
ProjectImageInline,
+ ProjectWorkPackageInline,
ProjectPlaylistInline,
ProjectLinkInline,
ProjectFileInline,
ordering = ['name',]
+class ProjectWorkPackage(Titled, Period):
+
+ project = models.ForeignKey(Project, verbose_name=_('project'), related_name='work_packages')
+ number = models.IntegerField(_('number'))
+ lead_organization = models.ForeignKey('organization-network.Organization', verbose_name=_('lead organization'), related_name='leader_work_packages', blank=True, null=True)
+
+ class Meta:
+ verbose_name = _('work package')
+ verbose_name_plural = _("work packages")
+ ordering = ['number',]
+
+
class ProjectPlaylist(PlaylistRelated):
project = models.ForeignKey(Project, verbose_name=_('project'), related_name='playlists', blank=True, null=True, on_delete=models.SET_NULL)
fields = ('title', 'description',)
+@register(ProjectWorkPackage)
+class ProjectWorkPackageTranslationOptions(TranslationOptions):
+
+ pass
+
+
@register(ProjectRelatedTitle)
-class ProjectRelatedTitleranslationOptions(TranslationOptions):
+class ProjectRelatedTitleTranslationOptions(TranslationOptions):
fields = ('title',)