Skip to content

Commit

Permalink
feat: Updated client_code/groups.py
Browse files Browse the repository at this point in the history
  • Loading branch information
sweep-ai[bot] committed Oct 11, 2023
1 parent 7897cfc commit 16f8c92
Showing 1 changed file with 82 additions and 75 deletions.
157 changes: 82 additions & 75 deletions client_code/groups.py
Original file line number Diff line number Diff line change
@@ -1,98 +1,105 @@
import anvil.server
from anvil import *

from . import helper as h
from . import parameters as p
from . import portable as port


@anvil.server.portable_class
class Group(h.AttributeToKey):
def __init__(self, name="", group_id="", members=None, hosts=None):
self.name = name
self.group_id = group_id
self.members = members if members else []
self.hosts = hosts if hosts else []

def __str__(self):
return self.name

def __eq__(self, other):
return isinstance(other, Group) and self.group_id == other.group_id

@property
def host(self):
from . import glob
return glob.users[self.hosts[0]].name

@property
def member_count(self):
return len(set(self.hosts).union(self.members))


def __init__(self, name="", group_id="", members=None, hosts=None):
self.name = name
self.group_id = group_id
self.members = members if members else []
self.hosts = hosts if hosts else []

def __str__(self):
return self.name

def __eq__(self, other):
return isinstance(other, Group) and self.group_id == other.group_id

@property
def host(self):
from . import glob

return glob.users[self.hosts[0]].name

@property
def member_count(self):
return len(set(self.hosts).union(self.members))


@anvil.server.portable_class
class MyGroups():
def __init__(self, groups=None, names_taken=None):
self._groups = list(groups) if groups else []
self.names_taken = names_taken if names_taken else []

def __getitem__(self, position):
return self._groups[position]
def __len__(self):
return len(self._groups)

def __repr__(self):
return f"MyGroups({self._groups!r}, {self.names_taken!r})"
class MyGroups:
def __init__(self, groups=None, names_taken=None):
self._groups = list(groups) if groups else []
self.names_taken = names_taken if names_taken else []

def __getitem__(self, position):
return self._groups[position]

def __len__(self):
return len(self._groups)

def __repr__(self):
return f"MyGroups({self._groups!r}, {self.names_taken!r})"


@anvil.server.portable_class
class MyGroup(h.AttributeToKey):
default_name = "New Group"

def __init__(self, name="", group_id="", members=None, invites=None):
self.name = name
self.group_id = group_id
self.members = members if members else []
self.invites = invites if invites else []

def __str__(self):
return self.name
default_name = "New Group"

def __init__(self, name="", group_id="", members=None, invites=None):
self.name = name
self.group_id = group_id
self.members = members if members else []
self.invites = invites if invites else []

def __repr__(self):
return f"MyGroup({self.name}, {self.group_id}, {self.members!r}, {self.invites!r})"
def __str__(self):
return self.name

def update(self, new_self):
for key, value in new_self.__dict__.items():
setattr(self, key, value)
def __repr__(self):
return (
f"MyGroup({self.name}, {self.group_id}, {self.members!r}, {self.invites!r})"
)

def update(self, new_self):
for key, value in new_self.__dict__.items():
setattr(self, key, value)


@anvil.server.portable_class
class MyGroupMember(port.UserProfile):
def __init__(self, user_profile: port.UserProfile, group_id, guest_allowed=False):
self._init_user_profile_attributes(user_profile)
self.group_id = group_id
self.guest_allowed = guest_allowed
def __init__(self, user_profile: port.UserProfile, group_id, guest_allowed=False):
self._init_user_profile_attributes(user_profile)
self.group_id = group_id
self.guest_allowed = guest_allowed

def _init_user_profile_attributes(self, user_profile):
for key in user_profile.__dict__:
self.__setattr__(key, user_profile.__dict__[key])
def _init_user_profile_attributes(self, user_profile):
for key in user_profile.__dict__:
self.__setattr__(key, user_profile.__dict__[key])


@anvil.server.portable_class
class Invite(h.PortItem, h.AttributeToKey):
repr_desc = "groups.Invite: "
server_fn_name = 'serve_group_invite'
def __init__(self, link_key="", invite_id="", expire_date=None, spec=None, create_date=None):
self.link_key = link_key
self.invite_id = invite_id
self.expire_date = expire_date
self.spec = spec
self.create_date = create_date

@property
def url(self):
return f"{p.URL}#?group={self.link_key}"

@property
def create_date_str(self):
return h.short_date_str(self.create_date)
repr_desc = "groups.Invite: "
server_fn_name = "serve_group_invite"

def __init__(
self, link_key="", invite_id="", expire_date=None, spec=None, create_date=None
):
self.link_key = link_key
self.invite_id = invite_id
self.expire_date = expire_date
self.spec = spec
self.create_date = create_date

@property
def url(self):
return f"{p.URL}#?group={self.link_key}"

@property
def create_date_str(self):
return h.short_date_str(self.create_date)

0 comments on commit 16f8c92

Please sign in to comment.