Exemple #1
0
 def add_submission_number(self):
     self.submission_number = models.F("submission_number") + 1
     self.save()
Exemple #2
0
 def store(cls, request):
     obj = cls.get_obj(request)
     obj.attempt = models.F('attempt') + 1
     obj.save() #update_fields=['attempt']
Exemple #3
0
 def inc_completed_count(self):
     self.completed_count = models.F('completed_count') + 1
     self.save()
Exemple #4
0
 def delete(self, *args, **kwargs):
     fields_after = self.form.fields.filter(order__gte=self.order)
     fields_after.update(order=models.F("order") - 1)
     super(Field, self).delete(*args, **kwargs)
Exemple #5
0
 def test_invalid_check_types(self):
     msg = (
         'CheckConstraint.check must be a Q instance or boolean expression.'
     )
     with self.assertRaisesMessage(TypeError, msg):
         models.CheckConstraint(check=models.F('discounted_price'), name='check')
Exemple #6
0
 def test_negative_values(self):
     p = PositiveIntegerModel.objects.create(value=0)
     p.value = models.F('value') - 1
     with self.assertRaises(IntegrityError):
         p.save()
Exemple #7
0
 def remove_point(self, point):
     self.point = models.F('point') - point
     self.save()
Exemple #8
0
 def increment(self, amount=1):
     self.current = models.F('current') + amount
Exemple #9
0
    def get(self, request, version=None):
        project_query = request.GET.get('projects')
        fields_query = request.GET.get('fields')

        projects = Project.get_for_member(request.user)
        if project_query:
            projects = projects.filter(id__in=project_query.split(','))

        fields = None
        if fields_query:
            fields = fields_query.split(',')

        options = {}

        project_filter = models.Q(project__in=projects)

        options['lead_group'] = [
            {
                'key': group.id,
                'value': group.title,
            } for group in LeadGroup.objects.filter(project_filter).distinct()
        ] if (fields is None or 'lead_group' in fields) else []

        options['assignee'] = [{
            'key': user.id,
            'value': user.profile.get_display_name(),
        } for user in _filter_users_by_projects_memberships(
            User.objects.all(),
            projects,
        ).prefetch_related('profile').distinct()] if (
            fields is None or 'assignee' in fields) else []

        options['confidentiality'] = [{
            'key': c[0],
            'value': c[1],
        } for c in Lead.Confidentiality.choices]

        options['status'] = [{
            'key': s[0],
            'value': s[1],
        } for s in Lead.Status.choices]

        options['priority'] = [{
            'key': s[0],
            'value': s[1],
        } for s in Lead.Priority.choices]

        options['project'] = [{
            'key': project.id,
            'value': project.title,
        } for project in projects.distinct()] if (
            fields is None or 'projects' in fields) else []

        # Create Emm specific options
        options['emm_entities'] = EMMEntity.objects.filter(
            lead__project__in=projects).distinct().values('name').annotate(
                total_count=models.Count('lead'),
                label=models.F('name'),
                key=models.F('id'),
            ).values('key', 'label', 'total_count').order_by('name')

        options['emm_keywords'] = LeadEMMTrigger.objects.filter(
            lead__project__in=projects).values('emm_keyword').annotate(
                total_count=models.Sum('count'),
                key=models.F('emm_keyword'),
                label=models.F('emm_keyword')).order_by('emm_keyword')

        options['emm_risk_factors'] = LeadEMMTrigger.objects.filter(
            ~models.Q(emm_risk_factor=''),
            ~models.Q(emm_risk_factor=None),
            lead__project__in=projects,
        ).values('emm_risk_factor').annotate(
            total_count=models.Sum('count'),
            key=models.F('emm_risk_factor'),
            label=models.F('emm_risk_factor'),
        ).order_by('emm_risk_factor')

        # Add info about if the project has emm leads, just check if entities or keywords present
        options['has_emm_leads'] = (not not options['emm_entities']) or (
            not not options['emm_keywords'])

        options['organization_types'] = [{
            'key': organization_type.id,
            'value': organization_type.title,
        } for organization_type in OrganizationType.objects.all()]
        return response.Response(LegacyLeadOptionsSerializer(options).data)
 def enroll_user_and_require_2fa(self, user, organization):
     TotpInterface().enroll(user)
     organization.update(
         flags=models.F('flags').bitor(Organization.flags.require_2fa))
     assert organization.flags.require_2fa.is_set
Exemple #11
0
 def __delitem__(self, idx):
     exercise = self[idx]
     self.exercises.filter(order__gt=exercise.order).update(
         order=models.F('order') - 1)
     exercise.delete()
 def delete(self, *args, **kwargs):
     fields_after = self.form.fields.filter(order__gte=self.order)
     fields_after.update(order=models.F("order") - 1)
     DocumentSetFieldEntry.objects.filter(field_id=self.id).delete()
     super(DocumentSetFormField, self).delete(*args, **kwargs)
Exemple #13
0
 def devalue_hotness(self, factor=1.0):
     """Devalue hot count for all stories."""
     hot_stories = self.filter(hot_count__gte=1)
     hot_stories.update(hot_count=(models.F('hot_count') - 1) * factor)
     cold_stories = self.filter(hot_count__gt=0, hot_count__lt=1)
     cold_stories.update(hot_count=0)
Exemple #14
0
 def add_score(self, this_time_score, last_time_score=None):
     last_time_score = last_time_score or 0
     self.total_score = models.F(
         "total_score") - last_time_score + this_time_score
     self.save()
def copy_date_done_to_date_created(apps, schema_editor):
    TaskResult = apps.get_model('django_celery_results', 'taskresult')
    db_alias = schema_editor.connection.alias
    TaskResult.objects.using(db_alias).all().update(
        date_created=models.F('date_done'))
