Projet

Général

Profil

0003-dj2-use-set-and-or-clear-method-for-M2M-36895.patch

Lauréline Guérin, 14 octobre 2019 14:30

Télécharger (6,92 ko)

Voir les différences:

Subject: [PATCH 3/5] dj2: use set and/or clear method for M2M (#36895)

remove RemovedInDjango20Warning:
Direct assignment to the forward side of a many-to-many set is deprecated due to the implicit save() that happens.
Use items.set() instead.
 combo/apps/lingo/views.py   |  2 +-
 combo/manager/forms.py      | 10 +++++-----
 tests/test_dataviz.py       |  4 ++--
 tests/test_import_export.py |  4 ++--
 tests/test_lingo_manager.py |  4 ++--
 tests/test_pages.py         |  4 ++--
 tests/test_public.py        |  8 ++++----
 7 files changed, 18 insertions(+), 18 deletions(-)
combo/apps/lingo/views.py
343 343

  
344 344
        transaction.save()
345 345
        transaction.regie = regie
346
        transaction.items = items
346
        transaction.items.set(items)
347 347
        transaction.remote_items = ','.join([x.id for x in remote_items])
348 348
        transaction.status = 0
349 349
        transaction.amount = total_amount
combo/manager/forms.py
149 149
        if self.cleaned_data['visibility'] == 'all':
150 150
            self.instance.public = True
151 151
            self.instance.restricted_to_unlogged = False
152
            self.instance.groups = []
152
            self.instance.groups.clear()
153 153
        elif self.cleaned_data['visibility'] == 'logged':
154 154
            self.instance.public = False
155 155
            self.instance.restricted_to_unlogged = False
156
            self.instance.groups = []
156
            self.instance.groups.clear()
157 157
        elif self.cleaned_data['visibility'] == 'unlogged':
158 158
            self.instance.public = True
159 159
            self.instance.restricted_to_unlogged = True
160
            self.instance.groups = []
160
            self.instance.groups.clear()
161 161
        elif self.cleaned_data['visibility'] == 'groups-any':
162 162
            self.instance.public = False
163 163
            self.instance.restricted_to_unlogged = False
164
            self.instance.groups = self.cleaned_data['groups']
164
            self.instance.groups.set(self.cleaned_data['groups'])
165 165
        elif self.cleaned_data['visibility'] == 'groups-none':
166 166
            self.instance.public = False
167 167
            self.instance.restricted_to_unlogged = True
168
            self.instance.groups = self.cleaned_data['groups']
168
            self.instance.groups.set(self.cleaned_data['groups'])
169 169
        self.instance.save()
170 170
        return self.instance
171 171

  
tests/test_dataviz.py
302 302
            group = Group(name='plop')
303 303
            group.save()
304 304
            cell.public = False
305
            cell.groups = [group]
305
            cell.groups.set([group])
306 306
            cell.save()
307 307
            resp = app.get('/api/dataviz/graph/1/?width=400', status=403)
308 308

  
309 309
            app = login(app, username='normal-user', password='normal-user')
310 310
            resp = app.get('/api/dataviz/graph/1/?width=400', status=403)
311 311

  
312
            normal_user.groups = [group]
312
            normal_user.groups.set([group])
313 313
            normal_user.save()
314 314
            resp = app.get('/api/dataviz/graph/1/?width=400', status=200)
315 315

  
tests/test_import_export.py
142 142
    group.save()
143 143

  
144 144
    page = Page.objects.get(slug='one')
145
    page.groups = [group]
145
    page.groups.set([group])
146 146
    page.save()
147 147

  
148 148
    cell = TextCell.objects.get(order=0)
149
    cell.groups = [group]
149
    cell.groups.set([group])
150 150
    cell.save()
151 151

  
152 152
    output = get_output_of_command('export_site')
tests/test_lingo_manager.py
163 163
                                        bank_transaction_id='567', status=eopayment.PAID)
164 164
    trans2 = Transaction.objects.create(regie=regie, remote_items='remote items omg', order_id='2', user=user,
165 165
                                        bank_transaction_id='136', status=eopayment.PAID)
166
    trans1.items = [b_item,]
166
    trans1.items.set([b_item])
167 167
    trans1.save()
168
    trans2.items = [b_item,]
168
    trans2.items.set([b_item])
169 169
    trans2.save()
170 170
    app = login(app)
171 171
    resp = app.get('/manage/lingo/transactions/download-csv/', status=200)
tests/test_pages.py
111 111
    group.save()
112 112
    user1 = User(username='foo')
113 113
    user1.save()
114
    user1.groups = [group]
114
    user1.groups.set([group])
115 115
    user2 = User(username='bar')
116 116
    user2.save()
117 117

  
118 118
    assert page.is_visible(user1)
119 119
    assert page.is_visible(user2)
120 120

  
121
    page.groups = [group]
121
    page.groups.set([group])
122 122
    assert not page.is_visible()
123 123
    assert page.is_visible(user1)
124 124
    assert not page.is_visible(user2)
tests/test_public.py
99 99
    cell = TextCell(page=page, placeholder='content', text='Foobar', order=0,
100 100
            public=False)
101 101
    cell.save()
102
    cell.groups = [group]
102
    cell.groups.set([group])
103 103
    resp = app.get('/', status=200)
104 104
    assert 'Foobar' not in resp.text
105 105

  
......
107 107
    resp = app.get('/', status=200)
108 108
    assert 'Foobar' not in resp.text
109 109

  
110
    normal_user.groups = [group]
110
    normal_user.groups.set([group])
111 111
    resp = app.get('/', status=200)
112 112
    assert 'Foobar' in resp.text
113 113

  
......
120 120
    cell = TextCell(page=page, placeholder='content', text='Foobar', order=0,
121 121
            public=False, restricted_to_unlogged=True)
122 122
    cell.save()
123
    cell.groups = [group]
123
    cell.groups.set([group])
124 124
    resp = app.get('/', status=200)
125 125
    assert 'Foobar' not in resp.text
126 126

  
......
128 128
    resp = app.get('/', status=200)
129 129
    assert 'Foobar' in resp.text
130 130

  
131
    normal_user.groups = [group]
131
    normal_user.groups.set([group])
132 132
    resp = app.get('/', status=200)
133 133
    assert 'Foobar' not in resp.text
134 134

  
135
-