class Fav(models.Model): _id = models.ObjectIdField() user_id = models.TextField() user_name = models.TextField() tip_title = models.CharField(max_length=40) tip_img = models.TextField() tip_id = models.TextField()
class Service(models.Model): _id = models.ObjectIdField() service_name = models.TextField() service_img = models.TextField() service_price = models.TextField() objects = models.DjongoManager() service_price = models.TextField()
class TipCommints(models.Model): _id = models.ObjectIdField() tip_id = models.TextField() user_name = models.TextField() commint_text = models.TextField() objects = models.DjongoManager() commintdate = models.DateTimeField(auto_now=True)
class UserProducts(models.Model): _id = models.ObjectIdField() user_id = models.TextField() # product_id = models.TextField() user_products = models.TextField() user_product_location = models.TextField() # user_product_quantity = models.IntegerField() objects = models.DjongoManager()
class Users(models.Model): _id = models.ObjectIdField() name = models.CharField(max_length=128) email = models.EmailField(unique=True) password = models.CharField(max_length=256) def __str__(self): return '{0}({1})'.format(self._id, self.name)
class Admin(models.Model): _id = models.ObjectIdField() admin_name = models.TextField() admin_email = models.TextField() admin_password = models.TextField() admin_img = models.TextField( default= 'https://ronaldmottram.co.nz/wp-content/uploads/2019/01/default-user-icon-8.jpg' )
class UserService(models.Model): _id = models.ObjectIdField() user_id = models.TextField() service_name = models.TextField() user_service_location = models.TextField() user_service_date = models.DateField() user_service_hours = models.IntegerField() user_service_approv = models.BooleanField() user_service_price = models.TextField() user_service_approv = models.BooleanField(default=False)
class Users(models.Model): _id = models.ObjectIdField() user_name = models.TextField() user_email = models.EmailField() user_password = models.TextField() user_phon = models.TextField() user_img = models.TextField( default= 'https://ronaldmottram.co.nz/wp-content/uploads/2019/01/default-user-icon-8.jpg' ) user_bio = models.TextField()
class Tip(models.Model): _id = models.ObjectIdField() tip_title = models.CharField(max_length=40) tip_text = models.TextField() tip_img = models.TextField() user_id = models.TextField() user_name = models.TextField() tip_date = models.DateTimeField(auto_now_add=True) def __str__(self): return self.tip_title
class Products(models.Model): _id = models.ObjectIdField() product_name = models.CharField(max_length=40) product_price = models.IntegerField() product_quantity = models.IntegerField() product_type = models.BooleanField() product_description = models.TextField() product_img = models.TextField() # objects = models.DjongoManager() def __str__(self): return self.product_name
class Tip(models.Model): _id = models.ObjectIdField() tip_title = models.CharField(max_length=50) tip_text = models.TextField() tip_img = models.TextField() user_id = models.TextField() user_name = models.TextField() tip_date = models.DateTimeField(auto_now_add=True) tip_comments = models.IntegerField(default=0) tip_fav = models.IntegerField(default=0) def __str__(self): return self.tip_title
class Meals(models.Model): _id = models.ObjectIdField() recipe_id = models.CharField(max_length=256) recipe_name = models.CharField(max_length=256) marketing_description = models.CharField(max_length=256) allergen_attributes = models.CharField(max_length=256) dietary_attributes = models.CharField(max_length=256) class Meta: managed = False db_table = 'serviceRecipeNutrition' def __str__(self): return self.recipe_id
class Website(models.Model): _id = models.ObjectIdField() website_name = models.CharField(max_length=255) product_name = models.CharField(max_length=255) plan = models.IntegerField() payment_amount = models.FloatField() template_id = models.IntegerField() company_name = models.CharField(max_length=255) twitter_profile = models.CharField(max_length=255) facebook_profile = models.CharField(max_length=255) product_description = models.CharField(max_length=512) product_image_url = models.CharField(max_length=512) created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True)
class Ratings(models.Model): _id = models.ObjectIdField() movie_id = models.ArrayReferenceField(to=Movies, on_delete=models.CASCADE) user_id = models.ArrayReferenceField(to=Users, on_delete=models.CASCADE) date = models.DateField(auto_now_add=True) rating = models.IntegerField(choices=rating_choice) class Meta: ordering = ['-date'] def __str__(self): return '{0}({1}, {2}, {3}, {4})'.format(self._id, self.film_id, self.user_id, self.date, self.rating)
class MyUser(AbstractBaseUser): _id = models.ObjectIdField() email = models.EmailField( verbose_name='email address', max_length=255, unique=True, ) # email2 = models.EmailField( # verbose_name='confirm email address', # max_length=255, # unique=True, # ) is_active = models.BooleanField(default=True) is_admin = models.BooleanField(default=False) is_superuser = models.BooleanField(default=False) created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) fullname = models.CharField(max_length=100, null=True) username = models.CharField(max_length=100, unique=True, null=False) groups = models.ManyToManyField(Group, related_name="groups") objects = MyUserManager() USERNAME_FIELD = 'email' REQUIRED_FIELDS = ['username'] def __str__(self): return self.username def has_perm(self, perm, obj=None): "Does the user have a specific permission?" # Simplest possible answer: Yes, always return True def has_module_perms(self, app_label): "Does the user have permissions to view the app `app_label`?" # Simplest possible answer: Yes, always return True @property def is_staff(self): "Is the user a member of staff?" # Simplest possible answer: All admins are staff return self.is_admin def get_email2(self): """ Arbitrary method used in the UserDeserializer for email validation """ return "Email field for validation of email" def assign_role(self, role, node): assert role in ROLES_MAP.keys() # Check if the user already has a role for this user, and remove it if it exists existing_role = UserRole.objects.filter(user=self, node=node).first() if existing_role is not None: if existing_role.role_name != role: existing_role.delete() else: return existing_role # Getting the permissions belonging to each orle permissions = ROLES_MAP[role] # Getting the permissions from the database permissions = UserRolePermission.objects.filter(name__in=permissions) role = { "role_name": role, "user": self, "node": node, } role = UserRole(**role) role.save() role.permissions.add(*permissions) role.save() return role def remove_role(self, node): """ Removes the provided role from the current user for the node """ # All the roles the user has for the node and the children of this node to_remove = UserRole.objects.filter(Q(node__path__contains=node._id) | Q(node___id=node._id), user=self) deleted = to_remove.delete() return deleted def get_permissions(self, node, all_types=False): """ Returns the list of permissions the user has for the given node """ # All relevant node_ids for the permissions node_branch = list(filter(lambda x: x.strip(), node.path.split(",") if node.path else '')) + [str(node._id)] # Getting a merged list of any and all permissions the user has for this branch # node__id__in=node_branch filters all roles the user has for nodes in this branch of the treestructure # permissions__name__icontains=node.node_type filters only the permissions relevant to this node type filters = { "user": self, "node___id__in": node_branch, } if not all_types: filters["permissions__name__icontains"] = node.node_type permissions = UserRole.objects.filter(**filters).values_list("permissions__name", flat=True).distinct() return permissions def get_role(self, node): """ Returns the role the user has for this node - only direct role """ role = UserRole.objects.filter(user=self, node=node).first() return role def create_user_team(self): # create a TreeStructure with nodetype of Team Linked to the user team = Team( name=self.username + "'s team", user_team="team@" + self.username, user_linked=True, ) team.save() # give the user created_obj permission against this team self.assign_role("team_admin", team)
class Movies(models.Model): _id = models.ObjectIdField() plot = models.CharField(max_length=1000) genres = models.ArrayModelField(model_container=Genre) runtime = models.PositiveIntegerField() cast = models.ArrayModelField(model_container=Cast) poster = models.CharField(max_length=1000, null=True) title = models.CharField(max_length=1000) fullplot = models.CharField(max_length=1000) countries = models.ArrayModelField(model_container=Country) released = models.DateField() languages = models.ArrayModelField(model_container=Language) directors = models.ArrayModelField(model_container=Director) writers = models.ArrayModelField(model_container=Writers) year = models.PositiveIntegerField() imdb = models.EmbeddedModelField(model_container=Imdb) tomatoes = models.EmbeddedModelField(model_container=Tomatoes) Douban = models.EmbeddedModelField(model_container=DouBan) meta = { 'indexes': [ { 'fields': ['plot'], 'sparse': True }, { 'fields': ['genres'], 'sparse': True }, { 'fields': ['runtime'], 'sparse': True }, { 'fields': ['cast'], 'sparse': True }, { 'fields': ['poster'], 'sparse': True }, { 'fields': ['title'], 'sparse': True }, { 'fields': ['fullplot'], 'sparse': True }, { 'fields': ['countries'], 'sparse': True }, { 'fields': ['released'], 'sparse': True }, { 'fields': ['languages'], 'sparse': True }, { 'fields': ['directors'], 'sparse': True }, { 'fields': ['writers'], 'sparse': True }, { 'fields': ['year'], 'sparse': True }, { 'fields': ['imdb'], 'sparse': True }, { 'fields': ['tomatoes'], 'sparse': True }, { 'fields': ['Douban'], 'sparse': True }, ], } def __str__(self): return '{0}({1})'.format(self._id, self.title) def get_absolute_url(self): _id = dumps(self._id)['_id']['$oid'] return reverse('result_detail', args=[_id])