Esempio n. 1
0
    def add(self, unit, translation, user=None):
        """Adds a new suggestion to the unit.

        :param translation: suggested translation text
        :param user: user who is making the suggestion. If it's ``None``,
            the ``system`` user will be used.

        :return: a tuple ``(suggestion, created)`` where ``created`` is a
            boolean indicating if the suggestion was successfully added.
            If the suggestion already exists it's returned as well.
        """
        dont_add = (
            not filter(None, translation)
            or translation == unit.target
            or unit.get_suggestions().filter(target_f=translation).exists())
        if dont_add:
            return (None, False)
        if isinstance(user, User):
            user = user.id
        user = user or User.objects.get_system_user().id
        try:
            suggestion = Suggestion.objects.pending().get(
                unit=unit,
                user_id=user,
                target_f=translation)
            return (suggestion, False)
        except Suggestion.DoesNotExist:
            suggestion = Suggestion.objects.create(
                unit=unit,
                user_id=user,
                state_id=self.states["pending"],
                target=translation,
                creation_time=make_aware(timezone.now()))
        return (suggestion, True)
Esempio n. 2
0
 def save(self):
     comment = self.comment
     comment.submit_date = make_aware(datetime.now())
     comment.save()
     comment_was_saved.send(
         sender=comment.__class__,
         comment=comment)
Esempio n. 3
0
def get_date_interval(month):
    from xtle.core.utils.timezone import make_aware

    now = start = end = timezone.now()
    default_month = start.strftime('%Y-%m')

    if month is None:
        month = default_month

    try:
        month_datetime = datetime.strptime(month, '%Y-%m')
    except ValueError:
        month_datetime = datetime.strptime(default_month, '%Y-%m')

    start = make_aware(month_datetime)

    if start < now:
        if start.month != now.month or start.year != now.year:
            end = get_max_month_datetime(start)
    else:
        end = start

    start = start.replace(hour=0, minute=0, second=0)
    end = end.replace(hour=23, minute=59, second=59, microsecond=999999)

    return [start, end]
Esempio n. 4
0
def to_datetime(possible_dt):
    if possible_dt is None:
        return
    if isinstance(possible_dt, datetime):
        return possible_dt
    if isinstance(possible_dt, date):
        return make_aware(datetime.combine(possible_dt,
                                           datetime.min.time())).astimezone(
                                               pytz.timezone("UTC"))
Esempio n. 5
0
 def sub_unmute_qc(self, **kwargs):
     quality_check = kwargs["quality_check"]
     submitter = kwargs["submitter"]
     _kwargs = dict(
         creation_time=make_aware(timezone.now()),
         submitter=submitter,
         field=SubmissionFields.CHECK,
         type=SubmissionTypes.WEB,
         old_value=MUTED,
         new_value=UNMUTED,
         quality_check=quality_check)
     _kwargs.update(kwargs)
     return self.create_submission(**_kwargs)
Esempio n. 6
0
 def reject_suggestion(self, suggestion):
     store = suggestion.unit.store
     suggestion.state_id = self.states["rejected"]
     suggestion.review_time = make_aware(timezone.now())
     suggestion.reviewer = self.reviewer
     suggestion.save()
     unit = suggestion.unit
     if unit.changed:
         # if the unit is translated and suggestion was rejected
         # set the reviewer info
         unit.change.reviewed_by = self.reviewer
         unit.change.reviewed_on = suggestion.review_time
         unit.change.save()
     update_data.send(store.__class__, instance=store)