Coverage for app/venv/lib/python3.14/site-packages/weblate/auth/migrations/0002_squashed_weblate_5.py: 100%

12 statements  

« prev     ^ index     » next       coverage.py v7.15.2, created at 2026-10-07 07:15 +0000

1# Copyright © Michal Čihař <michal@weblate.org> 

2# 

3# SPDX-License-Identifier: GPL-3.0-or-later 

4 

5# Generated by Django 4.2.5 on 2023-09-18 07:58 

6 

7import uuid 

8 

9import django.db.models.deletion 

10from django.conf import settings 

11from django.db import migrations, models 

12 

13import weblate.auth.models 

14import weblate.trans.fields 

15import weblate.utils.fields 

16import weblate.utils.validators 

17 

18 

19class Migration(migrations.Migration): 

20 replaces = [ 

21 ( 

22 "weblate_auth", 

23 "0002_auto_20180507_1540_squashed_0011_auto_20180509_0739_squashed_0007_group_components", 

24 ), 

25 ("weblate_auth", "0008_auto_20200611_1232"), 

26 ("weblate_auth", "0009_migrate_componentlist"), 

27 ("weblate_auth", "0010_migrate_componentlist"), 

28 ("weblate_auth", "0011_unique_case_insensitive"), 

29 ("weblate_auth", "0012_auto_20200729_1200"), 

30 ("weblate_auth", "0013_rename_sources_group"), 

31 ("weblate_auth", "0014_auto_20210512_1955"), 

32 ("weblate_auth", "0015_userblock"), 

33 ("weblate_auth", "0016_alter_userblock_unique_together"), 

34 ("weblate_auth", "0017_alter_user_email"), 

35 ("weblate_auth", "0018_fixup_role"), 

36 ("weblate_auth", "0019_alter_role_name"), 

37 ("weblate_auth", "0020_group_defining_project"), 

38 ("weblate_auth", "0021_migrate_internal_groups"), 

39 ("weblate_auth", "0022_alter_user_managers"), 

40 ("weblate_auth", "0023_user_is_bot"), 

41 ("weblate_auth", "0024_bot_users"), 

42 ("weblate_auth", "0025_group_admins"), 

43 ("weblate_auth", "0026_remove_selection_lists"), 

44 ("weblate_auth", "0027_alter_group_components"), 

45 ("weblate_auth", "0028_alter_autogroup_match"), 

46 ("weblate_auth", "0029_invitation"), 

47 ("weblate_auth", "0030_alter_invitation_group_alter_user_groups"), 

48 ("weblate_auth", "0031_alter_userblock_user"), 

49 ] 

50 

51 dependencies = [ 

52 ("weblate_auth", "0001_initial"), 

53 ("lang", "0001_squashed_weblate_5"), 

54 ("authtoken", "0002_auto_20160226_1747"), 

55 ("trans", "0001_squashed_weblate_5"), 

56 ] 

57 

