File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -24,7 +24,6 @@ class Like(Model):
2424 )
2525 object_id = models .PositiveIntegerField ()
2626 content_object = GenericForeignKey ("content_type" , "object_id" )
27- # is liked?
2827
2928 class Meta :
3029 unique_together = ("user" , "content_type" , "object_id" )
Original file line number Diff line number Diff line change 66@admin .register (UserFile )
77class UserFileAdmin (admin .ModelAdmin ):
88 list_display = (
9+ "short_link" ,
10+ "filename" ,
11+ "user" ,
12+ "datetime_uploaded" ,
13+ )
14+ list_display_links = (
15+ "short_link" ,
16+ "filename" ,
17+ "user" ,
18+ )
19+ search_fields = (
920 "link" ,
21+ "user__first_name" ,
22+ "user__last_name" ,
23+ )
24+ list_filter = (
1025 "user" ,
1126 "datetime_uploaded" ,
1227 )
13- list_display_links = ("link" ,)
28+
29+ date_hierarchy = "datetime_uploaded"
30+
31+ @admin .display (empty_value = "Empty filename" )
32+ def filename (self , obj ):
33+ return obj .name
34+
35+ @admin .display (empty_value = "Empty link" )
36+ def short_link (self , obj ):
37+ return obj .link [15 :40 ] + "..." + obj .link [- 20 :]
Original file line number Diff line number Diff line change @@ -9,13 +9,16 @@ class UserFile(models.Model):
99 UserFile model
1010
1111 Attributes:
12- user: User who uploaded the file
1312 link: Link to the file on the CDN
13+ user: User who uploaded the file
1414 datetime_uploaded: Datetime when the file was uploaded
15+ name: Name of the file
16+ extension: Extension of the file
17+ size: Size of the file in bytes
1518 """
1619
17- user = models .ForeignKey (User , on_delete = models .SET_NULL , null = True )
1820 link = models .URLField (primary_key = True , null = False )
21+ user = models .ForeignKey (User , on_delete = models .SET_NULL , null = True )
1922 datetime_uploaded = models .DateTimeField (auto_now_add = True )
2023 name = models .TextField (blank = False , default = "file" )
2124 extension = models .TextField (blank = True , default = "" )
Original file line number Diff line number Diff line change @@ -28,6 +28,8 @@ class ProjectNewsAdmin(admin.ModelAdmin):
2828 "project" ,
2929 "datetime_created" ,
3030 )
31+ # todo: set up admin panel for files
32+ filter_horizontal = ("files" ,)
3133
3234
3335@admin .register (Achievement )
Original file line number Diff line number Diff line change 1+ # Generated by Django 4.2 on 2023-06-14 08:13
2+
3+ from django .db import migrations , models
4+
5+
6+ class Migration (migrations .Migration ):
7+
8+ dependencies = [
9+ ("files" , "0003_userfile_extension_userfile_name_userfile_size" ),
10+ ("projects" , "0014_alter_projectnews_options_and_more" ),
11+ ]
12+
13+ operations = [
14+ migrations .AddField (
15+ model_name = "projectnews" ,
16+ name = "files" ,
17+ field = models .ManyToManyField (
18+ related_name = "projects_news" , to = "files.userfile"
19+ ),
20+ ),
21+ ]
Original file line number Diff line number Diff line change 1+ # Generated by Django 4.2 on 2023-06-14 08:36
2+
3+ from django .db import migrations , models
4+
5+
6+ class Migration (migrations .Migration ):
7+
8+ dependencies = [
9+ ("files" , "0003_userfile_extension_userfile_name_userfile_size" ),
10+ ("projects" , "0015_projectnews_files" ),
11+ ]
12+
13+ operations = [
14+ migrations .AlterField (
15+ model_name = "projectnews" ,
16+ name = "files" ,
17+ field = models .ManyToManyField (
18+ blank = True , related_name = "projects_news" , to = "files.userfile"
19+ ),
20+ ),
21+ ]
Original file line number Diff line number Diff line change 66from django .db .models import UniqueConstraint
77
88from core .models import Like , View
9+ from files .models import UserFile
910from industries .models import Industry
1011from projects .constants import VERBOSE_STEPS
1112from projects .managers import AchievementManager , ProjectManager
@@ -207,6 +208,9 @@ class ProjectNews(models.Model):
207208 null = False ,
208209 blank = False ,
209210 )
211+ # todo: remove files unused files
212+ files = models .ManyToManyField (UserFile , related_name = "projects_news" , blank = True )
213+
210214 views = GenericRelation (
211215 View ,
212216 related_query_name = "project_views" ,
@@ -215,7 +219,6 @@ class ProjectNews(models.Model):
215219 Like ,
216220 related_query_name = "project_news" ,
217221 )
218- # todo: files
219222
220223 datetime_created = models .DateTimeField (
221224 verbose_name = "Дата создания" ,
Original file line number Diff line number Diff line change @@ -238,6 +238,7 @@ class Meta:
238238 "datetime_created" ,
239239 "views_count" ,
240240 "likes_count" ,
241+ "files" ,
241242 ]
242243
243244
@@ -270,4 +271,5 @@ class Meta:
270271 "datetime_updated" ,
271272 "views_count" ,
272273 "likes_count" ,
274+ "files" ,
273275 ]
You can’t perform that action at this time.
0 commit comments