Пример #1
0
        def output_statistics(name, simpl, sselected, sdetail,
                              sassigned, sfinished):
            f.write("\section{%s}\n" % name)
            f.write("\\begin{longtable}{rrl}\n")
            f.write("Start date & %s & \\\ \n" % format_date(self._start_date))

            # Compute the opens
            sum_open = 0
            for sp in [simpl, sselected]:
                for p in sp:
                    sum_open += topic_set.get_requirement_set().\
                                get_requirement(p[1]).\
                                get_efe_or_0()
            f.write("Not done & %d & EfE units \\\ \n" % sum_open)

            # Compute the assigned
            sum_assigned = 0
            for tr in sassigned:
                sum_assigned += tr.get_efe_or_0()
            f.write("Assigned & %d & EfE units \\\ \n" % sum_assigned)

            # Compute the finished
            sum_finished = 0
            for tr in sfinished:
                sum_finished += tr.get_efe_or_0()
            f.write("Finished & %d & EfE units \\\ \n" % sum_finished)

            # Compute the finished where a time is given
            sum_finished_with_duration = 0
            for tr in sfinished:
                if tr.get_status().get_duration() is not None:
                    sum_finished_with_duration += tr.get_efe_or_0()
            f.write("Finished (duration given) & %d & EfE units \\\ \n" %
                    sum_finished_with_duration)

            # Compute the finished where a time is given
            sum_duration = 0
            for tr in sfinished:
                dur = tr.get_status().get_duration()
                if dur is not None:
                    sum_duration += dur
            f.write(" & %d & hours \\\ \n" % sum_duration)

            # The Relation and the Estimated End Date can only be computed
            # When the duration is not 0.
            if sum_duration != 0:
                # Relation
                rel = sum_finished_with_duration / float(sum_duration)
                f.write("Relation & %4.2f & EfE units / hour \\\ \n" % rel)

                hours_to_do = sum_open / rel
                f.write("Estimated Not done & %4.2f & hours \\\ \n"
                        % (hours_to_do))

                # Estimated End Date

                rv = Statistics.get_units(topic_set.get_requirement_set(),
                                          self._start_date, self._end_date)
                x = list(i for i in range(0, len(rv)))
                y = list(x[0] + x[1] for x in rv)

                gradient, intercept, r_value, p_value, std_err \
                    = stats.linregress(x, y)

                if gradient >= 0.0:
                    f.write("Estimated End date & unpredictable & \\\ \n")
                else:
                    d = intercept / -gradient
                    end_date = self._start_date + datetime.timedelta(d)
                    f.write("Estimated End date & %s & \\\ \n" % end_date)

            f.write("\end{longtable}")
Пример #2
0
 def get_date_str(self):
     if self.date==None:
         return ""
     return format_date(self.date)
Пример #3
0
        def output_statistics(name, simpl, sselected, sdetail,
                              sassigned, sfinished):
            f.write("\\section{%s}\n" % name)
            f.write("\\begin{longtable}{rrl}\n")
            f.write("Start date & %s & \\\\ \n" % format_date(
                self._start_date))

            # Compute the opens
            sum_open = 0
            for sp in [simpl, sselected]:
                for p in sp:
                    sum_open += topic_set.get_requirement_set().\
                                get_requirement(p[1]).\
                                get_efe_or_0()
            f.write("Not done & %d & EfE units \\\\ \n" % sum_open)

            # Compute the assigned
            sum_assigned = 0
            for tr in sassigned:
                sum_assigned += tr.get_efe_or_0()
            f.write("Assigned & %d & EfE units \\\\ \n" % sum_assigned)

            # Compute the finished
            sum_finished = 0
            for tr in sfinished:
                sum_finished += tr.get_efe_or_0()
            f.write("Finished & %d & EfE units \\\\ \n" % sum_finished)

            # Compute the finished where a time is given
            sum_finished_with_duration = 0
            for tr in sfinished:
                if tr.get_status().get_duration() is not None:
                    sum_finished_with_duration += tr.get_efe_or_0()
            f.write("Finished (duration given) & %d & EfE units \\\\ \n" %
                    sum_finished_with_duration)

            # Compute the finished where a time is given
            sum_duration = 0
            for tr in sfinished:
                dur = tr.get_status().get_duration()
                if dur is not None:
                    sum_duration += dur
            f.write(" & %d & hours \\\\ \n" % sum_duration)

            # The Relation and the Estimated End Date can only be computed
            # When the duration is not 0.
            if sum_duration != 0:
                # Relation
                rel = sum_finished_with_duration / float(sum_duration)
                f.write("Relation & %4.2f & EfE units / hour \\\\ \n" % rel)

                hours_to_do = sum_open / rel
                f.write("Estimated Not done & %4.2f & hours \\\\ \n"
                        % (hours_to_do))

                # Estimated End Date

                rv = Statistics.get_units(topic_set.get_requirement_set(),
                                          self._start_date, self._end_date)
                x = list(i for i in range(0, len(rv)))
                y = list(x[0] + x[1] for x in rv)

                gradient, intercept, r_value, p_value, std_err \
                    = stats.linregress(x, y)

                if gradient >= 0.0:
                    f.write("Estimated End date & unpredictable & \\\\ \n")
                else:
                    d = intercept / -gradient
                    end_date = self._start_date + datetime.timedelta(d)
                    f.write("Estimated End date & %s & \\\\ \n" % end_date)

            f.write("\\end{longtable}")
Пример #4
0
 def get_date_str(self):
     return format_date(self.date)
Пример #5
0
 def get_date_str(self):
     if self.date==None:
         return ""
     return format_date(self.date)
Пример #6
0
 def get_date_str(self):
     return format_date(self.date)
Пример #7
0
 def get_date_str(self):
     """Return the date as string"""
     if self.__date is None:
         return ""
     return format_date(self.__date)
Пример #8
0
 def get_date_str(self):
     """Return the date as string"""
     if self.__date is None:
         return ""
     return format_date(self.__date)