Exemple #16
0
    def post(self, request, version=None):
        serializer = LeadOptionsBodySerializer(data=request.data)
        serializer.is_valid(raise_exception=True)
        fields = serializer.data
        projects_id = fields['projects']
        lead_groups_id = fields['lead_groups']
        organizations_id = fields['organizations']
        members_id = fields['members']
        emm_entities = fields['emm_entities']
        emm_keywords = fields['emm_keywords']
        emm_risk_factors = fields['emm_risk_factors']
        organization_type_ids = fields['organization_types']

        projects = Project.get_for_member(request.user).filter(
            id__in=projects_id, )
        if not projects.exists():
            raise exceptions.NotFound('Provided projects not found')

        project_filter = models.Q(project__in=projects)

        members_qs = User.objects.filter(
            id__in=members_id) if len(members_id) else User.objects

        options = {
            'projects': projects,

            # Static Options
            'confidentiality': [
                {
                    'key': c[0],
                    'value': c[1],
                } for c in Lead.Confidentiality.choices
            ],
            'status': [
                {
                    'key': s[0],
                    'value': s[1],
                } for s in Lead.Status.choices
            ],
            'priority': [
                {
                    'key': s[0],
                    'value': s[1],
                } for s in Lead.Priority.choices
            ],

            # Dynamic Options

            'lead_groups': LeadGroup.objects.filter(project_filter, id__in=lead_groups_id).distinct(),
            'members': _filter_users_by_projects_memberships(members_qs, projects)\
                                    .prefetch_related('profile').distinct(),
            'organizations': Organization.objects.filter(id__in=organizations_id).distinct(),

            # EMM specific options
            'emm_entities': EMMEntity.objects.filter(
                lead__project__in=projects,
                name__in=emm_entities,
            ).distinct().values('name').annotate(
                total_count=models.Count('lead'),
                label=models.F('name'),
                key=models.F('id'),
            ).values('key', 'label', 'total_count').order_by('name'),

            'emm_keywords': LeadEMMTrigger.objects.filter(
                emm_keyword__in=emm_keywords,
                lead__project__in=projects
            ).values('emm_keyword').annotate(
                total_count=models.Sum('count'),
                key=models.F('emm_keyword'),
                label=models.F('emm_keyword')
            ).values('key', 'label', 'total_count').order_by('emm_keyword'),

            'emm_risk_factors': LeadEMMTrigger.objects.filter(
                emm_risk_factor__in=emm_risk_factors,
                lead__project__in=projects,
            ).values('emm_risk_factor').annotate(
                total_count=models.Sum('count'),
                key=models.F('emm_risk_factor'),
                label=models.F('emm_risk_factor'),
            ).order_by('emm_risk_factor'),

            'has_emm_leads': (
                EMMEntity.objects.filter(lead__project__in=projects).exists() or
                LeadEMMTrigger.objects.filter(lead__project__in=projects).exists()
            ),
            'organization_types': OrganizationType.objects.filter(id__in=organization_type_ids).distinct(),
        }
        return response.Response(LeadOptionsSerializer(options).data)
Exemple #17
0
 def save(self, *args, **kwrags):
     self.points or self._set_points()
     if not self.pk:
         CustomUser.objects.filter(pk=self.user.pk).update(
             award_points=models.F('award_points') + self.points)
     return super(Awards, self).save(*args, **kwrags)
Exemple #18
0
 def total(self):
     aggregate_queryset = self.items.aggregate(
         total=models.Sum(models.F('price') * models.F('quantity'),
                          output_field=models.DecimalField()))
     return aggregate_queryset['total']
Exemple #19
0
 def add_point(self, point):
     self.point = models.F('point') + point
     self.save()
Exemple #20
0
 def total(self, cart_key):
     aggregate_queryset = CartItem.objects.filter(
         cart_key=cart_key).aggregate(
             total=models.Sum(models.F('price') * models.F('quantity'),
                              output_field=models.DecimalField()))
     return float(aggregate_queryset['total'] or 0)
 def decrease_count(self):
     """Decrease flag count and save the model """
     self.refresh_from_db()
     field = 'count'
     self.count = models.F(field) - 1
     self.save(update_fields=[field])
Exemple #22
0
def release_populate_last_modified_forwards(apps, schema_editor):
    Release = apps.get_model('releng', 'Release')
    Release.objects.update(last_modified=models.F('created'))
Exemple #23
0
 def get_leaves(self, model: Type[models.Model] = None):
     '''
     Leaf nodes correspond to concrete models
     '''
     return self.get_descendants(model).filter(rgt=models.F('lft') + 1)
Exemple #24
0
 def with_total_value(self):
     return self.annotate(total_value=models.Count('guest') * models.F('unit_price'))
Exemple #25
0
 def forwards(self, orm):
     db.rename_column('sharing_afp_share', 'afp_noadouble', 'afp_adouble')
     orm.AFP_Share.objects.all().update(
         afp_adouble=not models.F('afp_adouble'))
Exemple #26
0
 def _rate_value_condition(self, value):
     return models.Case(
         models.When(ratings__value=value, then=models.F('ratings__id')),
         output_field=models.IntegerField()
     )
Exemple #27
0
 def inc_taken_count(self):
     self.taken_count = models.F('taken_count') + 1
     self.save()
Exemple #28
0
 def with_dencity(self):
     return self.annotate(dencity=models.F('population') / models.F('area'))
Exemple #29
0
 def dec_completed_count(self):
     self.completed_count = models.F('completed_count') - 1
     self.save()
Exemple #30
0
 def add_accepted_problem_number(self):
     self.accepted_number = models.F("accepted_number") + 1
     self.save()