58 operations = [ 

59 migrations.CreateModel( 

60 name="Permission", 

61 fields=[ 

62 ( 

63 "id", 

64 models.AutoField( 

65 auto_created=True, 

66 primary_key=True, 

67 serialize=False, 

68 verbose_name="ID", 

69 ), 

70 ), 

71 ("codename", models.CharField(max_length=100, unique=True)), 

72 ("name", models.CharField(max_length=200)), 

73 ], 

74 options={ 

75 "verbose_name": "Permission", 

76 "verbose_name_plural": "Permissions", 

77 }, 

78 ), 

79 migrations.CreateModel( 

80 name="Role", 

81 fields=[ 

82 ( 

83 "id", 

84 models.AutoField( 

85 auto_created=True, 

86 primary_key=True, 

87 serialize=False, 

88 verbose_name="ID", 

89 ), 

90 ), 

91 ( 

92 "name", 

93 models.CharField(max_length=200, unique=True, verbose_name="Name"), 

94 ), 

95 ( 

96 "permissions", 

97 models.ManyToManyField( 

98 blank=True, 

99 help_text="Choose permissions granted to this role.", 

100 to="weblate_auth.permission", 

101 verbose_name="Permissions", 

102 ), 

103 ), 

104 ], 

105 options={ 

106 "verbose_name": "Role", 

107 "verbose_name_plural": "Roles", 

108 }, 

109 ), 

110 migrations.CreateModel( 

111 name="Group", 

112 fields=[ 

113 ( 

114 "id", 

115 models.AutoField( 

116 auto_created=True, 

117 primary_key=True, 

118 serialize=False, 

119 verbose_name="ID", 

120 ), 

121 ), 

122 ("name", models.CharField(max_length=150, verbose_name="Name")), 

123 ( 

124 "project_selection", 

125 models.IntegerField( 

126 choices=[ 

127 (0, "As defined"), 

128 (1, "All projects"), 

129 (3, "All public projects"), 

130 (4, "All protected projects"), 

131 (2, "From component list"), 

132 ], 

133 default=0, 

134 verbose_name="Project selection", 

135 ), 

136 ), 

137 ( 

138 "language_selection", 

139 models.IntegerField( 

140 choices=[(0, "As defined"), (1, "All languages")], 

141 default=0, 

142 verbose_name="Language selection", 

143 ), 

144 ), 

145 ( 

146 "internal", 

147 models.BooleanField( 

148 default=False, verbose_name="Internal Weblate group" 

149 ), 

150 ), 

151 ( 

152 "languages", 

153 models.ManyToManyField( 

154 blank=True, to="lang.language", verbose_name="Languages" 

155 ), 

156 ), 

157 ( 

158 "projects", 

159 models.ManyToManyField( 

160 blank=True, to="trans.project", verbose_name="Projects" 

161 ), 

162 ), 

163 ( 

164 "roles", 

165 models.ManyToManyField( 

166 blank=True, 

167 help_text="Choose roles granted to this group.", 

168 to="weblate_auth.role", 

169 verbose_name="Roles", 

170 ), 

171 ), 

172 ( 

173 "components", 

174 models.ManyToManyField( 

175 blank=True, to="trans.component", verbose_name="Components" 

176 ), 

177 ), 

178 ( 

179 "componentlists", 

180 models.ManyToManyField( 

181 blank=True, 

182 to="trans.componentlist", 

183 verbose_name="Component lists", 

184 ), 

185 ), 

186 ( 

187 "defining_project", 

188 models.ForeignKey( 

189 blank=True, 

190 null=True, 

191 on_delete=django.db.models.deletion.CASCADE, 

192 related_name="defined_groups", 

193 to="trans.project", 

194 ), 

195 ), 

196 ], 

197 options={ 

198 "verbose_name": "Group", 

199 "verbose_name_plural": "Groups", 

200 }, 

201 ), 

202 migrations.AlterField( 

203 model_name="user", 

204 name="email", 

205 field=models.EmailField( 

206 max_length=190, 

207 unique=True, 

208 validators=[weblate.utils.validators.EmailValidator()], 

209 verbose_name="E-mail", 

210 ), 

211 ), 

212 migrations.AddField( 

213 model_name="user", 

214 name="groups", 

215 field=weblate.auth.models.GroupManyToManyField( 

216 blank=True, 

217 help_text="The user is granted all permissions included in membership of these groups.", 

218 to="weblate_auth.group", 

219 verbose_name="Groups", 

220 ), 

221 ), 

222 migrations.AlterField( 

223 model_name="user", 

224 name="email", 

225 field=models.EmailField( 

226 max_length=190, 

227 null=True, 

228 unique=True, 

229 validators=[weblate.utils.validators.EmailValidator()], 

230 verbose_name="E-mail", 

231 ), 

232 ), 

233 migrations.AlterField( 

234 model_name="user", 

235 name="email", 

236 field=weblate.utils.fields.EmailField( 

237 max_length=190, 

238 null=True, 

239 unique=True, 

240 validators=[weblate.utils.validators.EmailValidator()], 

241 verbose_name="E-mail", 

242 ), 

243 ), 

244 migrations.AlterField( 

245 model_name="user", 

246 name="username", 

247 field=weblate.utils.fields.UsernameField( 

248 error_messages={"unique": "A user with that username already exists."}, 

249 help_text="Username may only contain letters, numbers or the following characters: @ . + - _", 

250 max_length=150, 

251 unique=True, 

252 validators=[weblate.utils.validators.validate_username], 

253 verbose_name="Username", 

254 ), 

255 ), 

256 migrations.AlterModelOptions( 

257 name="user", 

258 options={"verbose_name": "User", "verbose_name_plural": "Users"}, 

259 ), 

260 migrations.AlterField( 

261 model_name="user", 

262 name="email", 

263 field=weblate.utils.fields.EmailField( 

264 max_length=190, null=True, unique=True, verbose_name="E-mail" 

265 ), 

266 ), 

267 migrations.AlterModelManagers( 

268 name="user", 

269 managers=[], 

270 ), 

271 migrations.AddField( 

272 model_name="user", 

273 name="is_bot", 

274 field=models.BooleanField( 

275 db_index=True, default=False, verbose_name="Robot user" 

276 ), 

277 ), 

278 migrations.AddField( 

279 model_name="user", 

280 name="date_expires", 

281 field=models.DateTimeField( 

282 blank=True, default=None, null=True, verbose_name="Expires" 

283 ), 

284 ), 

285 migrations.AddField( 

286 model_name="group", 

287 name="admins", 

288 field=models.ManyToManyField( 

289 blank=True, 

290 help_text="The administrator can add or remove users from a team.", 

291 related_name="administered_group_set", 

292 to=settings.AUTH_USER_MODEL, 

293 verbose_name="Team administrators", 

294 ), 

295 ), 

296 migrations.AlterField( 

297 model_name="group", 

298 name="components", 

299 field=models.ManyToManyField( 

300 blank=True, 

301 help_text="Empty selection grants access to all components in project scope.", 

302 to="trans.component", 

303 verbose_name="Components", 

304 ), 

305 ), 

306 migrations.CreateModel( 

307 name="AutoGroup", 

308 fields=[ 

309 ( 

310 "id", 

311 models.AutoField( 

312 auto_created=True, 

313 primary_key=True, 

314 serialize=False, 

315 verbose_name="ID", 

316 ), 

317 ), 

318 ( 

319 "match", 

320 weblate.trans.fields.RegexField( 

321 default="^$", 

322 help_text="Users with e-mail addresses found to match will be added to this group.", 

323 max_length=200, 

324 verbose_name="Regular expression for e-mail address", 

325 ), 

326 ), 

327 ( 

328 "group", 

329 models.ForeignKey( 

330 on_delete=django.db.models.deletion.CASCADE, 

331 to="weblate_auth.group", 

332 verbose_name="Group to assign", 

333 ), 

334 ), 

335 ], 

336 options={ 

337 "verbose_name": "Automatic group assignment", 

338 "verbose_name_plural": "Automatic group assignments", 

339 }, 

340 ), 

341 migrations.CreateModel( 

342 name="Invitation", 

343 fields=[ 

344 ( 

345 "uuid", 

346 models.UUIDField( 

347 default=uuid.uuid4, 

348 editable=False, 

349 primary_key=True, 

350 serialize=False, 

351 ), 

352 ), 

353 ("timestamp", models.DateTimeField(auto_now_add=True)), 

354 ( 

355 "email", 

356 weblate.utils.fields.EmailField( 

357 blank=True, max_length=190, verbose_name="E-mail" 

358 ), 

359 ), 

360 ( 

361 "is_superuser", 

362 models.BooleanField( 

363 default=False, 

364 help_text="User has all possible permissions.", 

365 verbose_name="Superuser status", 

366 ), 

367 ), 

368 ( 

369 "group", 

370 models.ForeignKey( 

371 help_text="The user is granted all permissions included in membership of these teams.", 

372 on_delete=django.db.models.deletion.CASCADE, 

373 to="weblate_auth.group", 

374 verbose_name="Team", 

375 ), 

376 ), 

377 ( 

378 "user", 

379 models.ForeignKey( 

380 help_text="Please type in an existing Weblate account name or e-mail address.", 

381 null=True, 

382 on_delete=django.db.models.deletion.CASCADE, 

383 to=settings.AUTH_USER_MODEL, 

384 verbose_name="User to add", 

385 ), 

386 ), 

387 ( 

388 "author", 

389 models.ForeignKey( 

390 on_delete=django.db.models.deletion.CASCADE, 

391 related_name="created_invitation_set", 

392 to=settings.AUTH_USER_MODEL, 

393 ), 

394 ), 

395 ], 

396 ), 

397 migrations.AlterField( 

398 model_name="user", 

399 name="groups", 

400 field=weblate.auth.models.GroupManyToManyField( 

401 blank=True, 

402 help_text="The user is granted all permissions included in membership of these teams.", 

403 to="weblate_auth.group", 

404 verbose_name="Teams", 

405 ), 

406 ), 

407 migrations.CreateModel( 

408 name="UserBlock", 

409 fields=[ 

410 ( 

411 "id", 

412 models.AutoField( 

413 auto_created=True, 

414 primary_key=True, 

415 serialize=False, 

416 verbose_name="ID", 

417 ), 

418 ), 

419 ( 

420 "expiry", 

421 models.DateTimeField(null=True, verbose_name="Block expiry"), 

422 ), 

423 ( 

424 "project", 

425 models.ForeignKey( 

426 on_delete=django.db.models.deletion.CASCADE, 

427 to="trans.project", 

428 verbose_name="Project", 

429 ), 

430 ), 

431 ( 

432 "user", 

433 models.ForeignKey( 

434 db_index=False, 

435 on_delete=django.db.models.deletion.CASCADE, 

436 to=settings.AUTH_USER_MODEL, 

437 verbose_name="User to block", 

438 ), 

439 ), 

440 ], 

441 options={ 

442 "verbose_name": "Blocked user", 

443 "verbose_name_plural": "Blocked users", 

444 "unique_together": {("user", "project")}, 

445 }, 

446 ), 

447 migrations.AddConstraint( 

448 model_name="user", 

449 constraint=models.UniqueConstraint( 

450 django.db.models.functions.text.Upper("username"), 

451 name="weblate_auth_user_username_ci", 

452 ), 

453 ), 

454 migrations.AddConstraint( 

455 model_name="user", 

456 constraint=models.UniqueConstraint( 

457 django.db.models.functions.text.Upper("email"), 

458 name="weblate_auth_user_email_ci", 

459 ), 

460 ), 

461 ]